お問い合わせ

コース概要

GPU高速化コンピューティング入門

  • ヘテロジニアス・コンピューティングおよびCPU-GPU構造の概要
  • CUDA処理体系と各種メモリ空間の特徴
  • nvccおよびCMakeを用いたCUDA C++のコンパイル手法
  • GPU開発環境の検証手順

ThrustおよびCUBによる並列アルゴリズム実装

  • GPU上で動作するソート・縮約・変換処理の仕組み
  • STLベースの既存アルゴリズムからGPU対応版への移行手法
  • Thrustにおけるデバイスベクターと実行方針の指定方法
  • CUBが提供する大規模データ処理向け基本機能の活用法

GPUメモリ構造と管理技術

  • グローバル・定数・テクスチャメモリの特性比較
  • 明示的なデバイスメモリ確保およびデータ転送方法
  • ユニファイドメモリによるシームレスなアクセス手法
  • メモリアクセスの最適化とデータ利用パターンの工夫

CUDAストリームを活用した非同期処理の実現

  • CUDAストリームの作成・管理手順
  • データ転送とカーネル実行の同時進行技術
  • 依存関係を制御するためのイベント機能の活用
  • 優先度設定や並列処理パラメータの最適化方法

独自CUDAカーネルの作成法

  • SIMTモデルに基づくワープレベルの実行仕組み
  • カーネル起動条件の設定およびグリッド構造の定義方法
  • スレッドインデックス処理と多次元グリッドの管理手法
  • エラー検出やCUDA実行APIによる整合性確認手順

スレッド階層構造と実行モデル理解

  • デバイスコード内のグリッド・ブロック・スレッド関係性
  • ワープ単位での処理制御および集計機能の活用法
  • ブロック間同期を行うための同期化要素とバリア構造
  • GPUリソース利用率を測る計算負荷分析手法

柔軟な並列処理を可能にする協調グループ技法

  • cooperative_groups APIと各種グループ種類の概要
  • スレッドブロック単位でのデータ配置テクニック
  • グリッド全体で連携して実行する処理仕組み
  • 複数グリッド間の同期化パターンの設計方法

共有メモリ活用による高速化技法

  • バンク競合問題と回避技術の基礎知識
  • 行列演算向けデータ分割戦略の立案方法
  • 共有メモリをキャッシュとして活用する設計手法
  • cuda::shared_memory_mdspanによる多次元アクセス実現法

カーネル融合および先進的並列パターン応用

  • 複数カーネルの統合化による起動オーバーヘッド削減方法
  • スキャン処理・キー付き集約演算・領域分離型アルゴリズムの活用技術
  • 原子操作とロックフリーなデータ構造実装法
  • ワープレベルでの集合的原子操作を用いたスループット向上策

Nsight Systemsによる最適化プロセスの管理

  • CPUおよびGPU処理状況を可視化するタイムライン解析法
  • メモリ転送におけるボトルネックの特定方法
  • カーネル性能評価や利用可能な計算リソース調査技法
  • Nsight Computeを用いた段階的最適化手法

CUDAデバイスコードへの現代C++技術導入

  • カーネル内でのラムダ式・定数式評価機能・auto型指定の実践応用
  • C++17で追加された並列処理仕様と対応アルゴリズム活用事例
  • C++20がもたらす概念および範囲演算子機能のデバイス上適用可能性
  • nvccおよびCCCL 3.xにおけるC++23サポート体制の概要

CUDAグラフと高度な非同期処理技術

  • CUDAグラフ定義手法および起動方法
  • ストリーム実行プロセスからの自動グラフ記録手法
  • グラフ構造の更新や条件付き実行ノード制御技術
  • 繰り返し処理における起動遅延削減のための応用事例

既存アプリケーションへのGPU統合手法

  • C++インターフェースを用いたGPU機能カプセル化手順
  • マルチGPUおよびNUMAシステムの適切管理技術
  • CMakeやCUDAツール群を取り入れたビルド環境設定法
  • cuda-gdbによるデバイスコード実行診断技法

総括および開発ベストプラクティス紹介

  • Thrust/CUBとカスタムカーネルの使い分け判断基準
  • 多種のGPUアーキテクチャ間における性能維持性確保手法
  • リソース管理およびコード体系化に役立つRAII原則活用事例
  • 今後の学習方向性と先進的なCUDA技術習得ルート紹介

要求

  • ラムダ式やテンプレート、STLの基礎などC++に関する基本的な知識
  • 標準アルゴリズム・コンテナ・イテレータに精通していること
  • ループ処理や条件分岐、関数記述が可能であること
  • CUDAまたはGPUプログラミングの事前知識は不要です。

対象者

  • 計算負荷の高いアプリケーションをGPUで高速化したいC++開発者
  • 従来のCPU専用システムから並列プログラミング環境へ移行するソフトウェアエンジニア
  • 大規模データセットを扱うパフォーマンスエンジニアや定量解析開発者
 8 時間

参加者の人数


参加者1人あたりの価格

お客様の声 (3)

今後のコース

関連カテゴリー