お問い合わせを送信いただきありがとうございます!当社のスタッフがすぐにご連絡いたします。
予約を送信いただきありがとうございます!当社のスタッフがすぐにご連絡いたします。
コース概要
はじめに
- 何が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プログラムを最適化する。
HIP
- 何がHIPなのか?
- HIPの利点と欠点は何ですか?
- HIPの開発環境を設定する。
- ベクトル加算を行う基本的なHIPプログラムを作成する。
- デバイスで実行されデータを操作するカーネルを書くためにHIP言語を使用する。
- 一般的なタスクや操作を行うためにHIP組み込み関数、変数、ライブラリを使用する。
- データ転送とメモリアクセスを最適化するためにグローバル、共有、定数、ローカルなどのHIPメモリ空間を使用する。
- スレッド、ブロック、グリッドが定義する並列性を制御するためにHIP実行モデルを使用する。
- HIPプログラムのデバッグとテストを行うためにROCm DebuggerとROCm Profilerなどのツールを使用する。
- コールエシング、キャッシュ、プリフェッチ、プロファイリングなどのテクニックを使用してHIPプログラムを最適化する。
比較
- OpenCL、CUDA、ROCm、HIPの機能、性能、互換性を比較する。
- ベンチマークやメトリクスを使用してGPUプログラムを評価する。
- GPUプログラミングのベストプラクティスとヒントを学ぶ。
- GPUプログラミングの現在と将来の傾向、課題を探る。
まとめと次なるステップ
要求
- C/C++言語と並列プログラミング概念の理解
- コンピュータアーキテクチャとメモリアークレイヤーに関する基本的な知識
- コマンドラインツールやコードエディタを使用した経験
対象者
- GPUプログラミングの基本と主要なフレームワーク、ツールを学びたい開発者
- 異なるプラットフォームやデバイスで実行できる移植性とスケーラビリティのあるコードを書くことを目指す開発者
- GPUプログラミングの利点や課題、最適化について探求したいプログラマ
21 時間