コース概要

イントロダクション

  • GPUプログラミングとは?
  • なぜGPUプログラミングを使用するのか?
  • GPUプログラミングの課題とトレードオフは何か?
  • GPUプログラミングのフレームワークは何があるのか?
  • アプリケーションに適したフレームワークの選択

OpenCL

  • OpenCLとは?
  • OpenCLの利点と欠点は何か?
  • OpenCL用の開発環境のセットアップ
  • ベクトル加算を行う基本的なOpenCLプログラムの作成
  • OpenCL APIを使用してデバイス情報をクエリし、デバイスメモリーの割り当てと解放、ホストとデバイス間でのデータコピー、カーネルの起動、およびスレッドの同期を行う
  • OpenCL C言語を使用してデバイス上で実行され、データを操作するカーネルを記述する
  • 一般的なタスクや操作を行うために、OpenCL組み込み関数、変数、およびライブラリの使用
  • データ転送とメモリアクセスを最適化するために、グローバル、ローカル、定数、プライベートなどのOpenCLメモリスペースを使用する
  • 並列性を定義するワークアイテム、ワークグループ、ND範囲を制御するためにOpenCL実行モデルを使用する
  • CodeXLなどのツールを使用してOpenCLプログラムのデバッグとテストを行う
  • 連続化、キャッシュ、プリフェッチ、プロファイリングなどのテクニックを使用してOpenCLプログラムを最適化する

CUDA

  • CUDAとは?
  • CUDAの利点と欠点は何か?
  • CUDA用の開発環境のセットアップ
  • ベクトル加算を行う基本的なCUDAプログラムの作成
  • CUDA APIを使用してデバイス情報をクエリし、デバイスメモリーの割り当てと解放、ホストとデバイス間でのデータコピー、カーネルの起動、およびスレッドの同期を行う
  • CUDA C/C++言語を使用してデバイス上で実行され、データを操作するカーネルを記述する
  • 一般的なタスクや操作を行うために、CUDA組み込み関数、変数、およびライブラリの使用
  • データ転送とメモリアクセスを最適化するために、グローバル、共有、定数、ローカルなどのCUDAメモリスペースを使用する
  • 並列性を定義するスレッド、ブロック、グリッドを制御するためにCUDA実行モデルを使用する
  • CUDA-GDB、CUDA-MEMCHECK、NVIDIA Nsightなどのツールを使用してCUDAプログラムのデバッグとテストを行う
  • 連続化、キャッシュ、プリフェッチ、プロファイリングなどのテクニックを使用してCUDAプログラムを最適化する

ROCm

  • ROCmとは?
  • ROCmの利点と欠点は何か?
  • ROCm用の開発環境のセットアップ
  • ベクトル加算を行う基本的なROCmプログラムの作成
  • ROCm APIを使用してデバイス情報をクエリし、デバイスメモリーの割り当てと解放、ホストとデバイス間でのデータコピー、カーネルの起動、およびスレッドの同期を行う
  • ROCm C/C++言語を使用してデバイス上で実行され、データを操作するカーネルを記述する
  • 一般的なタスクや操作を行うために、ROCm組み込み関数、変数、およびライブラリの使用
  • データ転送とメモリアクセスを最適化するために、グローバル、ローカル、定数、プライベートなどのROCmメモリスペースを使用する
  • 並列性を定義するスレッド、ブロック、グリッドを制御するためにROCm実行モデルを使用する
  • ROCm DebuggerとROCm Profilerなどのツールを使用してROCmプログラムのデバッグとテストを行う
  • 連続化、キャッシュ、プリフェッチ、プロファイリングなどのテクニックを使用してROCmプログラムを最適化する

比較

  • OpenCL、CUDA、およびROCmの機能、パフォーマンス、互換性を比較する
  • ベンチマークとメトリクスを使用してGPUプログラムを評価する
  • GPUプログラミングのベストプラクティスとヒントを学ぶ
  • GPUプログラミングの現在および将来のトレンドと課題を探る

まとめと次なるステップ

要求

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

対象者

  • GPUプログラミングの異なるフレームワークを使用し、その機能、パフォーマンス、互換性を比較したい開発者
  • 異なるプラットフォームやデバイスで実行できる移植可能で拡張可能なコードを書くことのできる開発者
  • GPUプログラミングと最適化のトレードオフや課題を探求したいプログラマー
 28 時間

参加者の人数


参加者1人当たりの料金

今後のコース

関連カテゴリー