コース概要

はじめに

  • ROCmとは?
  • HIPとは?
  • ROCm vs CUDA vs OpenCL
  • ROCmおよびHIPの機能とアーキテクチャの概要
  • 開発環境の設定

はじめに

  • Visual Studio Codeを使用して新しいROCmプロジェクトを作成する。
  • プロジェクト構造とファイルを探索する。
  • プログラムをコンパイルし、実行する。
  • printfとfprintfを使用して出力を表示する。

ROCm API

  • ホストプログラムでのROCm APIの役割の理解。
  • デバイス情報や機能の照会にROCm APIを使用する。
  • デバイスマモリの確保と解放にROCm APIを使用する。
  • ホストとデバイス間でのデータコピーにROCm APIを使用する。
  • カーネルの起動とスレッドの同期にROCm APIを使用する。
  • エラーと例外を処理するためのROCm APIの使用。

HIP言語

  • デバイスプログラムでのHIP言語の役割の理解。
  • GPU上で実行され、データを操作するカーネルを書くためにHIP言語を使用する。
  • HIPデータ型、修飾子、演算子、式の使用。
  • 一般的なタスクと操作を行うためのHIP組み込み関数、変数、ライブラリの使用。

ROCmおよびHIPメモリモデル

  • ホストとデバイスメモリモデルの違いの理解。
  • データ転送とメモリアクセスを最適化するためのROCmおよびHIPのメモリスペース(グローバル、共有、定数、ローカル)の使用。
  • ポインタ、配列、テクスチャ、サーフェスなどのROCmおよびHIPのメモリオブジェクトの使用。
  • 読み取り専用、書き込み専用、読み書き可能などのROCmおよびHIPのメモリアクセスモードの使用。
  • メモリの一貫性モデルと同期メカニズムを使用する。

ROCmおよびHIP実行モデル

  • ホストとデバイス実行モデルの違いの理解。
  • 並列性を定義するためにROCmおよびHIPのスレッド、ブロック、グリッドを使用する。
  • hipThreadIdx_x、hipBlockIdx_x、hipBlockDim_xなどのROCmおよびHIPのスレッド関数の使用。
  • __syncthreads、__threadfence_blockなどのROCmおよびHIPのブロック関数の使用。
  • hipGridDim_x、hipGridSync、協調グループなどのROCmおよびHIPのグリッド関数の使用。

デバッグ

  • ROCmおよびHIPプログラムで一般的なエラーとバグの理解。
  • 変数、ブレークポイント、呼び出しスタックなどを検査するためにVisual Studio Codeデバッガーを使用する。
  • AMDデバイスでのROCmおよびHIPプログラムをデバッグするためにROCmデバッガーを使用する。
  • AMDデバイスでのROCmおよびHIPプログラムを分析するためにROCmプロファイラを使用する。

最適化

  • ROCmおよびHIPプログラムのパフォーマンスに影響を与える要因の理解。
  • メモリ吞吐量を向上させるためのROCmおよびHIPコアリング技術の使用。
  • メモリアクセス遅延を削減するためのROCmおよびHIPキャッシュとプリフェッチ技術の使用。
  • メモリアクセスと帯域幅を最適化するためにROCmおよびHIP共有メモリとローカルメモリ技術を使用する。
  • 実行時間とリソース利用を測定し改善するためにROCmおよびHIPプロファイリングとプロファイリングツールの使用。

まとめと次へのステップ

要求

  • C/C++言語と並列プログラミング概念の理解。
  • コンピュータアーキテクチャとメモリ階層の基本的な知識。
  • コマンドラインツールやコードエディタの使用経験。

対象者

  • ROCmとHIPを使用してAMD GPUをプログラミングし、並列性を活用したい開発者。
  • 異なるAMDデバイスで動作する高性能でスケーラブルなコードを書きたがる開発者。
  • GPUプログラミングの低レベル側を探求し、コード性能を最適化したいプログラマー。
 28 時間

参加者の人数


参加者1人当たりの料金

今後のコース

関連カテゴリー