このワークショップでは、OpenACC を利用して超並列 GPU で C/C++ または Fortran のアプリケーションを実行し、高速化するためのツールとテクニックを取り上げます。コードの書き方、OpenACC でコード並列化を構成する方法、CPU と GPU アクセラレータ間のメモリ移動を最適化する方法、学習したワークフローを新しいタスクで導入する方法 (機能は揃っているが CPU のみのケースを高速化)、パフォーマンスが大幅に向上する Laplace Heat Equation コードについて学びます。ワークショップの修了後は、GPU で高速化する新しいアプリケーションを自分で開発するための追加リソースをご利用いただけます。

 

学習目標


このワークショップに参加すると、OpenACC を利用し、C/C++ または Fortran のアプリケーションを GPU で高速化するための基礎的なツールとテクニックを理解し、次のことができるようになります。
  • CPU のみのアプリケーションをプロファイルして最適化し、高速化のホット スポットを特定する。
  • OpenACC ディレクティブを使用し、コードベースを GPU で加速する。
  • CPU と GPU アクセラレータ間のデータ移動を最適化する。

ワークショップ データシートをダウンロードする (PDF 318 KB)

ワークショップの概要

はじめに
(15 分)
並列プログラミングの概要
(50 分)
並列処理の概念とそれを OpenACC での表現する方法について説明します。以下のトピックについて説明します。
  • 並列処理の概要
  • OpenACC の目的
  • OpenACC を使用したコードの基本的並列化
休憩 (10 分)
OpenACC によるプロファイリング
(50 分)
OpenACC コードを記述してコンパイルする方法、プロファイリングの重要性、NVIDIA Nsight Systems プロファイラの使用方法について説明します。以下のトピックについて説明します。
  • シーケンシャル コードと OpenACC コードのコンパイル
  • コード プロファイリングの重要性
  • シーケンシャル コードと OpenACC マルチコア コードのプロファイリング
  • 導入モジュールで使用されるコードの技術的な紹介
休憩 (45 分)
OpenACC ディレクティブの概要
(50 分)
OpenACC ディレクティブを使用してコードを並列化する方法を学び、並列ディレクティブ、カーネル ディレクティブ、ループ ディレクティブの違いを理解します。以下のトピックについて説明します。
  • パラレル ディレクティブ
  • カーネル ディレクティブ
  • ループ ディレクティブ
休憩 (10 分)
OpenACC を使用した GPU プログラミング
(50 分)
GPU とマルチコア CPU の違いを学び、CUDA 統合メモリを使用してメモリを管理します。以下のトピックについて説明します。
  • GPU の定義
  • 基本的な OpenACC データ管理
  • CUDA 統合メモリ
  • GPU アプリケーションのプロファイリング
休憩 (15 分)
OpenACC によるデータ管理
(50 分)
OpenACC データ ディレクティブでデータ移動を明示的に管理し、データ転送を減らす方法について説明します。以下のトピックについて説明します。
  • OpenACC データ ディレクティブ/clause (節)
  • OpenACC 構造化データ領域
  • OpenACC 非構造化データ領域
  • OpenACC update ディレクティブ
  • C/C++ 構造体/クラスによるデータ管理
休憩 (10 分)
OpenACC を使用したループ最適化
(50 分)
GPU でのさまざまな並列処理レベルを理解し、コード内のループを最適化することで OpenACC による並列化の規模を拡大する方法を学びます。以下のトピックについて説明します。
  • seq/auto clause
  • independent clause
  • reduction clause
  • collapse clause
  • tile clause
  • gang clause、worker clause、vector clause
休憩 (10 分)
最終確認
(60 分)
  • 主要な学習内容の確認と、質疑応答。
  • 評価を完了し、認定証を取得します。
  • ワークショップ アンケートに記入します。
次のステップ 以下の DLI トレーニングで学習を続けてください。
 

ワークショップの詳細

時間: 8 時間

価格: 価格についてはお問い合わせください

参加条件:

  • 変数の型、ループ、条件付き命令、関数、配列操作など、C/C++ または Fortran の基本知識。
  • GPU プログラミングの経験は問われません。

ツール、ライブラリ、フレームワーク: NVIDIA® Nsight™、OpenACC

評価の種類:

  • コードベース

証明書: 評価完了後、参加者には NVIDIA DLI 証明書が授与されます。この証明書は内容領域の能力を認めるものであり、プロフェッショナルとしてのキャリア育成を支援します。

ハードウェア要件: 最新版の Chrome または Firefox を実行できるデスクトップ PC またはノート PC が必要です。参加者全員には、クラウドの完全設定済み GPU アクセラレーテッド ワークステーションへの専用アクセスが提供されます。

言語: 英語

あなたの組織が、AI、アクセラレーテッド データ サイエンス、アクセラレーテッド コンピューティングの重要スキルの開発に関心がありましたら、NVIDIA DLI のインストラクターによるトレーニングにお申し込みいただけます。

NVIDIA に問い合わせる