Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
План на курса
Въведение
- Какво е 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
Course - GPU Programming with CUDA and Python
Machine Translated
Обучаващи енергия и хумор.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Course - NVIDIA GPU Programming - Extended
Machine Translated