コース概要

はじめに

  • ROCm とは?
  • HIPとは
  • ROCm と CUDA の比較 [1]
  • ROCmとHIPの特徴とアーキテクチャの概要
  • 開発環境のセットアップ

はじめに

  • 2]コードを使った新しいROCmプロジェクトの作成
  • プロジェクト構造とファイルの探索
  • プログラムのコンパイルと実行
  • printfとfprintfを使った出力表示

ROCm API

  • ホスト・プログラムにおける ROCm API の役割の理解
  • ROCm API を使用したデバイス情報と機能のクエリ
  • ROCm API を使用したデバイスメモリの割り当てと割り当て解除
  • ROCm API を使用したホストとデバイス間のデータコピー
  • ROCm API を使用したカーネル起動とスレッド同期
  • ROCm API を使用してエラーや例外を処理

HIP言語

  • デバイス・プログラムにおけるHIP言語の役割の理解
  • 0]上で実行し、データを操作するカーネルを記述するためのHIP言語の使用
  • HIPデータ型、修飾子、演算子、式の使用
  • HIP組み込み関数、変数、ライブラリを使用して、一般的なタスクや操作を実行する

ROCmと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 プログラムの一般的なエラーやバグの理解
  • 2]コードデバッガを使用した変数、ブレークポイント、コールスタック等の検査
  • ROCm デバッガを使用して AMD デバイス上の ROCm および HIP プログラムをデバッグ
  • ROCm Profiler を使用して AMD デバイス上の ROCm および HIP プログラムを解析

最適化

  • ROCm及びHIPプログラムの性能に影響を与える要因の理解
  • ROCm と HIP の合体技術を使用してメモリスループットを向上
  • ROCm と HIP のキャッシングとプリフェッチ技法を使用し てメモリレイテンシを削減
  • ROCm と HIP の共有メモリとローカルメモリ技術を使用し てメモリアクセスと帯域幅を最適化
  • ROCm と HIP のプロファイリングとプロファイリングツールを使用し て、実行時間とリソース使用率を測定し、改善する

まとめと次のステップ

要求

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

対象者

  • ROCmとHIPを使用してAMD GPUをプログラミングし、その並列性を利用する方法を学びたい開発者
  • 異なるAMDデバイス上で実行可能な、高性能でスケーラブルなコードを書きたい開発者
  • 1]プログラミングの低レベルの側面を探求し、コードの性能を最適化したいプログラマー
 28 時間

参加者の人数



Price per participant

お客様の声 (1)

関連コース

GPU Programming with OpenCL

28 時間

GPU Programming with CUDA

28 時間

GPU Programming - OpenCL vs CUDA vs ROCm

28 時間

ROCm for Windows

21 時間

Introduction to GPU Programming

21 時間

GPU Programming with OpenACC

28 時間

関連カテゴリー