コース一覧へ戻る
AI021
プロフェッショナル
CUDAプログラミングガイド
開発者がNVIDIA GPU上で実行される高性能なコードを書くためのCUDAプログラミングモデルを学ぶための公式で包括的なリソース。このガイドでは、プラットフォームアーキテクチャ、プログラミングインターフェース、高度なハードウェア機能、および技術仕様についてカバーしています。
5.0
30.0h
1762 受講者
5 レッスン
1 いいね
人工知能
コース概要
コンテンツ概要
開発者向けの公式で包括的なリソース。NVIDIA GPU上で実行される高性能コードを書くためのCUDAプログラミングモデルについて学ぶことができます。このガイドでは、プラットフォームアーキテクチャ、プログラミングインターフェース、高度なハードウェア機能、技術仕様についてカバーしています。
業界標準のガイドにより、並列計算の芸術を習得しましょう。NVIDIA CUDA
著者: NVIDIA Corporation
謝辞: Copyright © 2007-2024 NVIDIA Corporation および関連会社。すべての権利を保有。
学習目標
- 異種システムにおけるホスト(CPU)とデバイス(GPU)の役割を定義する。
- SIMTプログラミングモデルとスレッド、ブロック、グリッドの階層的構造を説明する。
- PTX(Parallel Thread Execution)とバイナリコード(cubins)の違いを区別し、ジャストインタイム(JIT)コンパイルが互換性を促進する仕組みを説明する。
- CUDAカーネルの開発とコンパイル:__global__関数の記述、三重矢印表記による実行設定、NVCCコンパイルワークフローの管理。
- メモリとデータ移動の最適化:ユニファイドメモリ、明示的メモリ、マップドメモリのモデルの違いを理解し、効率的な転送のためにページロックされたホストメモリを実装する。
- 並列実行の管理:CUDAストリーム、イベント、コオペラティブグループを使用して非同期タスクを管理し、CPU-GPU間の同期を行う。
- 複雑なポインタ演算を行い、アーキテクチャ上のボトルネック(ヴァン・ノイマン型対ハーバード型)を特定する。
- 高度なCUDA実行パターンを実装する。プログラムによる依存カーネル起動や異種バッチメモリ転送を含む。
- スレッドスコープ、非同期プロキシ、パイプラインといったハードウェア固有の機能を活用し、並行性を最大化する。
- プリフェッチ、使用ヒント、ページサイズ管理を用いてユニファイドメモリのパフォーマンスを設定・チューニングする。