Благодарим ви, че изпратихте вашето запитване! Един от членовете на нашия екип ще се свърже с вас скоро.
Благодарим ви, че направихте своята резервация! Един от членовете на нашия екип ще се свърже с вас скоро.
План на курса
Въведение
- Какво е ROCm?
- Какво е HIP?
- ROCm срещу CUDA срещу OpenCL
- Преглед на характеристиките и архитектурата на ROCm и HIP
- ROCm for Windows срещу ROCm за Linux
Инсталация
- Инсталиране на ROCm на Windows
- Проверка на инсталацията и проверка на съвместимостта на устройството
- Актуализиране или деинсталиране на ROCm в Windows
- Отстраняване на често срещани проблеми при инсталиране
Приготвяме се да започнем
- Създаване на нов ROCm проект с помощта на Visual Studio код в Windows
- Проучване на структурата и файловете на проекта
- Компилиране и стартиране на програмата
- Показване на изхода с помощта на printf и fprintf
ROCm API
- Използване на ROCm API в хост програмата
- Запитване за информация и възможности на устройството
- Разпределяне и освобождаване на паметта на устройството
- Копиране на данни между хост и устройство
- Стартиране на ядра и синхронизиране на нишки
- Обработка на грешки и изключения
HIP език
- Използване на HIP език в програмата на устройството
- Писане на ядра, които се изпълняват на GPU и манипулират данни
- Използване на типове данни, квалификатори, оператори и изрази
- Използване на вградени функции, променливи и библиотеки
Модел ROCm и HIP памет
- Използване на различни пространства на паметта, като глобална, споделена, постоянна и локална
- Използване на различни обекти на паметта, като указатели, масиви, текстури и повърхности
- Използване на различни режими за достъп до паметта, като само за четене, само за запис, четене-запис и др.
- Използване на модел за съгласуваност на паметта и механизми за синхронизация
Модел на изпълнение ROCm и HIP
- Използване на различни модели на изпълнение, като нишки, блокове и мрежи
- Използване на функции на нишка, като hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x и др.
- Използване на блокови функции, като __syncthreads, __threadfence_block и др.
- Използване на мрежови функции, като hipGridDim_x, hipGridSync, кооперативни групи и др.
Отстраняване на грешки
- Дебъгване на ROCm и HIP програми в Windows
- Използване на Visual Studio програма за отстраняване на грешки в код за проверка на променливи, точки на прекъсване, стек на повиквания и т.н.
- Използване на ROCm Debugger за отстраняване на грешки в ROCm и HIP програми на AMD устройства
- Използване на ROCm Profiler за анализиране на ROCm и HIP програми на AMD устройства
Оптимизация
- Оптимизиране на ROCm и HIP програми на Windows
- Използване на техники за обединяване за подобряване на пропускателната способност на паметта
- Използване на техники за кеширане и предварително извличане за намаляване на латентността на паметта
- Използване на споделена памет и техники за локална памет за оптимизиране на достъпа до паметта и честотната лента
- Използване на профилиране и инструменти за профилиране за измерване и подобряване на времето за изпълнение и използването на ресурсите
Обобщение и следваща стъпка
Изисквания
- Разбиране на езика C/C++ и концепциите за паралелно програмиране
- Основни познания за компютърната архитектура и йерархията на паметта
- Опит с инструменти за команден ред и редактори на код
- Познаване на операционната система Windows и PowerShell
Публика
- Разработчици, които искат да научат как да инсталират и използват ROCm на Windows, за да програмират AMD GPU и да използват техния паралелизъм
- Разработчици, които искат да напишат високопроизводителен и мащабируем код, който може да работи на различни AMD устройства
- Програмисти, които желаят да изследват аспектите на ниско ниво на GPU програмирането и да оптимизират производителността на кода си
21 Часа
Oтзиви от потребители (2)
Много интерактивен с различни примери, с добра прогресия в сложността между началото и края на обучението.
Jenny - Andheo
Курс - GPU Programming with CUDA and Python
Машинен превод
Обучаващи енергия и хумор.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Курс - NVIDIA GPU Programming - Extended
Машинен превод