お問い合わせを送信いただきありがとうございます!当社のスタッフがすぐにご連絡いたします。
予約を送信いただきありがとうございます!当社のスタッフがすぐにご連絡いたします。
コース概要
イントロダクション
- 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 時間