Technion oneAPI CoE: OpenMP* GPU オフロードのパフォーマンスの高速化、移植性、スケーラビリティー

インテル® oneAPI DPC++/C++ コンパイラーおよびインテル® データセンター GPU マックス・シリーズに関する Technion の経験

2023年5月にドイツのハンブルクで開催された ISC* High Performance 2023 (英語) において、Intel Extreme Performance Users Group (IXPUG) (英語) はワークショップ (英語) を実施しました。Technion (イスラエル工科大学) は、「最先端のアクセラレーターでの OpenMP* オフロードの移植性とスケーラビリティー」 (英語) を調査した結果について述べ、コーネル大学のデジタル原稿アーカイブ arXiv (英語) にある、Yehonatan Fridman、Guy Tamir、Gal Oren による論文をプレビューして拡張しました。

Technion の調査結果は非常に洞察力に富んでおり、全文読むことを強く推奨します。

最先端のアクセラレーターでの OpenMP* オフロードの移植性とスケーラビリティー (英語)
Y Fridman, G Tamir, G Oren – arXiv preprint arXiv:2304.04276, 2023

Technion は、さまざまなプラットフォームや GPU アーキテクチャーにわたるコードの移植性の重要性を強調しています。

さらに、LLVM (英語) や oneAPI (英語) などのオープンな開発者フレームワークと、最新の OpenMP* 標準 (英語) のサポートが、クロスアーキテクチャーのヘテロジニアス・コンピューティングのビジョンを推進する上で果たす役割を指摘しています。

調査結果は、インテル® データセンター GPU マックス・シリーズ 1100 と NVIDIA* A100 Tensor Core GPU 上で LULESH ベンチマーク (英語) を実行した詳細なパフォーマンス分析で締めくくられています。

セドフ-テイラー爆発問題では、一様な密度と温度のボリュームを初期化してから、中心部に大量の熱エネルギーが注入されます。この過加圧領域は急速に衝撃波に発展し、明確に定義された自己相似的な方法で膨張します。

ローレンス・リバモア国立研究所 (英語) で実装された LULESH (Livermore Unstructured Lagrangian Explicit Shock Hydrodynamics) (英語) アルゴリズムは、この問題の簡略版に対する解析的な答えを提供します。このアルゴリズムは高度に並列化可能であり、実際の科学計算問題の優れた代用として機能します。詳細は、GitHub* のソースコード (英語) を参照してください。

イスラエル工科大学の Technion が oneAPI のビジョンを推進

Technion (英語) は、オープンな高速コンピューティングに貢献し、oneAPI エコシステムの一員としてオープン・スタンダード、コラボレーション、サポートによって次世代のイノベーションを推進する、30 を超えるインテル® oneAPI センター・オブ・エクセレンス (CoE) (英語) の 1 つです。

同センターを率いるのは、Technion (イスラエル工科大学) Henry & Marilyn Taub コンピューター・サイエンス学部の Gal Oren 博士と Hagit Attiya 教授で、ベン・グリオン大学コンピューター・サイエンス学部の Danny Hendler 教授と協力しています。

彼らは研究で oneAPI を積極的に活用するだけでなく、最新のマルチコアおよびメニーコア・アーキテクチャーのプロセッサーで使用される並列プログラミング・フレームワークの概要を説明する、包括的なオンラインコース「共有メモリーの並列処理: CPU、GPU、およびその中間」 (英語) を開発しました。

これらのプログラミング・モデルは、並列計算オフロードから最新のマルチコアおよびメニーコア構成のクラスターまで拡張できます。

次のようなトピックをカバーしています。

  • OpenMP*
  • スレッドの生成
  • 同期
  • 並列ループ
  • データ環境
  • メモリーモデル
  • 不規則な並列処理とタスク
  • メモリーアクセス/NUMA
  • スレッド・アフィニティー
  • SIMD ベクトル化
  • ヘテロジニアス・アーキテクチャー
  • インテル® oneAPI ベース & HPC ツールキット

詳しいコース概要は、こちら (英語) を参照してください。

Technion のプレスリリース (英語) では、oneAPI を利用してヘテロジニアス・アプリケーションのパフォーマンスを限界まで引き上げることができるように、新世代の開発者を支援する同センターの取り組みを確認できます。

