15種類以上の数値型に対応し、距離・内積・行列演算をSIMDで高速化する数学カーネル。Python、Rust、C/C++、JS、Swift、Go向けのバインディングを提供します。
- スター
- 7,667
- フォーク
- 1,750
- 未解決の Issue
- 163
- 最終コミット
- 24 時間前
これは何?
OpenBLASは、数値計算ソフトウェアでベクトルや行列を扱う際に使われる標準的な低レベルの構成要素、BLAS(Basic Linear Algebra Subprograms)のルーチンを実装するライブラリです。BSDライセンスのGotoBLAS2 1.13をベースとし、上位レベルの線形代数パッケージであるLAPACKと、LAPACKE Cインターフェースも同梱しています。
IntelのSandy BridgeからSapphire Rapidsまでのx86-64世代、AMD Zen、NeoverseやCortex-AシリーズなどのARM64コア、POWER、IBM Z、RISC-Vのベクトル拡張、LoongArchなど、幅広いプロセッサ向けに最適化されたカーネルを提供します。DYNAMIC_ARCHビルドでは、複数のターゲットを1つのライブラリに含め、実行時に適切なカーネルを選択できます。ビルドにはmakeまたはCMakeを使用でき、クロスコンパイルにも対応しています。
OpenBLASはGNU/Linux、Windows(MinGWまたはVisual Studio)、macOS、複数のBSD系OSで動作し、WebAssemblyからも利用できます。スレッド数は環境変数または実行時関数で制御できます。
主な機能
- 01BLASを実装し、LAPACKとLAPACKE Cインターフェースを同梱。
- 02x86、ARM64、POWER、IBM Z、RISC-V、LoongArchなど、多様なCPU向けに最適化されたカーネルを提供。
- 03DYNAMIC_ARCHビルドでは複数のCPUターゲットを含め、実行時にカーネルを選択。
- 04クロスコンパイルを含む、makeおよびCMakeでのビルドに対応。
- 05環境変数または実行時関数でスレッド数を設定可能。
- 06Windows用バイナリパッケージとして入手でき、多数のパッケージマネージャーからも利用可能。
ユースケース
- 科学技術計算や数値計算ライブラリで、行列・ベクトル演算を高速化する。
- R、NumPy、SciPyなどの数値計算スタックにBLAS/LAPACKバックエンドを提供する。
- 異なるアーキテクチャの組み込みCPUやサーバーCPU向けに、高性能な線形代数コードを構築する。
- WebAssemblyビルドを使って、ブラウザー上で数値計算ワークロードを実行する。
クイックスタート
- 1
GitHubからソースコードを取得します(デフォルトブランチはdevelopです)
- 2
makeでライブラリをビルドします(CPUは自動検出されます)
make - 3
任意のディレクトリにインストールします
make install PREFIX=your_installation_directory
使う前に知っておきたいこと
- GPUには対応していません。
- ソースからビルドするにはCコンパイラが必要です。また、一部のCPUターゲットはまだ試験的なサポートにとどまっています。
トピック
よくある質問
- OpenBLAS とは?
- 多様なCPUアーキテクチャ向けに最適化された、GPUを除くオープンソースのBLAS・LAPACK線形代数ライブラリ。 OpenBLASは、数値計算ソフトウェアでベクトルや行列を扱う際に使われる標準的な低レベルの構成要素、BLAS(Basic Linear Algebra Subprograms)のルーチンを実装するライブラリです。BSDライセンスのGotoBLAS2 1.13をベースとし、上位レベルの線形代数パッケージであるLAPACKと、LAPACKE Cインターフェースも同梱しています。
- OpenBLAS は無料で使えますか?ライセンスは?
- OpenBLAS は BSD-3-Clause ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- OpenBLAS は今もメンテナンスされていますか?
- 活発にメンテナンス中。OpenBLAS の最終コミットは 2026年11月6日 です。
- OpenBLAS は何に使えますか?
- 科学技術計算や数値計算ライブラリで、行列・ベクトル演算を高速化する。 R、NumPy、SciPyなどの数値計算スタックにBLAS/LAPACKバックエンドを提供する。 異なるアーキテクチャの組み込みCPUやサーバーCPU向けに、高性能な線形代数コードを構築する。 WebAssemblyビルドを使って、ブラウザー上で数値計算ワークロードを実行する。
- OpenBLAS のインストール方法は?
- GitHubからソースコードを取得します(デフォルトブランチはdevelopです) makeでライブラリをビルドします(CPUは自動検出されます): make 任意のディレクトリにインストールします: make install PREFIX=your_installation_directory
- OpenBLAS はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/OpenMathLib/OpenBLAS
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
高速なN次元配列オブジェクトを中心とした、科学技術計算向けのPython基本パッケージ。
NVIDIA GPUまたはマルチスレッドCPUで実行でき、カーネル融合にも対応した、NumPy風テンソル式のためのC++20ヘッダーオンリーライブラリ。
NVIDIA GPU向けの高性能GEMMや関連する線形代数カーネルを記述するための、CUDA C++テンプレートライブラリとPython DSL。
ブラウザとNode.jsで動作する、JavaScriptおよびTypeScript向けの数値・科学計算用標準ライブラリ。
NumPy配列の式をチャンク単位で評価し、メモリ使用量を抑えながらマルチコアで高速に計算します。