お問い合わせを送信いただきありがとうございます!当社のスタッフがすぐにご連絡いたします。
予約を送信いただきありがとうございます!当社のスタッフがすぐにご連絡いたします。
コース概要
GPUアクセレーテッドコンピューティングの概要
- 異種コンピューティングとCPU-GPUアーキテクチャ
- CUDAの実行モデルとメモリ空間
- nvccおよびCMakeを用いたCUDA C++のコンパイル
- GPU開発環境の確認
ThrustおよびCUBによる並列アルゴリズム
- GPU加速されたソート、リダクション、トランスフォーム
- GPU実行向けSTLアルゴリズムのリファクタリング
- Thrustデバイスベクターおよび実行ポリシー
- カスタムパイプラインのためのCUBデバイスの広域プリミティブ
GPUメモリアーキテクチャと管理
- グローバル、コンスタント、テクスチャメモリなどのメモリタイプ
- 明示的なデバイスメモリのアロケーションと転送
- データアクセスを簡素化するユニファイドメモリ
- メモリのコアレスリングおよびアクセスパターン最適化
CUDAストリームを用いた非同期実行
- CUDAストリームの作成と管理
- カーネル実行とデータ転送のオーバーラップ
- 依存関係管理のためのCUDAイベント
- ストリーム優先度と同時実行数のチューニング
カスタムCUDAカーネルの記述
- SIMTプログラミングモデルおよびワープの実行
- カーネル起動設定およびグリッド・ストライドループ
- スレッドインデックス付けおよび多次元グリッド
- エラーハンドリングおよびCUDAランタイムAPIのチェック
スレッド階層と実行モデル
- デバイスコードにおけるグリッド、ブロック、スレッド
- ワープレベルプリミティブおよびボールト演算
- ブロックレベルの同期とバリアー
- occupancy(occupancy)およびリソース活用率の分析
協調グループによる柔軟な並列化
- cooperative_groups APIおよびグループタイプ
- スレッドブロックタイルおよびtiled_partition
- グリッドレベルの協調的起動
- マルチグリッド同期パターン
共有メモリ最適化テクニック
- 共有メモリのバンクおよびバンク競合の回避
- 行列演算のためのタイリング戦略
- ユーザ管理キャッシュとしての共有メモリ
- 多次元ビューのためのcuda::shared_memory_mdspan
カーネル融合と高度な並列パターン
- 起動オーバーヘッド削減のための複数カーネルの融合
- スキャン、キー別リダクション、セグメント化アルゴリズム
- アトミック操作およびロックフリーデータ構造
- スループット向上のためのワープ集約型アトミクス
Nsight Systemsによるプロファイリングと最適化
- CPUおよびGPUアクティビティのタイムライン分析
- メモリ転送のボトルネック特定
- カーネルパフォーマンスおよびoccupancyのプロファイリング
- Nsight Computeを用いた反復的な最適化
CUDAデバイスコードにおけるモダンC++機能
- カーネル内でのラムダ式、constexpr、autoの活用
- C++17並列アルゴリズムおよび実行ポリシー
- デバイス上でのC++20コンセプトおよびレンジ
- nvccおよびCCCL 3.xにおけるC++23サポート
CUDA Graphsと高度な非同期処理
- CUDAグラフの定義および起動
- ストリーム実行からのグラフキャプチャ
- グラフ更新および条件付き実行ノード
- 反復的ワークロードにおける起動レイテンシーの削減
既存アプリケーションへの統合パターン
- C++インターフェース背後でのGPUコードのラッピング
- マルチGPUおよびNUMAシステムの管理
- CMakeおよびCUDAとのビルドシステム統合
- cuda-gdbを用いたデバイスコードのデバッグ
まとめとベストプラクティス
- Thrust、CUB、カスタムカーネルの選択基準
- GPUアーキテクチャ間でのパフォーマンスポータビリティ
- CUDAリソースにおけるRAIIを活用したコード構成
- 次のステップおよびCUDA上級学習パス
要求
- ラムダ式、テンプレート、STLを含む基礎的なC++の知識
- 標準アルゴリズム、コンテナ、イテレータへの親しみ
- ループ、条件分岐、関数に習熟していること
- CUDAやGPUプログラミングの事前経験は不要です
対象者
- GPUを用いて計算集約型アプリケーションを加速したいC++開発者
- CPU専用の環境から異種並列プログラミングへの移行を検討するソフトウェアエンジニア
- 大量のデータを扱うパフォーマンスエンジニアおよびクオンツデベロッパー
8 時間
お客様の声 (3)
詳細な説明と、微妙な方法でポイントを再確認することで、知識がしっかりと定着しました。Rodは私たちが提起した難しい質問の確認に非常に協力的で、答えが100%正確であることを確認してくれました。また、異なるコーディングスタイルの利点と欠点について議論することへの関心があり、C++を目的通りに使用するだけでなく、その理由も学ぶことができました。
Nick Dillon - cellxica Ltd
コース - Using C++ in Embedded Systems - Applying C++11/C++14
機械翻訳
Experience sharing, it's teacher's know-how and valuable.
Carey Fan - Logitech
コース - C/C++ Secure Coding
オンライン化されたことで、多くの時間を節約できました。非常に感謝しています。また、講師がC#とC++の両方を知っていたことは大きな助けとなりました。既に持っている知識を通じてすべてを説明してくれたからです。
Gabor - Rheinmetall Electronics Hungary Kft
コース - Advanced C++
機械翻訳