Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
コース概要
はじめに
- 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 時間
お客様の声 (1)
さまざまな例が非常にインタラクティブで、トレーニングの開始から終了までの間に複雑さが徐々に増していきます。
Jenny - Andheo
コース - GPU Programming with CUDA and Python
Machine Translated