コース概要

はじめに

  • CUDAとは?
  • CUDA vs OpenCL vs SYCL
  • CUDAの機能とアーキテクチャの概要
  • 開発環境のセットアップ

はじめに

  • 4]コードを使用した新しいCUDAプロジェクトの作成
  • プロジェクト構造とファイルの探索
  • プログラムのコンパイルと実行
  • printfとfprintfを使用した出力の表示

CUDA API

  • ホストプログラムにおけるCUDA APIの役割を理解する
  • CUDA APIを使用してデバイス情報と機能を照会する
  • CUDA APIを使用したデバイスメモリの割り当てと割り当て解除
  • CUDA APIを使用してホストとデバイス間でデータをコピーする
  • CUDA APIを使用してカーネルを起動し、スレッドを同期する
  • CUDA APIを使用してエラーと例外を処理する

CUDA C/[0]

  • デバイスプログラムにおけるCUDA C/C++の役割を理解する
  • CUDA C/C++を使用して、GPU上で実行し、データを操作するカーネルを記述する
  • CUDA C/C++のデータ型、修飾子、演算子、式を使用する
  • 数学、アトミック、ワープなどのCUDA C/C++組み込み関数の使用
  • threadIdx, blockIdx, blockDimなどのCUDA C/C++組み込み変数の使用。
  • cuBLAS, cuFFT, cuRANDなどのCUDA C/C++ライブラリの使用。

CUDAメモリモデル

  • ホストとデバイスのメモリモデルの違いを理解する
  • グローバル、共有、定数、ローカルなどのCUDAメモリ空間の使用
  • ポインタ、配列、テクスチャ、サーフェスなどのCUDAメモリオブジェクトの使用
  • リードオンリー、ライトオンリー、リードライトなどのCUDAメモリアクセスモードの使用
  • CUDAメモリ一貫性モデルと同期メカニズムの使用

CUDA実行モデル

  • ホスト実行モデルとデバイス実行モデルの違いを理解する
  • CUDAスレッド、ブロック、グリッドを使用して並列性を定義する
  • threadIdx、blockIdx、blockDimなどのCUDAスレッド関数の使用
  • syncthreads、__threadfence_blockなどのCUDAブロック関数の使用。
  • gridDim、gridSync、協調グループなどのCUDAグリッド関数の使用。

デバッグ

  • CUDAプログラムの一般的なエラーやバグを理解する
  • 4]コードデバッガを使用して、変数、ブレークポイント、コールスタックなどを検査する。
  • 2]でCUDA-GDBを使用してCUDAプログラムをデバッグする。
  • CUDA-MEMCHECKを使用して、メモリエラーとリークを検出する。
  • NVIDIA Nsightを使用して、Windows上でCUDAプログラムをデバッグおよび解析する。

最適化

  • CUDAプログラムのパフォーマンスに影響する要因を理解する
  • CUDA合体技術を使用してメモリスループットを向上させる
  • CUDAキャッシングおよびプリフェッチテクニックを使用してメモリレイテンシを削減する
  • CUDA共有メモリとローカルメモリのテクニックを使用して、メモリアクセスと帯域幅を最適化する
  • CUDAプロファイリングとプロファイリングツールを使用して、実行時間とリソース使用率を測定し、改善する。

まとめと次のステップ

要求

  • C/C++言語と並列プログラミングの概念の理解
  • コンピュータアーキテクチャとメモリ階層に関する基礎知識
  • コマンドラインツールとコードエディタの使用経験

対象者

  • CUDAを使用してNVIDIA GPUをプログラミングし、その並列性を利用する方法を学びたい開発者
  • 異なるCUDAデバイス上で実行可能な、高性能でスケーラブルなコードを書きたい開発者
  • 1]プログラミングの低レベルの側面を探求し、コードのパフォーマンスを最適化したいプログラマー
 28 時間

参加者の人数



Price per participant

お客様の声 (1)

関連コース

GPU Programming with OpenCL

28 時間

GPU Programming - OpenCL vs CUDA vs ROCm

28 時間

AMD GPU Programming

28 時間

ROCm for Windows

21 時間

Introduction to GPU Programming

21 時間

GPU Programming with OpenACC

28 時間

関連カテゴリー