コース一覧へ戻る
AI032 プロフェッショナル

大規模並列プロセッサのプログラミング:実践型アプローチ

このコースでは、CUDA C環境を用いたGPUコンピューティングと並列プログラミングの包括的な導入を提供します。GPUアーキテクチャ、データ並列性、スレッド管理、メモリ最適化、および高度なパフォーマンスに関する考察を扱い、MRI再構成や分子可視化などの実世界の事例を通じて解説します。

4.9
36.0h
569 受講者
12 レッスン
0 いいね
人工知能
学習を開始

コース概要

コンテンツ概要

このコースでは、CUDA C環境を用いたGPUコンピューティングおよび並列プログラミングの包括的な入門を提供します。GPUアーキテクチャ、データ並列性、スレッド管理、メモリ最適化、そして高度なパフォーマンスに関する考察について、MRI再構成や分子可視化といった実世界の事例を通じて解説します。

実践的で手を動かす形のガイドを通じて、高性能並列コンピューティングの技術をマスターしよう。

著者: David B. Kirk, Wen-mei W. Hwu

謝辞: Ian Buck, John Nickolls, NVIDIA DevTechチーム、Jensen Huang, David Luebke, Bill Bean, Simon Green, Mark Harris, Manju Hedge, Nadeem Mohammad, Brent Oster, Peter Shirley, Eric Young, Cyril Zeller.

学習目標

  1. マルチコアCPUとマニーコアGPUの設計哲学および性能の発展軌跡の違いを明確に識別する。
  2. 現代的なGPUアーキテクチャの主要な構成要素(ストリーミングマルチプロセッサ(SM)やメモリ構造など)を特定する。
  3. アムダールの法則を適用し、理論的なスピードアップを計算し、直列処理のボトルネックの影響を把握する。
  4. 固定機能パイプラインとプログラマブル統合プロセッサアレイのアーキテクチャ上の相違点を対比する。
  5. 「GPGPU」が中間段階として果たした役割と初期のシェーダー・プログラミングモデルの制限を説明する。
  6. 原子的操作、バリア同期、倍精度サポートなどのハードウェア機能が、スケーラブルな汎用コンピューティングへの移行を可能にした仕組みを分析する。
  7. 行列乗算アルゴリズムにおけるデータ並列性を識別し、活用する。
  8. デバイスメモリ管理(割り当て、ホストとデバイス間のデータ転送、解放)を実装する。
  9. 適切なスレッドインデックスおよびグリッド/ブロック構成を使用して、CUDAカーネルを構築し起動する。
  10. 多次元スレッド階層(グリッドとブロック)を設計し、複雑なデータ構造をGPUハードウェアにマッピングする。

レッスン

Lesson