コース概要

導入

  • GPUプログラミングとは何か?
  • PythonでCUDAを使用する理由は?
  • 主要概念:スレッド、ブロック、グリッド

CUDAの特徴とアーキテクチャの概要

  • GPUとCPUのアーキテクチャの違い
  • SIMT(Single Instruction, Multiple Threads)の理解
  • CUDAプログラミングモデル

開発環境のセットアップ

  • CUDA Toolkitとドライバのインストール
  • PythonとNumbaのインストール
  • 環境の設定と確認

並列プログラミングの基礎

  • 並列実行の概要
  • スレッドとスレッド階層の理解
  • ワープと同期の扱い方

Numbaコンパイラの使用

  • Numbaの概要
  • Numbaを使用したCUDAカーネルの記述
  • @cuda.jitデコレータの理解

カスタムCUDAカーネルの作成

  • 基本的なカーネルの記述と起動
  • 要素ごとの操作にスレッドを使用する
  • グリッドとブロックの次元を管理する

メモリ管理

  • GPUメモリの種類(グローバル、共有、局所、定数)
  • ホストとデバイス間のメモリ転送
  • メモリ使用量の最適化とボトルネックの回避

GPU加速の高度なトピック

  • 共有メモリと同期
  • 非同期実行のためにストリームを使用する
  • マルチGPUプログラミングの基本

CPUベースのアプリケーションをGPUに変換

  • CPUコードのプロファイリング
  • 並列化可能なセクションの識別
  • ロジックをCUDAカーネルに移植する

トラブルシューティング

  • CUDAアプリケーションのデバッグ
  • 一般的なエラーとその解決方法
  • テストと検証のツールとテクニック

まとめと次なるステップ

  • 主要概念の復習
  • GPUプログラミングのベストプラクティス
  • 継続的な学習リソース

要求

  • Pythonプログラミング経験
  • NumPy(ndarrays, ufuncsなど)の経験

対象者

  • 開発者
 14 時間

参加者の人数


参加者1人あたりの価格

お客様の声 (1)

今後のコース

関連カテゴリー