К курсам
AI022 Professional

Руководство по программированию AMD HIP

Полное техническое руководство по интерфейсу гетерогенных вычислений для портируемости (HIP). Оно предоставляет API времени выполнения на языке C++ и язык ядра, которые позволяют разработчикам создавать переносимые приложения для графических процессоров AMD и NVIDIA из одного исходного кода. Руководство охватывает установку, настройку среды, модели программирования, выделение памяти и инструменты для перевода кода CUDA в HIP.

4.9
12.0h
841 учеников
0 лайки
Искусственный интеллект
Начать обучение

Обзор курса

📚 Обзор содержания

Полное техническое руководство по интерфейсу портируемости гетерогенных вычислений (HIP). Оно предоставляет API-интерфейс для среды выполнения на языке C++ и язык ядер, позволяющий разработчикам создавать переносимые приложения для графических процессоров AMD и NVIDIA из одного исходного кода. Руководство охватывает установку, настройку среды, модели программирования, выделение памяти и инструменты для переноса кода CUDA в HIP.

Освойте портируемое программирование на GPU: один исходный код для платформ AMD и NVIDIA.

Автор: Advanced Micro Devices, Inc. (AMD)

Благодарности: торговые марки AMD, логотип AMD Arrow, AMD Instinct, Radeon, ROCm и их комбинации являются товарными знаками компании Advanced Micro Devices, Inc. Linux — зарегистрированный товарный знак Линуса Торвальдса. PCIe — зарегистрированный товарный знак корпорации PCI-SIG.

🎯 Цели обучения

  1. Определить основные функции и преимущества платформы HIP.
  2. Показать, как получить доступ к среде HIP и запросить сведения о ней с помощью системных инструментов.
  3. Объяснить архитектурную связь между портируемостью HIP и технологией компилятора.
  4. Выполнить установку для конкретных платформ как для среды NVIDIA, так и для среды AMD.
  5. Координировать многорепозиториальный процесс сборки для компиляции HIP из исходных кодов.
  6. Проверить успешность установки с помощью инструментов конфигурации системы и проверки.
  7. Настроить и управлять памятью графического процессора с использованием выделения памяти через HIP, управлением согласованностью и видимостью хост-памяти без копирования.
  8. Разрабатывать высокопроизводительные ядра с использованием специфичных для HIP квалификаторов функций/переменных, векторных типов и примитивов синхронизации.
  9. Реализовать сложные параллельные алгоритмы с использованием функций шаффла, голосования, баллотирования и кооперативных групп.
  10. Автоматизировать перевод кода CUDA в формат HIP с помощью инструментов HIPIFY и управлять преобразованием проектов «на месте».

🔹 Урок 1: Введение в портируемость и архитектуру HIP

Обзор: Этот урок охватывает основополагающие аспекты интерфейса портируемых гетерогенных вычислений (HIP). Он фокусируется на ключевых особенностях, определяющих функциональность HIP, основных методах доступа к среде HIP и базовой технологии компилятора, обеспечивающей бесшовную портируемость между различными архитектурами графических процессоров (AMD и NVIDIA).

Результаты обучения:

  • Определить основные функции и ценность платформы HIP.
  • Продемонстрировать, как получить доступ к среде HIP и запросить сведения о ней с помощью системных инструментов.
  • Объяснить архитектурную связь между портируемостью HIP и технологией компилятора.

🔹 Урок 2: Установка и проверка среды HIP

Обзор: Этот урок представляет техническое руководство по настройке среды (Heterogeneous-compute Interface for Portability) HIP на различных аппаратных платформах. Он охватывает специфические шаги установки для бэкендов AMD и NVIDIA, сложный процесс сборки времени выполнения HIP из исходных репозиториев, а также процедуры окончательной проверки для подтверждения готовности системы к разработке на графических процессорах.

Результаты обучения:

  • Выполнить установку для конкретных платформ как для среды NVIDIA, так и для среды AMD.
  • Координировать многорепозиториальный процесс сборки для компиляции HIP из исходных кодов.
  • Проверить успешность установки с помощью инструментов конфигурации системы и проверки.

🔹 Урок 3: Модель программирования и глубокое погружение в API HIP

Обзор: Этот урок представляет всестороннее исследование модели программирования интерфейса портируемых гетерогенных вычислений (HIP). Он охватывает основной API для управления памятью и выполнения ядер, тонкие особенности языка ядер HIP (включая квалификаторы и встроенные переменные), а также продвинутые функции, такие как примитивы уровня варпа, кооперативные группы и специализированные математические встроенные функции.

Результаты обучения:

  • Настроить и управлять памятью графического процессора с использованием выделения памяти через HIP, управлением согласованностью и видимостью хост-памяти без копирования.
  • Разрабатывать высокопроизводительные ядра с использованием специфичных для HIP квалификаторов функций/переменных, векторных типов и примитивов синхронизации.
  • Реализовать сложные параллельные алгоритмы с использованием функций шаффла, голосования, баллотирования и кооперативных групп.

🔹 Урок 4: Переход и перенос приложений CUDA в HIP

Обзор: Этот урок описывает систематический процесс миграции исходного кода CUDA в платформу HIP (Heterogeneous-Compute Interface for Portability). Он подробно рассматривает использование автоматизированных инструментов, таких как HIPIFY, стратегии преобразования проектов, выявление платформенно-специфичного поведения компиляторов (HIP-Clang против NVIDIA), а также управление различиями в архитектуре.

Результаты обучения:

  • Автоматизировать перевод кода CUDA в формат HIP с помощью инструментов HIPIFY и управлять преобразованием проектов «на месте».
  • Различать целевые платформы AMD и NVIDIA, а также компиляторы, используя препроцессорные макросы и запросы среды.
  • Реализовывать проверки функций архитектуры (HIP_ARCH) и применять обходные решения для специализированных функций CUDA, таких как memcpyToSymbol.