インテル・デベロッパー・エコシステム・プログラムのシニア・ディレクターの Scott Apeland は次のように述べています。

「イスラエル初の oneAPI CoE である Technion は、学生に SYCL* と oneAPI を教えることで、マルチアーキテクチャー・コンピューティングの世界への素晴らしい一歩を踏み出しました。オープンな標準ベースのプログラミング・スキルを習得した学生は、イノベーションと研究を推進し、科学と産業を発展に導くでしょう。」

ヘテロジニアス・コンピューティングの取り組み

科学計算、複雑な物理モデリング、金融、マシンラーニング/AI のパフォーマンスは、ヘテロジニアス・コンピューティングの普及に伴って向上してきました。

AMD や NVIDIA など、さまざまな半導体メーカーから多種多様な実装が提供されていますが、CPU、GPU、アクセラレーター間の相互運用性とスケーラビリティーを確保するには、共通のオープン・フレームワークが必要です。

アプリケーションの計算負荷の高い部分を GPU や他のデバイスにオフロードする場合、プログラマーは 1 つのアプリケーションで異なる ISA (命令セット・アーキテクチャー) を扱いたくないかもしれません。そのため、ハードウェア・レイヤーを透過的にし、使いやすいプログラミング・モデルが必要になります。

OpenMP* は、科学計算アプリケーションにおけるスレッド化の標準として最も広く使用されています。SYCL* (英語) は、C++ 開発者に C++ 標準の拡張機能を提供します。インテルは、これらの標準とオープン・フレームワークの両方に取り組んでいます。

これは、インテルが oneAPI (英語) を積極的に推進し、先導していることからも明らかです。oneAPI は、業界を超えたオープンな標準ベースのマルチアーキテクチャーかつマルチベンダーの統一プログラミング・モデルであり、アプリケーションのパフォーマンスを向上し、生産性を高め、より大きなイノベーションを実現するため、アクセラレーターのアーキテクチャーに関係なく、共通の開発環境を提供します。oneAPI イニシアチブは、エコシステム全体で oneAPI 仕様と互換性のある oneAPI 実装に関するコラボレーションを促進します。

Technion の研究では、インテルの oneAPI 実装に加え、HPC、AI、その他の分野にわたる各種ツールと最適化を活用しています。論文で言及されている解析の実行には、オープンソースの LLVM バックエンドと OpenMP* 5.1 をサポートする インテル® oneAPI DPC++/C++ コンパイラーが使用されました。

OpenMP* の GPU サポート

OpenMP* の GPU サポートは、長年にわたって着実に増加しています。2013年には早くも OpenMP* API 4.0 でオフロード機能が追加され、その後も OpenMP* target 構文 (英語) が継続的に拡張されています。インテル® oneAPI DPC++/C++ コンパイラーは、OpenMP* (英語) に対応し、高度な OpenMP* ライブラリー・サポート (英語) を提供しています。

最新バージョンの OpenMP* 5.x では、高度な科学計算やエクサスケールのメニーコア・コンピューティング (英語) 向けのプログラミング・モデルに、多くの新しいターゲットオフロード機能とホストベースの機能が導入されています。

oneAPI の今後の動向

oneAPI 業界イニシアチブを通じてオープン・スタンダードとオープンな並列ソフトウェア開発フレームワークを推進するインテルと oneAPI アカデミック・センター・オブ・エクセレンス (英語) のパートナーは、ヘテロジニアス・コンピューティングの未来を切り開く準備ができています。次世代のスケーラブルなマルチプラットフォーム、マルチアーキテクチャーの科学、エンタープライズ、そしてその先のソフトウェア開発を、ぜひ一緒に (英語) 進めていきましょう。

関連情報

ソフトウェアを入手

インテル® oneAPI ベース・ツールキット、あるいはインテル® oneAPI DPC++/C++ コンパイラーインテル® Fortran コンパイラー、その他の AI/HPC 向けインテル® oneAPI ツールをダウンロードしてお試しください。インストーラーは、パートナーのリポジトリ―からダウンロードすることもできます。

インテル® oneAPI ツールキット
有償サポート製品はこちら