Свържете се с нас

Съдържание и теми, включени в курса

Въведение

  • Какво е ROCm?
  • Какво е HIP?
  • ROCm срещу CUDA срещу OpenCL
  • Преглед на характеристиките и архитектурата на ROCm и HIP
  • ROCm за Windows срещу ROCm за Linux

Инсталиране

  • Инсталиране на ROCm на Windows
  • Проверка на инсталацията и съвместимостта на устройството
  • Актуализиране или деинсталиране на ROCm на Windows
  • Отстраняване на често срещани проблеми при инсталирането

Първи стъпки

  • Създаване на нов ROCm проект с помощта на Visual Studio Code на 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 Code за инспекция на променливи, точки на прекъсване, стек на извикванията и т.н.
  • Използване на ROCm Debugger за дебъгване на ROCm и HIP програми на AMD устройства
  • Използване на ROCm Profiler за анализ на ROCm и HIP програми на AMD устройства

Оптимизация

  • Оптимизиране на ROCm и HIP програми на Windows
  • Използване на техники за обединяване за подобряване на пропускателната способност на паметта
  • Използване на техники за кеширане и предварително извличане за намаляване на латентността на паметта
  • Използване на техники за споделена и локална памет за оптимизиране на достъпите до паметта и честотната лента
  • Използване на профилиране и инструменти за профилиране за измерване и подобряване на времето за изпълнение и използването на ресурси

Обобщение и следващи стъпки

Изисквания

  • Разбиране на езика C/C++ и концепциите за паралелно програмиране
  • Основни познания по компютърна архитектура и йерархия на паметта
  • Опит с инструменти от командния ред и редактори на код
  • Познаване на операционната система Windows и PowerShell

Аудитория

  • Разработчици, които желаят да научат как да инсталират и използват ROCm на Windows, за да програмират AMD GPU и да се възползват от тяхната паралелност
  • Разработчици, които искат да пишат високопроизводителен и мащабируем код, който може да работи на различни AMD устройства
  • Програмисти, които искат да изследват ниско-нивовите аспекти на GPU програмирането и да оптимизират производителността на своя код
 21 Часа

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


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

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

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