План на курса

Въведение

  • Какво е програмирането на GPU?
  • Защо да използваме CUDA с Python?
  • Ключови концепции: нишки, блокове, мрежи

Общ преглед на функционалностите и архитектурата на CUDA

  • Архитектура на GPU спрямо CPU
  • Разбиране на SIMT (Едно инструкция, Много нишки)
  • Модел за програмиране с CUDA

Настройка на разработвана среда

  • Инсталиране на CUDA Toolkit и драйверите
  • Инсталиране на Python и Numba
  • Настройка и проверка на околната среда

Основи на паралелното програмиране

  • Въведение в изпълнението на паралелни операции
  • Разбиране на нишките и иерархията им
  • Работа с въртила и синхронизация

Работа с компилатор Numba

  • Въведение в Numba
  • Написване на CUDA ядра с Numba
  • Разбиране на декораторите @cuda.jit

Създаване на персонализирано CUDA ядро

  • Написване и пускане на основно ядро
  • Използване на нишки за елементни операции
  • Управление на размерите на мрежата и блока

Управление на паметта

  • Видове GPU памет (глобална, споделена, локална, постоянна)
  • Преместване на памет между хост и устройство
  • Оптимизация на използването на паметта и избягване на бутилкови гърла

Разширените теми в ускорението с GPU

  • Споделена памет и синхронизация
  • Използване на потоци за асинхронно изпълнение
  • Основи на програмиране с много GPU-та

Преобразуване на приложения, базирани на CPU, в GPU

  • Профилиране на кода на CPU
  • Идентифициране на паралелизируемите секции
  • Преместване на логиката към CUDA ядра

Разкриване на грешки

  • Отстраняване на грешки в CUDA приложенията
  • Често срещани грешки и начини за разрешаване
  • Инструменти и техники за тестове и проверка

Резюме и следващи стъпки

  • Преглед на ключовите концепции
  • Най-добри практики при програмирането с GPU
  • Ресурси за продължаващо обучение

Изисквания

  • Опит в програмирането на Python
  • Опит с NumPy (ndarrays, ufuncs и др.)

Публика

  • Програмисти
 14 Часове

Брой участници


Цена за участник

Отзиви от потребители (1)

Предстоящи Курсове

Свързани Kатегории