План на курса

Въведение

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

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



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

Oтзиви от потребители (1)

Свързани Kурсове

GPU Programming with OpenCL

28 Hours

GPU Programming with CUDA

28 Hours

GPU Programming - OpenCL vs CUDA vs ROCm

28 Hours

AMD GPU Programming

28 Hours

Introduction to GPU Programming

21 Hours

GPU Programming with OpenACC

28 Hours

Raster and Vector Graphics (Adobe Photoshop, CorelDraw)

28 Hours

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