お問い合わせを送信いただきありがとうございます!当社のスタッフがすぐにご連絡いたします。
予約を送信いただきありがとうございます!当社のスタッフがすぐにご連絡いたします。
コース概要
はじめに
- GPUプログラミングとは?
- なぜGPUプログラミングを利用するのか?
- GPUプログラミングにおける課題やトレードオフとは?
- GPUプログラミング用の主要フレームワーク・ツールは何か?
- アプリケーションに最適なフレームワーク・ツールの選定方法
OpenCL
- OpenCLとは?
- OpenCLの利点と短所は?
- OpenCL開発環境のセットアップ手順
- 複数のフレームワーク・ツールを用いてベクトル加算処理を行う基本的なOpenCLプログラムを作成する方法
- OpenCL APIを用いてデバイス情報の照会やメモリの確保・解放、ホストとデバイス間でのデータ転送、カーネルの実行、スレッド同期処理などを行う方法
- OpenCL C言語を使用してデバイス上で実行されるカーネル内でデータ操作を行う方法
- 組み込み関数や変数、ライブラリを活用して一般的なタスクの処理を行う手法
- グローバル、ローカル、定数、プライベートといったメモリ空間を使いデータ転送とアクセスの最適化を行う方法
- ワークアイテムやワークグループ、NDレンジを用いて並列処理の制御を行う仕組み
- CodeXLなどのツールを活用してOpenCLプログラムのデバッグとテストを行う方法
- データ結合化、キャッシュ活用、プリフェッチング、プロファイリングといった手法を用いて最適化を行う方法
CUDA
- CUDAとは?
- CUDAの利点と短所は?
- CUDA開発環境のセットアップ手順
- 複数のフレームワーク・ツールを用いてベクトル加算処理を行う基本的なCUDAプログラムを作成する方法
- CUDA APIを用いてデバイス情報の照会やメモリの確保・解放、ホストとデバイス間でのデータ転送、カーネルの実行、スレッド同期処理などを行う方法
- CUDA C/C++言語を使用してデバイス上で実行されるカーネル内でデータ操作を行う方法
- 組み込み関数や変数、ライブラリを活用して一般的なタスクの処理を行う手法
- グローバル、共有、定数、ローカルといったメモリ空間を使いデータ転送とアクセスの最適化を行う方法
- スレッド、ブロック、グリッドを用いて並列処理の制御を行う仕組み
- CUDA-GDB、CUDA-MEMCHECK、NVIDIA Nsightなどのツールを活用してCUDAプログラムのデバッグとテストを行う方法
- データ結合化、キャッシュ活用、プリフェッチング、プロファイリングといった手法を用いて最適化を行う方法
ROCm
- ROCmとは?
- ROCmの利点と短所は?
- ROCm開発環境のセットアップ手順
- 複数のフレームワーク・ツールを用いてベクトル加算処理を行う基本的なROCmプログラムを作成する方法
- ROCm APIを用いてデバイス情報の照会やメモリの確保・解放、ホストとデバイス間でのデータ転送、カーネルの実行、スレッド同期処理などを行う方法
- ROCm C/C++言語を使用してデバイス上で実行されるカーネル内でデータ操作を行う方法
- 組み込み関数や変数、ライブラリを活用して一般的なタスクの処理を行う手法
- グローバル、ローカル、定数、プライベートといったメモリ空間を使いデータ転送とアクセスの最適化を行う方法
- スレッド、ブロック、グリッドを用いて並列処理の制御を行う仕組み
- ROCm DebuggerやROCm Profilerなどのツールを活用してROCmプログラムのデバッグとテストを行う方法
- データ結合化、キャッシュ活用、プリフェッチング、プロファイリングといった手法を用いて最適化を行う方法
HIP
- HIPとは?
- HIPの利点と短所は?
- HIP開発環境のセットアップ手順
- 複数のフレームワーク・ツールを用いてベクトル加算処理を行う基本的なHIPプログラムを作成する方法
- HIP言語を使用してデバイス上で実行されるカーネル内でデータ操作を行う方法
- 組み込み関数や変数、ライブラリを活用して一般的なタスクの処理を行う手法
- グローバル、共有、定数、ローカルといったメモリ空間を使いデータ転送とアクセスの最適化を行う方法
- スレッド、ブロック、グリッドを用いて並列処理の制御を行う仕組み
- ROCm DebuggerやROCm Profilerなどのツールを活用してHIPプログラムのデバッグとテストを行う方法
- データ結合化、キャッシュ活用、プリフェッチング、プロファイリングといった手法を用いて最適化を行う方法
比較
- OpenCL、CUDA、ROCm、HIPそれぞれの機能・性能・互換性を比較する
- ベンチマークや指標を用いてGPUプログラムの評価を行う
- GPUプログラミングにおけるベストプラクティスや有用なコツを学ぶ
- 現在および今後のGPUプログラミング分野の動向と課題について考察する
まとめと次のステップ
要求
- C/C++言語および並列プログラミングに関する基本的な知識があること
- コンピュータアーキテクチャやメモリ階層の基礎的理解があること
- コマンドラインツールやコードエディタの使用経験があること
受講対象者
- GPUプログラミングの基礎と主要フレームワーク・ツールを学びたい開発者
- さまざまなプラットフォームやデバイスで動作可能な移植性・拡張性に優れたコードを書きたい開発者
- GPUプログラミングの利点と課題、および最適化手法について深く学びたいプログラマー
21 時間