OpenMathLib/OpenBLAS

OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.

何を解決するか

OpenBLAS は、基本線形代数サブルーチン (BLAS) および線形代数パッケージ (LAPACK) の高度に最適化された実装を提供します。さまざまな CPU アーキテクチャにわたって、計算コストの高い線形代数演算(たとえば行列乗算)を効率的に行うという問題を解決します。

仕組み

GotoBLAS2 を基盤としており、アーキテクチャ固有の最適化を活用しています。特定のターゲット CPU 用にコンパイルするか、DYNAMIC_ARCH=1 でビルドすることで実行時検出を可能にし、ユーザーのプロセッサに最適なカーネル(例:Intel AVX-512、ARM SVE、RISC-V Vector 拡張)を選択できます。

対象ユーザー

科学計算、機械学習、その他のデータ集約型アプリケーションにおいて、高性能な線形代数ルーチンが必要な開発者や研究者を対象としています。Linux、Windows、macOS、BSD、Android など、さまざまなオペレーティングシステムおよびハードウェアアーキテクチャに対応しています。

特徴

  • 広範なハードウェア対応: x86(Intel/AMD)、ARM、POWER、MIPS、RISC-V、LoongArch など、多数の CPU に最適化されています。
  • LAPACK を内包: より複雑な演算に適した上位レベルの線形代数パッケージを備えています。
  • 動的アーキテクチャ検出: 実行時に CPU を検出し、最適な命令セットを使用できます。
  • マルチスレッド対応: 環境変数または実行時関数でスレッド制御が可能で、CPU の利用効率を最大化できます。

関連

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