Освоение параллельного программирования на GPU с CUDA: HW & SW

2 участника

О чём курс

Курс «Mastering GPU Parallel Programming with CUDA» представляет собой углубленное практическое руководство по освоению технологий параллельных вычислений на современных графических процессорах. Программа разработана для тех, кто стремится выйти за рамки базового программирования и научиться использовать колоссальную вычислительную мощность GPU для решения сложных инженерных, научных и AI-задач. Обучение построено на сочетании теоретических основ аппаратной архитектуры и интенсивной практики написания кода, что позволяет слушателям не просто копировать примеры, а глубоко понимать процессы, происходящие «под капотом» видеокарт.

Курс охватывает эволюцию архитектур NVIDIA — от Fermi до современных Hopper и Ampere, объясняя, как аппаратные изменения влияют на производительность программного обеспечения. Участники получат комплексное представление о различиях между CPU и GPU, изучат иерархию памяти, принципы работы потоков (threads), блоков (blocks) и сеток (grids), а также освоят методы эффективного распараллеливания вычислений. Особое внимание уделяется инструментам профилирования, таким как Nsight Compute и nvprof, которые необходимы для поиска «узких мест» в коде, анализа задержек и оптимизации использования ресурсов GPU.

В процессе обучения вы научитесь настраивать среду разработки CUDA Toolkit в различных операционных системах (Windows, Linux и WSL), освоите двумерную индексацию для работы с матрицами, научитесь эффективно использовать shared memory и минимизировать warp divergence. Практическая часть включает в себя отладку приложений, обработку ошибок через runtime API и применение модели Roofline для анализа ограничений производительности (вычислительных или пропускной способности памяти).

Курс идеально подходит для студентов инженерных специальностей, исследователей и разработчиков, желающих углубить свои знания в области параллельного программирования. Благодаря структурированному подходу, вы пройдете путь от написания простейшей программы «Hello World» до проектирования высокопроизводительных ядер (kernels), способных эффективно работать на современном оборудовании. По завершении обучения вы будете обладать навыками тонкой настройки CUDA-приложений, что является критически важным для высокопроизводительных вычислений (HPC). Материал курса является независимым образовательным ресурсом, предоставляющим фундаментальные знания, необходимые для профессиональной работы с технологиями NVIDIA.

Программа обучения

Введение в аппаратную часть Nvidia GPU GPU vs CPU История Nvidia: как компания начала доминировать в секторе GPU Связь архитектур и поколений: Hopper, Ampere, GeForce, Tesla Как определить архитектуру и поколение Разница между GPU и чипом GPU Архитектуры и соответствующие им чипы Архитектуры Nvidia GPU от Fermi до Hopper Параметры для сравнения разных архитектур Half, single и double precision operations Compute capability и использование GPU Volta, Ampere, Pascal, SIMD Установка CUDA и других программ Какие возможности устанавливаются вместе с CUDA Toolkit Установка CUDA в Windows Установка WSL для использования Linux в Windows Установка CUDA Toolkit в Linux Введение в программирование на CUDA GitHub-репозиторий курса Сопоставление программной части CUDA с аппаратной частью Hello World program: threads и blocks Компиляция CUDA в Linux Hello World program: Warp_IDs Сложение векторов и шаги для любого CUDA-проекта Индексация блоков и потоков Уровни параллелизма при работе с очень большими векторами Профилирование Получение свойств устройства через Runtime API Nvidia-smi и его конфигурации Occupancy и скрытие задержек на GPU Количество активных блоков на один SM Сколько блоков можно выполнять одновременно на одном SM Начало работы с Nsight Compute Инструменты профилирования Nvidia: Nsight Systems, Nsight Compute, nvprof API для проверки ошибок Анализ производительности через командную строку Графический Nsight Compute в Windows и Linux Анализ производительности предыдущих приложений Анализ производительности Сложение векторов с размером, не являющимся степенью двойки Двумерная индексация Сложение матриц с использованием двумерных блоков и потоков Почему L1 hit-rate равен нулю Shared Memory и Warp Divergence Shared memory Quiz 1 Warp divergence Инструменты отладки Отладка с использованием Visual Studio Vector Reduction Vector reduction только с использованием global memory Разбор кода и профилирование vector reduction Оптимизация vector reduction Race condition и возможности отладки Оптимизация использования потоков Оптимизация через shared memory и unrolling Оптимизация через shuffle operations Roofline Model Roofline analysis: приложения, ограниченные вычислениями и памятью

Складчина создана 10 апреля 2026 г. · описание обновлено 23 апреля 2026 г.

Теги курса

Инструменты
769 ₽ 1 500 ₽