0Pricing
CUDA Academy icon

CUDA Academy

CPPEnterpriseDesktopAi

Программируйте GPU с CUDA C++. От потоков и иерархии памяти до ядер, оптимизации и реального параллельного вычисления.

🤖 На основе AI📚 30 курсов👥 100 000+ учеников⭐ Рейтинг 4,9
Обзор курса

CUDA: Программирование GPU с C++

Программируйте GPU с CUDA C++. От потоков и иерархии памяти до ядер, оптимизации и реального параллельного вычисления. Этот трек включает 30 прогрессивных мини-курсов от начального уровня (A1) до продвинутого (B2), с короткими сфокусированными уроками и быстрыми тестами для закрепления каждой концепции.

Чему вы научитесь

Вы начнёте с основ и будете продвигаться через промежуточные и продвинутые темы, каждый курс строится на предыдущем. Каждый урок практический и компактный, с помощью AI-репетитора 24/7, когда вам это нужно.

Как это работает

Каждый курс разбит на четыре сфокусированных, компактных урока. Выполняйте несколько уроков в день и вы освоите весь трек за недели, а не месяцы.

Начать учиться →

Как ты будешь учиться

🎯
Интерактивные уроки
Практические упражнения по программированию с мгновенной обратной связью
🤖
ИИ-репетитор
Получай мгновенную помощь от нашего ИИ, когда застрянешь
💻
Встроенный редактор
Пиши и запускай код прямо в браузере
🏆
Сертификат
Получи сертификат при завершении курса
Программа обучения

30 курсов

Все курсы в пути обучения CUDA Academy.

01

Почему GPU превосходно справляется с параллельными задачами

A14 уроков

Объясните, что такое GPU и почему тысячи небольших ядер превосходят несколько быстрых ядер CPU в параллельных задачах

02

Настройка набора инструментов CUDA

A14 уроковPRO

Установите CUDA Toolkit, проверьте драйвер и скомпилируйте свою первую программу с помощью nvcc

03

Хост и устройство: два мира

A14 уроковPRO

Различайте код хоста CPU и код устройства GPU и понимайте, к какой памяти может обращаться каждая сторона

04

Напишите своё первое ядро

A14 уроковPRO

Определите, запустите и выполните ядро GPU, которое выводит данные непосредственно на устройстве

05

Потоки, блоки и сетки

A14 уроковPRO

Отображайте задачу на иерархию потоков, блоков и сетки CUDA

06

Глобальная индексация потоков

A24 уроковPRO

Вычисляйте уникальный глобальный индекс, чтобы каждый поток обрабатывал ровно один элемент данных

07

Управление памятью устройства

A24 уроковPRO

Выделяйте и освобождайте память GPU и изучайте кучу устройства

08

Перемещение данных с помощью cudaMemcpy

A24 уроковPRO

Надёжно передавайте массивы между хостом и устройством в обоих направлениях

09

Сложение векторов от начала до конца

A24 уроковPRO

Напишите на GPU полноценную программу C = A + B — от выделения памяти до проверки результата

10

Корректная обработка ошибок CUDA

A24 уроковPRO

Обнаруживайте и выводите сведения о сбоях CUDA при вызовах API и запуске ядер

11

Иерархия памяти CUDA

B14 уроковPRO

Выбирайте подходящее пространство памяти: глобальную, общую, константную, локальную память или регистры

12

Объединение обращений к глобальной памяти

B14 уроковPRO

Организуйте шаблоны доступа так, чтобы warp считывал непрерывную область памяти за одну транзакцию

13

Освоение общей памяти на кристалле

B14 уроковPRO

Используйте память __shared__ и __syncthreads для обмена данными внутри блока

14

Блочные алгоритмы в общей памяти

B14 уроковPRO

Применяйте шаблон разбиения «загрузка–синхронизация–вычисление», чтобы повторно использовать данные и сократить обращения к глобальной памя…

15

Блочное умножение матриц

B14 уроковPRO

