お問い合わせ

コース概要

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 時間

参加者の人数


参加者1人あたりの価格

今後のコース

関連カテゴリー