0Pricing
CUDA Academy icon

CUDA Academy

CPPEnterpriseDesktopAi

CUDA C++ で GPU をプログラミングします。スレッド、メモリ階層からカーネル、最適化、実践的な並列コンピューティングまで。

🤖 AI 搭載📚 30 コース👥 100,000+ ユーザー⭐ 4.9 評価
コース概要

CUDA: GPU Programming with C++

CUDA C++ で GPU をプログラミングします。スレッド、メモリ階層からカーネル、最適化、実践的な並列コンピューティングまで。このトラックは、完全な初心者レベル (A1) から上級レベル (B2) まで、段階的な30のミニコースで構成されています。短く焦点を絞ったレッスンと、各概念を定着させるクイズが用意されています。

学習内容

基礎から始めて、中級から上級のトピックまで段階的に進み、各コースが前のコースの上に構築されていきます。すべてのレッスンは実践的でコンパクトであり、24/7 の AI チューターがサポートに利用可能です。

仕組み

各コースは 4 つの焦点を絞ったコンパクトなレッスンに分かれています。毎日数レッスンを完了すれば、数か月ではなく数週間でトラック全体をマスターできます。

学習を始める →

学び方

🎯
インタラクティブレッスン
リアルタイムフィードバック付きの実践的なコード演習
🤖
AIチューター
わからないときは、AIが即座にサポート
💻
組み込みエディタ
ブラウザで直接コードを書いて実行
🏆
認定資格
コース完了時に認定資格を取得
カリキュラム

30コース

CUDA Academyラーニングパスのすべてのコース

01

GPUが並列処理を圧倒する理由

A14レッスン

GPUとは何か、並列処理では少数の高速なCPUコアより数千の小さなコアが優れる理由を説明します

02

CUDAツールチェーンをセットアップする

A14レッスンPRO

CUDA Toolkitをインストールし、ドライバーを確認して、nvccで最初のプログラムをコンパイルします

03

HostとDevice:2つの世界

A14レッスンPRO

CPUのhostコードとGPUのdeviceコードを区別し、それぞれが触れられるメモリを理解します

04

最初のKernelを書く

A14レッスンPRO

GPU kernelを定義・起動し、device内部から出力するプログラムを実行します

05

Thread、Block、Grid

A14レッスンPRO

問題をCUDAのThread、Block、Gridの階層に対応付けます

06

グローバルThreadインデックス

A24レッスンPRO

一意なグローバルインデックスを計算し、各Threadがちょうど1つのデータ要素を処理するようにします

07

Deviceメモリを管理する

A24レッスンPRO

GPUメモリを確保・解放し、device heapの仕組みを理解します

08

cudaMemcpyでデータを移動する

A24レッスンPRO

HostとDeviceの間で配列を双方向に確実に転送します

09

ベクトル加算を最初から最後まで構築する

A24レッスンPRO

メモリ確保から検証まで、GPU上で完全なC = A + Bプログラムを書きます

10

CUDAエラーを正しく捕捉する

A24レッスンPRO

API呼び出しやKernel起動で発生したCUDAの失敗を検知し、報告します

11

CUDAメモリ階層を把握する

B14レッスンPRO

Global、Shared、Constant、Local、Registerの中から適切なメモリ空間を選びます

12

Globalメモリアクセスをコアレッシングする

B14レッスンPRO

Warpが1回のトランザクションで連続したメモリを読めるようアクセスパターンを配置します

13

オンチップSharedメモリを極める

B14レッスンPRO

__shared__メモリと__syncthreadsでBlock内のデータを共有します

14

Sharedメモリでアルゴリズムをタイル化する

B14レッスンPRO

Load-Sync-Computeのタイル化パターンを適用し、データを再利用してGlobalメモリへのアクセスを減らします

15

タイル化行列乗算

B14レッスンPRO

Sharedメモリを使ったタイル化GEMMを構築し、単純な実装を大幅に上回る性能を実現します

16

正しい並列Reduction

B14レッスンPRO

木構造のReductionを使って、GPU上で配列を効率的に合計します

17

安全な並行性のためのAtomic操作

B14レッスンPRO

Atomic操作で競合状態なしに共有結果を更新します

18

CUDA Streamで処理を重ね合わせる

B14レッスンPRO

デフォルト以外のStreamを使い、Kernel実行と転送を同時に進めます

19

非同期転送とPinnedメモリ

B14レッスンPRO

PinnedなHostメモリとStream内の非同期コピーで転送を高速化します

20

Unified Memoryで簡単にする

B14レッスンPRO

HostとDeviceで共有する1つのポインターにcudaMallocManagedを使います

21

Occupancyと起動設定を調整する

B24レッスンPRO

Blockサイズを選び、リソースを制限してSMのOccupancyを最大化します

22

NsightでKernelをプロファイリングする

B24レッスンPRO

Nsight SystemsとNsight Computeのメトリクスでボトルネックを見つけます

23

WarpレベルのプリミティブとShuffle

B24レッスンPRO

Sharedメモリを使わず、ShuffleとVoteのIntrinsicでWarp内のデータを交換します

24

高度なKernel最適化

B24レッスンPRO

ILP、ループアンローリング、ベクトル化ロードを適用して、最大性能を引き出します

25

複数GPUにスケールする

B24レッスンPRO

複数のGPUに処理を分散し、P2PでGPU間にデータを直接転送します

26

cuBLASとThrustで高速化する

B24レッスンPRO

GEMM、ソート、並列アルゴリズム向けにNVIDIAの最適化済みライブラリを呼び出します

27

Dynamic ParallelismとCUDA Graph

B24レッスンPRO

DeviceからKernelを起動し、処理を再利用可能なCUDA Graphとして記録します

28

Tensor Coreをプログラミングする

B24レッスンPRO

WMMA API経由で混合精度のTensor Coreを使い、高速な行列演算を行います

29

cuda-gdbとSanitizerでデバッグする

B24レッスンPRO

CUDAのデバッグツールでクラッシュ、競合状態、メモリエラーを突き止めます

30

総仕上げ:GPU画像パイプライン

B24レッスンPRO

Kernel、Stream、プロファイリングを組み合わせ、実用的なGPU高速化画像処理を構築します

よくある質問

よくある質問

CUDA Academyコースは無料ですか?

はい。CUDA Academyコースは無料で始められ、インタラクティブレッスンをすべて無料で完了できます。オプションのPRO登録で、高度なAIツールと共有可能な認定資格がアンロックされます。

CPPを学ぶのに事前経験は必要ですか?

いいえ。コースは基礎から始まり、より高度なトピックへと進むので、CPPの事前経験がなくても始められます。

CoddyKitでCPPをどのように学びますか?

実践しながら学びます。短いインタラクティブレッスンは、わかりやすい説明と、リアルタイムで実行される実践的なコード演習が組み合わさっており、24時間対応のAIチューターがわからないときにいつでもサポートします。

CUDA Academyを完了すると認定資格がもらえますか?

はい。PRO学習者は試験を受けて、CUDA Academyコースの完了を証明する共有可能な認定資格を取得できます(認証コード付き)。

スマートフォンでCPPを学べますか?

はい。CoddyKitはウェブとネイティブiOS・Androidアプリで利用でき、どのデバイスでもCPPを学習でき、進捗がすべてのデバイスで同期されます。

CUDA Academyを今すぐ始める

AI搭載レッスンでプログラミングをマスターする数千人の学習者に参加しましょう。

無料で始める →すべてのコースを見る