Создайте GEMM с разбиением и общей памятью, который значительно превосходит наивную версию

16

Правильная параллельная редукция

B14 уроковPRO

Эффективно суммируйте массив на GPU с помощью древовидной редукции

17

Атомарные операции для безопасной конкуренции

B14 уроковPRO

Используйте атомарные операции для обновления общих результатов без конфликтов доступа

18

Перекрытие работы с потоками CUDA

B14 уроковPRO

Параллельно запускайте ядра и передачи данных с помощью потоков, отличных от стандартного

19

Асинхронные передачи и закреплённая память

B14 уроковPRO

Ускоряйте передачи с помощью закреплённой памяти хоста и асинхронного копирования в потоках

20

Упрощение работы с унифицированной памятью

B14 уроковPRO

Используйте cudaMallocManaged для одного указателя, общего для хоста и устройства

21

Настройка заполненности и конфигурации запуска

B24 уроковPRO

Выбирайте размеры блоков и ограничивайте ресурсы, чтобы максимизировать заполненность SM

22

Профилирование ядер с Nsight

B24 уроковPRO

Находите узкие места с помощью метрик Nsight Systems и Nsight Compute

23

Примитивы уровня warp и перестановки

B24 уроковPRO

Обменивайтесь данными внутри warp с помощью встроенных операций перестановки и голосования, не используя общую память

24

Продвинутая оптимизация ядер

B24 уроковPRO

Применяйте ILP, разворачивание циклов и векторизованные загрузки, чтобы приблизиться к пиковой производительности

25

Масштабирование на несколько GPU

B24 уроковPRO

Распределяйте работу между несколькими GPU и напрямую перемещайте данные между ними с помощью P2P

26

Ускорение с cuBLAS и Thrust

B24 уроковPRO

Вызывайте оптимизированные библиотеки NVIDIA для GEMM, сортировки и параллельных алгоритмов

27

Динамический параллелизм и графы CUDA

B24 уроковPRO

Запускайте ядра с устройства и сохраняйте работу в повторно используемые графы CUDA

28

Программирование тензорных ядер

B24 уроковPRO

Используйте тензорные ядра со смешанной точностью через API WMMA для быстрых матричных вычислений

29

Отладка с cuda-gdb и Sanitizer

B24 уроковPRO

Находите причины сбоев, конфликтов доступа и ошибок памяти с помощью инструментов отладки CUDA

30

Итоговый проект: конвейер обработки изображений на GPU

B24 уроковPRO

Объедините ядра, потоки и профилирование в настоящий обработчик изображений с ускорением на GPU

Часто задаваемые вопросы

Часто задаваемые вопросы

Курс CUDA Academy бесплатный?

Да. Ты можешь начать курс CUDA Academy бесплатно и пройти его интерактивные уроки без платежей. Опциональная подписка PRO открывает продвинутые инструменты на базе ИИ и сертификат, который можно поделиться.

Нужен ли мне опыт, чтобы выучить CPP?

Нет. Курс начинается с основ и постепенно переходит к более сложным темам, поэтому ты можешь начать даже без предыдущего опыта CPP.

Как я выучу CPP на CoddyKit?

Ты учишься на практике. Короткие интерактивные уроки сочетают понятное объяснение с практическими упражнениями по программированию, которые выполняются в реальном времени, а круглосуточный ИИ-репетитор помогает, когда ты застрянешь.

Получу ли я сертификат за завершение CUDA Academy?

Да. Пользователи PRO могут пройти экзамен и получить сертификат завершения CUDA Academy с проверяемым кодом.

Могу ли я выучить CPP на телефоне?

Да. CoddyKit доступен в браузере и как нативное приложение на iOS и Android, так что ты можешь выучить CPP на любом устройстве и твой прогресс синхронизируется.

Начни CUDA Academy прямо сейчас

Присоединись к тысячам учеников, которые осваивают программирование с помощью уроков на AI.

Начать бесплатно →Все курсы