コース一覧へ戻る
AI022 Professional

AMD HIP プログラミングガイド

AMDのホモジニアスコンピュートインターフェース(HIP)用の包括的な技術マニュアル。このマニュアルは、C++ランタイムAPIおよびカーネル言語を提供し、1つのソースコードからAMDとNVIDIAのGPU向けにポータブルなアプリケーションを開発できるようにします。ガイドでは、インストール、環境設定、プログラミングモデル、メモリ割り当て、そしてCUDAコードをHIPに移行するためのツールについて解説しています。

4.9
12.0h
841 受講者
0 いいね
人工知能
学習を開始

コース概要

📚 コンテンツ概要

ホモジニアスコンピューティングインターフェース for Portability(HIP)に関する包括的な技術マニュアル。このマニュアルでは、1つのソースコードからAMDおよびNVIDIA GPU向けのポータブルアプリケーションを構築できる、C++ランタイムAPIとカーネル言語を提供している。ガイドには、インストール手順、環境設定、プログラミングモデル、メモリ割り当て、およびCUDAコードからHIPへの移行に必要なツールについて網羅的に記載されている。

ポータブルなGPUプログラミングの習得:AMDとNVIDIAの両プラットフォームで同一のソースを使用。

著者: Advanced Micro Devices, Inc. (AMD)

謝辞: AMD、AMD Arrowロゴ、AMD Instinct、Radeon、ROCmおよびその組み合わせは、Advanced Micro Devices, Inc.の登録商標です。LinuxはLinus Torvaldsの登録商標です。PCIeはPCI-SIG Corporationの登録商標です。

🎯 学習目標

  1. HIPフレームワークの主な機能と価値提案を定義する。
  2. システムツールを用いてHIP環境にアクセスし照会する方法を示す。
  3. HIPのポータビリティとそのコンパイラ技術とのアーキテクチャ的関係を説明する。
  4. NVIDIAおよびAMD環境向けのプラットフォーム固有のインストールを実行する。
  5. 複数リポジトリのビルドプロセスを調整して、ソースコードからHIPをコンパイルする。
  6. システム構成および検証ツールを用いて正常なインストールを検証する。
  7. HIPの割り当て、コヒーレンシ制御、ゼロコピーホストメモリの可視性を用いてGPUメモリを設定・管理する。
  8. HIP特有の関数/変数修飾子、ベクトル型、同期プリミティブを使用して高性能カーネルを開発する。
  9. ワープシャッフル、ボート、ボールォット、協調グループ関数を利用して高度な並列アルゴリズムを実装する。
  10. HIPIFYツールを用いたCUDAコードからHIPへの自動翻訳を行い、プロジェクトのインプレース変換を管理する。

🔹 レッスン1: HIPポータビリティとアーキテクチャの基礎

概要: このレッスンでは、ホモジニアスコンピューティングインターフェース for Portability(HIP)の基礎的な側面を扱う。HIPの核心となる機能、HIP環境へのアクセス方法、および異なるGPUアーキテクチャ(AMDおよびNVIDIA)間でのシームレスなポータビリティを実現するための基盤となるコンパイラ技術について学ぶ。

学習成果:

  • HIPフレームワークの主な機能と価値提案を定義する。
  • システムツールを用いてHIP環境にアクセスし照会する方法を示す。
  • HIPポータビリティとそのコンパイラ技術とのアーキテクチャ的関係を説明する。

🔹 レッスン2: HIP環境のインストールと検証

概要: このレッスンでは、さまざまなハードウェアプラットフォーム上でHIP(ホモジニアスコンピューティングインターフェース for Portability)環境をセットアップするための技術ガイドを提供する。AMDおよびNVIDIAバックエンド向けの具体的なインストール手順、HIPランタイムをソースリポジトリからビルドする複雑なプロセス、そしてGPU開発に向けたシステム準備状態を確認する最終的な検証手順についてカバーしている。

学習成果:

  • NVIDIAおよびAMD環境向けのプラットフォーム固有のインストールを実行する。
  • 複数リポジトリのビルドプロセスを調整して、ソースコードからHIPをコンパイルする。
  • システム構成および検証ツールを用いて正常なインストールを検証する。

🔹 レッスン3: HIPプログラミングモデルとAPIの詳細解説

概要: このレッスンでは、ホモジニアスコンピューティングインターフェース for Portability(HIP)プログラミングモデルについて包括的に探求する。メモリ管理およびカーネル実行の基本的なAPI、HIPカーネル言語の細部(修飾子や組み込み変数など)、ワープレベルのプリミティブ、協調グループ、専用数学インストラクションといった高度な機能についても詳述する。

学習成果:

  • HIPの割り当て、コヒーレンシ制御、ゼロコピーホストメモリの可視性を用いてGPUメモリを設定・管理する。
  • HIP特有の関数/変数修飾子、ベクトル型、同期プリミティブを使用して高性能カーネルを開発する。
  • ワープシャッフル、ボート、ボールォット、協調グループ関数を利用して高度な並列アルゴリズムを実装する。

🔹 レッスン4: CUDAアプリケーションからHIPへの移行とポート化

概要: このレッスンでは、CUDAソースコードをHIP(ホモジニアスコンピューティングインターフェース for Portability)フレームワークに移行する体系的なプロセスを扱う。自動化ツール(例:HIPIFY)の使用方法、プロジェクト変換戦略、プラットフォーム固有のコンパイラ動作の識別(HIP-Clang vs. NVIDIA)、アーキテクチャの違いの管理について詳細に説明する。

学習成果:

  • HIPIFYツールを用いてCUDAコードを自動的にHIPに翻訳し、インプレースでのプロジェクト変換を管理する。
  • プリプロセッサマクロおよび環境照会を用いて、AMDとNVIDIAのターゲットプラットフォームおよびコンパイラを区別する。
  • アーキテクチャ固有の機能チェック(HIP_ARCH)を実装し、memcpyToSymbolなどの特殊なCUDA関数に対する対処法を適用する。