libxsmm/libxsmm

Library for specialized dense and sparse matrix operations, and deep learning primitives.

解決する課題

LIBXSMMは、小規模な密行列および疎行列の線形代数演算を対象とした高性能ライブラリであり、特にディープラーニングおよびハイパフォーマンスコンピューティング(HPC)ワークロードで頻繁に使用される行列乗算(GEMM)および要素単位のプリミティブをターゲットとしています。従来の大規模ライブラリでは効率が低下する小規模行列演算における性能ギャップを解消します。

動作方法

このライブラリは、Just-In-Time(JIT)コード特殊化を使用して、特定の行列形状およびデータ型に最適化されたカーネルを生成し、コンパイラに依存しないパフォーマンスを確保します。Tensor Processing Primitives(TPP)の参照実装として機能し、畳み込み、全結合層、プーリングなどの演算をポータブルな抽象化で提供します。Intel(SSE、AVX、AVX-512、AMX)、AArch64(NEON、SVE、SME)、RISC-V(RVV)、PowerPC 64ビットなど、広範なハードウェアアーキテクチャをサポートしています。

対象ユーザー

ディープラーニングフレームワークやHPCアプリケーションを開発する開発者、および多様なCPUアーキテクチャにわたって高効率でアーキテクチャに依存しない小規模行列演算を必要とするすべての人々に向けられています。

主な特徴

  • 広範なハードウェアサポート:Intel、ARM、RISC-V、PowerPCアーキテクチャを対象としています。
  • 多様なデータ型サポート:FP64からint1まで、bfloat16やさまざまな低精度フォーマットを含む幅広い精度をサポートしています。
  • JIT特殊化:特定の問題サイズに最適化されたパフォーマンスを実現するために、ターゲット固有のビルドフラグを必要とせずにJITコード生成を使用しています。
  • TPPの参照実装:Tensor Processing Primitivesの参照実装として機能し、高レベルのディープラーニング演算の構成を可能にします。

関連

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