kokkos/kokkos-kernels

Kokkos C++ Performance Portability Programming Ecosystem: Math Kernels - Provides BLAS, Sparse BLAS and Graph Kernels

何を解決するか

Kokkos Kernels は、線形代数およびグラフ操作用の高性能でポータブルな数学カーネルのセットを提供します。複雑な計算カーネル(たとえばスパース行列乗算)を、特定のデバイスごとにコードを再書き込みすることなく、さまざまなハードウェアアーキテクチャ上で効率的に実行できるようにします。

仕組み

Kokkosの共有メモリ並列プログラミングモデルに基づいて構築されており、『ローカル』の計算カーネル(つまり、単一のMPIプロセス内またはMPIなしで動作する)を実装しています。公開インターフェースと内部実装を分離することで、テンプレートパラメータの完全特殊化を使用できます。このアプローチにより、特定のデータ型に対してカーネルを事前にコンパイルすることで、ビルド時間を短縮し、コンパイラ最適化を向上させます。

対象ユーザー

並列線形代数ライブラリ(例:Tpetra)の開発者、または共有メモリシステム上で高性能な数学演算が必要なアプリケーション開発者向けに設計されています。

主な特徴

  • 線形代数サポート:ドット積、ノルム、AXPY風のベクトル更新、スパース行列-ベクトル/行列-行列乗算を含む。
  • グラフ操作:グラフ彩色および彩色付きガウス=ザイデル用のカーネルを提供。
  • パフォーマンスのポータビリティ:Kokkosを活用して、さまざまなハードウェアバックエンドで効率的に実行されるコードを保証。
  • 柔軟な統合:単体のライブラリとして使用可能であり、より大きな並列フレームワークの構成要素としても利用可能。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト