コース概要

はじめに

  • 0]とは何か?
  • OpenCLとCUDAとSYCLの比較
  • 0]の機能とアーキテクチャの概要
  • 開発環境のセットアップ

はじめに

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

OpenCL API

  • ホスト・プログラムにおける OpenCL API の役割を理解する
  • 0]APIを使用してデバイス情報と機能を問い合わせる
  • 0] API を使用してコンテキスト、コマンド・キュー、バッファ、カーネル、イ ベントを作成する
  • 0]APIを使用して、読み取り、書き込み、コピー、マップ、アンマップ、実行、待機などのコマンドをエンキューする。
  • 0] APIを使用してエラーや例外を処理する

OpenCL C

  • デバイスプログラムにおけるOpenCLCの役割を理解する
  • 0] C を使用してデバイス上で実行し、データを操作するカーネルを記述する
  • 0] C のデータ型、修飾子、演算子、式を使用する
  • 数学、幾何学、リレーショナルなどの OpenCL C 組み込み関数の使用
  • アトミック、イメージ、cl_khr_fp16 などの C 拡張およびライブラリの使用。

OpenCL メモリモデル

  • ホストとデバイスのメモリモデルの違いを理解する
  • グローバル、ローカル、定数、プライベートなどのOpenCLメモリ空間の使用
  • バッファ、イメージ、パイプなどの OpenCL メモリオブジェクトの使用
  • リードオンリー、ライトオンリー、リードライトなど、OpenCLメモリアクセスモードの使用
  • 0] メモリ一貫性モデルと同期メカニズムの使用

OpenCL 実行モデル

  • ホストとデバイスの実行モデルの違いを理解する
  • 0]ワークアイテム、ワークグループ、NDレンジを使用して並列性を定義する
  • get_global_id、get_local_id、get_group_idなどのOpenCLワークアイテム関数の使用
  • 0]ワークグループ関数の使用(barrier、work_group_reduce、work_group_scanなど)。
  • get_num_groups、get_global_size、get_local_sizeなどのOpenCLデバイス関数の使用。

デバッグ

  • 0]プログラムの一般的なエラーやバグを理解する
  • 1]コードデバッガを使用して、変数、ブレークポイント、コールスタックなどを検査する。
  • CodeXL を使用した AMD デバイス上の OpenCL プログラムのデバッグと解析
  • Intel VTuneを使用して、Intelデバイス上のOpenCLプログラムをデバッグおよび解析する
  • NVIDIA Nsightを使用して、NVIDIAデバイス上のOpenCLプログラムをデバッグおよび解析する。

最適化

  • 0]プログラムのパフォーマンスに影響する要因を理解する
  • 0]ベクトルデータ型とベクトル化テクニックを使用して算術スループットを向上させる
  • 0]ループアンローリングとループタイリングテクニックを使用して制御オーバーヘッドを減らし、局所性を高める
  • 0] ローカルメモリとローカルメモリ関数を使用して、メモリアクセスと帯域幅を最適化する
  • 0] プロファイリングとプロファイリングツールを使用して、実行時間とリソース使用率を測定し、改善する。

まとめと次のステップ

要求

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

対象者

  • ヘテロジニアスデバイスをプログラムし、その並列性を利用するためにOpenCLを使用する方法を学びたい開発者
  • 異なるプラットフォームやデバイス上で実行可能な、ポータブルでスケーラブルなコードを書きたい開発者
  • ヘテロジニアス・プログラミングの低レベルの側面を探求し、コードのパフォーマンスを最適化したいプログラマー
 28 時間

参加者の人数



Price per participant

お客様の声 (1)

関連コース

GPU Programming with CUDA

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 時間

関連カテゴリー