План на курса

Въведение

  • Какво е 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)

Upcoming Courses

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