お問い合わせを送信いただきありがとうございます!当社のスタッフがすぐにご連絡いたします。
予約を送信いただきありがとうございます!当社のスタッフがすぐにご連絡いたします。
コース概要
はじめに
- ROCmとは何か?
- HIPとは何か?
- ROCmとCUDAおよびOpenCLの違い
- ROCmおよびHIPが持つ特徴やアーキテクチャの概要
- 開発環境のセットアップ方法
はじめの一歩
- Visual Studio Codeを利用して新規ROCmプロジェクトを作成する
- プロジェクト構造および各ファイルの内容を確認する
- プログラムのコンパイルと実行方法
- printfやfprintfを用いて出力結果を表示させる
ROCm APIの活用
- ホスト側プログラムにおけるROCm APIの役割を理解する
- デバイス情報や機能性に関する照会にROCm APIを利用する
- メモリ確保・解放処理にもROCm APIを用いる
- ホストとデバイス間でのデータ転送の実施方法
- カーネルの起動およびスレッド同期を行うためのAPI利用法
- エラーや例外処理にもROCm APIを活用する
HIP言語について
- デバイス側プログラムにおけるHIP言語の役割を把握する
- HIP言語を用いてGPU上で実行可能なカーネルを記述し、データ操作を行う方法
- HIPが提供するデータ型や修飾子、演算子、式の利用法
- 一般的な処理に必要となるHIP組み込み関数や変数、ライブラリの使用方法
ROCmおよびHIPのメモリモデル
- ホスト側メモリとデバイス側メモリの違いについて理解する
- グローバル・共有・定数・ローカルといった各種メモリ領域の使い分け方
- ポインタや配列、テクスチャ、サーフェースなどのメモリオブジェクト利用法
- 読み取り専用・書き込み専用・読み書き可能といったアクセスモードの使い方
- メモリ一貫性モデルや同期機構の適切な活用方法
ROCmおよびHIPの実行モデル
- ホスト側とデバイス側における処理形態の相違点を把握する
- スレッド・ブロック・グリッド構造を用いた並列処理の制御方法
- hipThreadIdx_xやhipBlockIdx_x、hipBlockDim_xといったスレッド関連関数の使い方
- __syncthreadsや__threadfence_blockなどのブロック関連機能の利用法
- hipGridDim_xやhipGridSync、協調グループといったグリッド関連機能について理解する
デバッグ手法
- ROCmおよびHIPプログラムで頻出するエラーや不具合の種類を把握する
- Visual Studio Codeのデバッガを用いて変数内容やブレークポイント、呼び出し履歴などを確認する方法
- AMD製デバイス上でROCmおよびHIPプログラムをデバッグするためのROCm Debuggerの使用法
- AMD製デバイスにおいてROCmおよびHIPプログラムを解析するためのROCm Profilerの活用法
最適化手法
- プログラム性能に影響を与える各種要因を理解する
- メモリアクセス効率向上を目的としたコールシージング技術の活用方法
- メモリ遅延削減のためのキャッシュ化・プリフェッチ手法の実践法
- 共有メモリやローカルメモリを駆使したデータ転送および帯域幅の最適化方法
- プロファイリング技術や各種ツールを用いて処理時間やリソース利用率を改善するための取り組み方
まとめと次のステップ
要求
- C/C++言語および並列プログラミングの基礎知識
- コンピュータアーキテクチャおよびメモリ階層に関する基本的な理解
- コマンドラインツールやコードエディタの使用経験
受講対象者
- ROCmおよびHIPを活用してAMD GPUプログラミングを行い、その並列処理能力を生かしたい開発者
- さまざまなAMD製デバイス上で高パフォーマンスかつスケーラビリティの高いコードを作成したい開発者
- GPUプログラミングの低レベルな仕組みを深く学び、自身のコードの最適化に努めたいプログラマー
28 時間