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.
コース概要
導入
- OpenACCとは何ですか?
- OpenACC vs OpenCL vs CUDA vs SYCL
- OpenACC の機能とアーキテクチャの概要
- 開発環境のセットアップ
はじめる
- Visual Studio コードを使用して新しい OpenACC プロジェクトを作成する
- プロジェクトの構造とファイルを調べる
- プログラムのコンパイルと実行
- printf と fprintf を使用した出力の表示
OpenACC の指令と条項
- ホストおよびデバイス コードにおける OpenACC ディレクティブと句の役割を理解する
- OpenACC 並列ディレクティブと句を使用して並列領域を作成し、ギャング、ワーカー、ベクターの数を指定する
- OpenACC カーネル ディレクティブと句を使用してカーネル領域を作成し、コンパイラに並列処理を決定させる
- OpenACC ループ ディレクティブと句を使用してループを並列化し、ループの分散、縮小、縮小、タイルを指定する
- OpenACC データ ディレクティブと句を使用したデータ移動とデータ領域の管理
- OpenACC 更新ディレクティブと句を使用してホストとデバイス間でデータを同期する
- OpenACC キャッシュ ディレクティブと句を使用してデータの再利用と局所性を向上させる
- OpenACC ルーチンのディレクティブと句を使用してデバイス関数を作成し、関数のタイプとベクトル長を指定する
- OpenACC wait ディレクティブと句を使用してイベントと依存関係を同期する
OpenACC API
- ホスト プログラムにおける OpenACC API の役割を理解する
- OpenACC API を使用してデバイスの情報と機能をクエリする
- OpenACC API を使用してデバイス番号とデバイス タイプを設定する
- OpenACC API を使用してエラーと例外を処理する
- OpenACC API を使用したイベントの作成と同期
OpenACC ライブラリと相互運用性
- デバイス プログラムにおける OpenACC ライブラリと相互運用機能の役割を理解する
- 数学、ランダム、複素数などの OpenACC ライブラリを使用して一般的なタスクと操作を実行する
- deviceptr、use_device、acc_memcpy などの OpenACC 相互運用機能を使用して、OpenACC を CUDA、OpenMP、MPI などの他のプログラミング モデルと統合する
- host_data や宣言などの OpenACC 相互運用機能を使用して、OpenACC を cuBLAS や cuFFT などの GPU ライブラリと統合する
OpenACC ツール
- 開発プロセスにおける OpenACC ツールの役割を理解する
- OpenACC ツールを使用して OpenACC プログラムのプロファイリングとデバッグを行い、パフォーマンスのボトルネックと機会を特定する
- PGI コンパイラー、NVIDIA Nsight Systems、Allinea Forge などの OpenACC ツールを使用して、実行時間とリソース使用率を測定および改善する
最適化
- OpenACC プログラムのパフォーマンスに影響を与える要因を理解する
- OpenACC ディレクティブと句を使用してデータの局所性を最適化し、データ転送を削減する
- OpenACC ディレクティブと句を使用してループの並列処理と融合を最適化する
- OpenACC ディレクティブと句を使用してカーネルの並列処理と融合を最適化する
- OpenACC ディレクティブと句を使用してベクトル化と自動チューニングを最適化する
概要と次のステップ
要求
- C/C++またはFortran言語と並列プログラミングの概念の理解
- コンピュータアーキテクチャとメモリ階層に関する基礎知識
- コマンドラインツールとコードエディタの使用経験
対象者
- OpenACCを使用してヘテロジニアスデバイスをプログラムし、その並列性を利用する方法を学びたい開発者
- 異なるプラットフォームやデバイス上で実行可能なポータブルでスケーラブルなコードを書きたい開発者
- ヘテロジニアス・プログラミングのハイレベルな側面を探求し、コードの生産性を最適化したいプログラマー
28 時間
お客様の声 (1)
さまざまな例が非常にインタラクティブで、トレーニングの開始から終了までの間に複雑さが徐々に増していきます。
Jenny - Andheo
コース - GPU Programming with CUDA and Python
Machine Translated