Благодарим ви, че изпратихте вашето запитване! Един от членовете на нашия екип ще се свърже с вас скоро.
Благодарим ви, че направихте своята резервация! Един от членовете на нашия екип ще се свърже с вас скоро.
План на курса
Въведение
- Какво е 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)
Много интерактивен с различни примери, с добра прогресия в сложността между началото и края на обучението.
Jenny - Andheo
Курс - GPU Programming with CUDA and Python
Машинен превод