お問い合わせを送信いただきありがとうございます!当社のスタッフがすぐにご連絡いたします。
予約を送信いただきありがとうございます!当社のスタッフがすぐにご連絡いたします。
コース概要
GPUコンピューティングとCUDAアーキテクチャ
- CPUとGPUのアーキテクチャ的相違点
- NVIDIA GPUにおけるストリーミングマルチプロセッサモデル
- CUDAプログラミングモデルの概要
- ヘテロジニアスコンピューティングとホスト・デバイス間の役割分担
CUDA開発環境のセットアップ
- CUDA Toolkit 13.xのインストール方法
- NVCCコンパイラおよびビルドフローの仕組み
- デバイス情報の照会による環境検証
- IDEとの連携および開発ツールの利用法
CUDAカーネルの作成と起動
- カーネル関数の構文および修飾子の使い方
- 起動設定や実行方法の決定手順
- ベクター加算をはじめとするデータ並列処理パターン
- CUDAエラーチェック用マクロの活用
CUDAスレッド階層構造と実行モデル
- グリッド・ブロック・スレッドの相互関係
- スレッドインデックスとグローバルIDの算出方法
- ワープ実行処理およびSIMTモデルの概要
- 占有率とリソース利用率の把握法
GPUメモリアーキテクチャと管理手法
- グローバルメモリ、共有メモリ、定数メモリ、レジスタといった各種メモリの特性
- デバイス側メモリの確保および解放手順
- ホスト・デバイス間でのデータ転送方法
- ブロック内処理連携用の共有メモリの活用例
ユニファイドメモリとデータ移動処理
- ユニファイドメモリモデルおよびマネージド割り当て方法
- ページの移行仕組みやオンデマンドページング機能
- cudaMemPrefetchAsyncを用いた非同期プリフェッチ処理
- アクセスパターンに応じたメモリヒント指定法
Nsight Systemsによるシステム全体のプロファイリング
- Nsight Systemsのタイムライン分析手法
- CPUとGPU間の同期ポイントの特定方法
- カーネル実行状況やメモリ転送情報の可視化手順
- システムレベルでのパフォーマンスデータ解釈法
Nsight Computeを用いたカーネルの最適化
- Nsight Computeによるインタラクティブなプロファイリング方法
- メモリアクセス性能や帯域幅利用状況の解析手法
- 計算処理効率およびワープステートに関する統計情報の取得法
- 最適化指針として提供されるアドバイスと判定基準
複数ストリームによる同時実行処理
- CUDAストリームおよびデフォルトストリームの仕組み
- 演算処理とデータ転送を同期しない運用法
- ストリーム間の同期やCUDAイベントを用いた制御手法
- 複数ストリーム活用によるパイプライン設計例
エラー処理とデバッグツールの活用
- CUDA APIにおけるエラーコードの種類と回復手段
- メモリアクセス不備検出用ツール「Compute-sanitizer」の使い方
- カーネルデバッグに使用するcuda-gdbの機能紹介
- アサーション処理や同期的なエラー検知手法
プロファイル主導型最適化フロー
- 反復的なプロファイリングの進め方
- ボトルネックを特定し優先度を判断する手順
- パフォーマンス後退を防ぐためのテスト手法
- 最適化内容を明確に記録・報告する方法
完全なGPU高速化アプリケーション作成プロジェクト
- 実運用レベルのGPU対応ソリューション設計手順
- 開発全過程における継続的なプロファイリングの適用法
- パフォーマンス評価および成果報告の進め方
- 実環境導入に際して考慮すべき要素の整理法
要求
- 変数型、ループ、条件分岐、関数、配列操作など基本的なC/C++プログラミングのスキル
- コマンドラインからプログラムをコンパイル・実行することに慣れていること
- GPUやCUDAに関する事前知識は必須ではありません
対象者
- C/C++アプリケーションをGPUで高速化したいソフトウェア開発者およびエンジニア
- CPUのみの環境からヘテロジニアスコンピューティングへ移行しようとする科学研究者やHPC専門家
- 実運用向けワークロードでのGPU加速導入を検討している技術責任者
8 時間