コース一覧へ戻る
AI021 Professional

CUDAプログラミングガイド

開発者がNVIDIA GPU上で実行される高性能なコードを書くためのCUDAプログラミングモデルを学ぶための公式で包括的なリソース。このガイドでは、プラットフォームアーキテクチャ、プログラミングインターフェース、高度なハードウェア機能、および技術仕様についてカバーしています。

5.0
30.0h
1762 受講者
1 いいね
人工知能
学習を開始

コース概要

📚 コンテンツ概要

開発者向けの公式で包括的なリソース。NVIDIA GPU上で実行される高性能コードを書くためのCUDAプログラミングモデルについて学ぶことができます。このガイドでは、プラットフォームアーキテクチャ、プログラミングインターフェース、高度なハードウェア機能、技術仕様についてカバーしています。

業界標準のガイドにより、並列計算の芸術を習得しましょう。NVIDIA CUDA

著者: NVIDIA Corporation

謝辞: Copyright © 2007-2024 NVIDIA Corporation および関連会社。すべての権利を保有。

🎯 学習目標

  1. 異種システムにおけるホスト(CPU)とデバイス(GPU)の役割を定義する。
  2. SIMTプログラミングモデルとスレッド、ブロック、グリッドの階層的構造を説明する。
  3. PTX(Parallel Thread Execution)とバイナリコード(cubins)の違いを区別し、ジャストインタイム(JIT)コンパイルが互換性を促進する仕組みを説明する。
  4. CUDAカーネルの開発とコンパイル:__global__関数の記述、三重矢印表記による実行設定、NVCCコンパイルワークフローの管理。
  5. メモリとデータ移動の最適化:ユニファイドメモリ、明示的メモリ、マップドメモリのモデルの違いを理解し、効率的な転送のためにページロックされたホストメモリを実装する。
  6. 並列実行の管理:CUDAストリーム、イベント、コオペラティブグループを使用して非同期タスクを管理し、CPU-GPU間の同期を行う。
  7. 複雑なポインタ演算を行い、アーキテクチャ上のボトルネック(ヴァン・ノイマン型対ハーバード型)を特定する。
  8. 高度なCUDA実行パターンを実装する。プログラムによる依存カーネル起動や異種バッチメモリ転送を含む。
  9. スレッドスコープ、非同期プロキシ、パイプラインといったハードウェア固有の機能を活用し、並行性を最大化する。
  10. プリフェッチ、使用ヒント、ページサイズ管理を用いてユニファイドメモリのパフォーマンスを設定・チューニングする。

レッスン