コース概要

はじめに

  • 1]プログラミングとは?
  • なぜGPUプログラミングなのか?
  • 1]プログラミングの課題とトレードオフとは?
  • 1]プログラミングのためのフレームワークとツールとは?
  • アプリケーションに適したフレームワークとツールの選択

OpenCL

  • 2]とは?
  • 2]のメリットとデメリットは?
  • 2]の開発環境を整える
  • ベクトル加算を行う基本的なOpenCLプログラムの作成
  • 2]のAPIを使用して、デバイス情報の問い合わせ、デバイス・メモリの割り当てと割り当て解除、ホストとデバイス間のデータ・コピー、カーネルの起動、スレッドの同期を行う
  • 2] C言語を使用して、デバイス上で実行し、データを操作するカーネルを記述する
  • 2] 組み込み関数、変数、ライブラリを使用して、一般的なタスクや操作を実行する。
  • グローバル、ローカル、定数、プライベートなどの OpenCL メモリ空間を使用して、データ転送とメモリ・アクセスを最適化する。
  • 2]実行モデルを使用して、並列性を定義するワークアイテム、ワークグループ、ND-rangeを制御する。
  • CodeXLなどのツールを使用したOpenCLプログラムのデバッグとテスト
  • 合体、キャッシュ、プリフェッチ、プロファイリングなどのテクニックを使用したOpenCLプログラムの最適化

CUDA

  • CUDAとは?
  • CUDAの利点と欠点は?
  • CUDAの開発環境のセットアップ
  • ベクトル加算を実行する基本的なCUDAプログラムの作成
  • CUDA APIを使用して、デバイス情報の照会、デバイスメモリの割り当てと割り当て解除、ホストとデバイス間のデータコピー、カーネルの起動、スレッドの同期を行う
  • CUDA C/C++言語を使用して、デバイス上で実行し、データを操作するカーネルを記述する。
  • CUDA組み込み関数、変数、ライブラリを使用して、一般的なタスクや操作を実行する。
  • グローバル、共有、定数、ローカルなどのCUDAメモリ空間を使用して、データ転送とメモリアクセスを最適化する。
  • CUDA実行モデルを使用して、並列性を定義するスレッド、ブロック、グリッドを制御する。
  • CUDA-GDB、CUDA-MEMCHECK、NVIDIA Nsightなどのツールを使用したCUDAプログラムのデバッグとテスト
  • 合体、キャッシュ、プリフェッチ、プロファイリングなどのテクニックを使用したCUDAプログラムの最適化

ROCm

  • ROCmとは何ですか?
  • ROCm の利点と欠点は?
  • ROCmの開発環境のセットアップ
  • ベクトル加算を実行する基本的な ROCm プログラムの作成
  • ROCm API を使用したデバイス情報の取得、デバイス・メモリの割り当てと解放、ホストとデバイス間のデータ・コピー、カーネルの起動、スレッドの同期
  • ROCm C/C++言語を使用して、デバイス上で実行し、データを操作するカーネルを記述
  • ROCm 組み込み関数、変数、ライブラリを使用し て、一般的なタスクや操作を実行
  • グローバル、ローカル、定数、プライベートなどの ROCm メモリ空間を使用し、データ転送とメモリ・アクセスを最適化
  • ROCm 実行モデルを使用して、並列処理を定義するスレッド、ブロック、グリッドを制御
  • ROCm Debugger や ROCm Profiler などのツールを使用した ROCm プログラムのデバッグとテスト
  • 合体、キャッシュ、プリフェッチ、プロファイリングなどの技法を使用した ROCm プログラムの最適化

HIP

  • HIPとは?
  • HIPの利点と欠点は?
  • HIPの開発環境のセットアップ
  • ベクトル加算を行う基本的なHIPプログラムの作成
  • HIP言語を使って、デバイス上で実行しデータを操作するカーネルを書く
  • HIP組み込み関数、変数、ライブラリを使用して一般的なタスクや操作を実行する
  • グローバル、共有、定数、ローカルなどのHIPメモリ空間を使用して、データ転送とメモリ・アクセスを最適化する
  • HIP実行モデルを使用して、並列性を定義するスレッド、ブロック、グリッドを制御する
  • ROCm Debugger や ROCm Profiler などのツールを使用した HIP プログラムのデバッグとテスト
  • 合体、キャッシュ、プリフェッチ、プロファイリングなどのテクニックを使用したHIPプログラムの最適化

比較

  • 2]、CUDA、ROCm、HIPの機能、性能、互換性の比較
  • ベンチマークとメトリクスを使用したGPUプログラムの評価
  • 1]プログラミングのベストプラクティスとヒントを学ぶ
  • 1]プログラミングの現在と将来のトレンドと課題を探る

まとめと次のステップ

要求

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

対象者

  • 1]プログラミングの基礎と、GPUアプリケーションを開発するための主なフレームワークやツールを学びたい開発者
  • さまざまなプラットフォームやデバイスで動作する、ポータブルでスケーラブルなコードを書きたい開発者
  • 1]プログラミングと最適化の利点と課題を探求したいプログラマー
 21 時間

参加者の人数



Price per participant

お客様の声 (1)

関連コース

GPU Programming with OpenCL

28 時間

GPU Programming with CUDA

28 時間

GPU Programming - OpenCL vs CUDA vs ROCm

28 時間

AMD GPU Programming

28 時間

ROCm for Windows

21 時間

GPU Programming with OpenACC

28 時間

関連カテゴリー