План на курса

Въведение

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

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

  • GPU vs CPU архитектура
  • Разбиране на SIMT (Single Instruction, Multiple Threads)
  • CUDA програмен модел

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

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

Основи на паралелното изпълнение на Programming

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

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

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

Създаване на кастомен CUDA ядро

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

Памет Management

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

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

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

Превод на CPU базирани приложения към GPU

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

Дебъг и остраняване на грешки

  • Дебъгване на приложенията с CUDA
  • Общи грешки и как да ги решите
  • Инструменти и техники за тестове и валидация

Съкращение и следващите стъпки

  • Преглед на основните концепции
  • Лучшите практики при програмирането с GPU
  • Ресурси за продължаване на ученето

Изисквания

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

Публика

  • Разработчици
 14 Часа

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


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

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

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

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