Skip to main content
QUICK REVIEW

[論文レビュー] Porting a sparse linear algebra math library to Intel GPUs

Yu‐Hsiang Tsai, Terry Cojean|arXiv (Cornell University)|Mar 18, 2021
Parallel Computing and Optimization Techniques参考文献 12被引用数 6
ひとこと要約

本論文は、DPC++およびoneAPIを用いて、Intel GPU向けの最初のオープンソースでプラットフォームに依存しないスパース線形代数ライブラリバックエンドを提示し、ベンダー最適化ライブラリと比較して競争力のある性能を示した。Intel Gen12 GPUではピーク帯域幅の最大90%を達成し、AMD、NVIDIA、Intelハードウェアの間で優れたパフォーマンスの移植性を示した。これにより、DPC++が新興のIntel GPU向けHPCワークロードの実現可能性のある道筋であることが裏付けられた。

ABSTRACT

With the announcement that the Aurora Supercomputer will be composed of general purpose Intel CPUs complemented by discrete high performance Intel GPUs, and the deployment of the oneAPI ecosystem, Intel has committed to enter the arena of discrete high performance GPUs. A central requirement for the scientific computing community is the availability of production-ready software stacks and a glimpse of the performance they can expect to see on Intel high performance GPUs. In this paper, we present the first platform-portable open source math library supporting Intel GPUs via the DPC++ programming environment. We also benchmark some of the developed sparse linear algebra functionality on different Intel GPUs to assess the efficiency of the DPC++ programming ecosystem to translate raw performance into application performance. Aside from quantifying the efficiency within the hardware-specific roofline model, we also compare against routines providing the same functionality that ship with Intel's oneMKL vendor library.

研究の動機と目的

  • oneAPIエコシステムを活用して、Intelの新規デスクトップGPU上で生産用途に耐えうるスパース線形代数機能を実現すること。
  • Intel Gen9およびGen12 GPU上でDPC++ベースのカーネルのパフォーマンスを、ハードウェアの限界およびベンダーライブラリと比較して評価すること。
  • 単一のDPC++バックエンドを用いて、多様なGPUアーキテクチャ間でのGinkgoライブラリのプラットフォーム移植性を実証すること。
  • スパース線形代数演算(SpMVやKrylovソルバーなど)における、GPUの原始的パフォーマンスが実アプリケーションレベルにどの程度効率的に変換できるかを評価すること。

提案手法

  • oneAPIプログラミングモデルを介してIntel GPUをサポートするため、GinkgoオープンソースライブラリにDPC++バックエンドを拡張した。
  • Intel GPU向けに、単精度および倍精度の最適化されたスパース行列-ベクトル乗算(SpMV)カーネルをDPC++で実装した。
  • Intel Gen9およびGen12 GPU上で、SuiteSparseコレクションの行列を用いてSpMVおよびKrylovソルバーのベンチマークを実施した。
  • IntelのoneMKLベンダーライブラリと比較し、ハードウェア固有のルーフラインモデルを用いて効率性を評価した。
  • 理論的ピーク(帯域幅およびFLOP/s)に対する相対的パフォーマンスを用いて、異なるプラットフォーム間での移植性およびアルゴリズム効率性を評価した。
  • Ginkgoのモジュラー設計を活用し、実行エンジン、型、バインディングなどのコアコンponentを再利用しながら、DPC++ランタイムのセマンティクスに適応した。

実験結果

リサーチクエスチョン

  • RQ1DPC++を用いて、プラットフォームに依存しないオープンソースのスパース線形代数ライブラリは、Intelの新規デスクトップGPUで高いパフォーマンスを達成できるか?
  • RQ2Intel GPU上でDPC++ベースのSpMVカーネルのパフォーマンスは、IntelのoneMKLベンダーライブラリと比べてどの程度か?
  • RQ3Ginkgoライブラリは、AMD、NVIDIA、Intel GPUアーキテクチャの間でどの程度のパフォーマンスの移植性を維持できるか?
  • RQ4Intel Gen12 GPU上でKrylovソルバーの達成可能なパフォーマンスはどの程度か?また、その効率性に影響を与える制限要因は何か?
  • RQ5DPC++プログラミングモデルは、スパース線形代数のアプリケーションレベルパフォーマンスに、GPUの原始的パフォーマンスをどの程度効率的に変換できるか?

主な発見

  • GinkgoのDPC++バックエンドは、Intel Gen12 GPUでピークメモリ帯域幅の最大90%を達成し、カーネル最適化の高効率性を示した。
  • Intel Gen12 GPUでは、GinkgoのSpMVカーネルが単精度で5–9 GFLOP/sを達成し、行列構造に応じて性能に顕著な差が見られた。
  • GMRESソルバーは他のKrylovソルバーと比較して低いパフォーマンスを示したが、これはHessenbergシステムの解法を要する操作のoneAPI対応が不完全であることが原因とされる。
  • Intel Gen9 GPUでは、SpMVパフォーマンスは倍精度で1.5–2.5 GFLOP/sに達し、Ginkgoのカーネルはピーク帯域幅の60–70%を達成した。
  • GinkgoのSpMVカーネルはすべてのプラットフォームでoneMKLと同等の性能を示したが、一部のGen12ケースではoneMKLがGinkgoを上回り、他のケースでは逆にGinkgoがoneMKLを上回った。
  • 相対的パフォーマンス分析から、強力なパフォーマンスの移植性が確認された:GinkgoのDPC++バックエンドはAMD、NVIDIA、Intel GPUのすべてで一貫した効率性を発揮した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。