Basic Linear Algebra Subprograms
表示
Basic Linear Algebra Subprograms(BLAS)は、ベクトルと行列に関する基本線型代数操作を実行するライブラリAPIのデファクトスタンダードである。1979年に初公開され、これを使ったLAPACKなどの上位パッケージが構築されている。科学技術計算・高性能計算で多用される
高度に最適化(高速な実装)された BLAS API の実装がインテル(Intel Math Kernel Library)などの各ハードウェアベンダーなどから提供されている。オープンソースの最適化 BLAS 実装として OpenBLAS や ATLAS がある。LINPACK ベンチマークの性能は、BLAS のサブルーチンである DGEMM(倍精度汎用行列乗算)の性能に大きく影響される。
機能
BLASの機能は以下の3レベルに分類される。
Level 1
このレベルには、以下のような形式のベクトル演算が含まれる。
Level 2
このレベルには、以下のような形式の行列ベクトル演算が含まれる。
また、 を について解く演算( は三角行列)なども含まれる。
Level 3
このレベルには、以下のような形式の行列同士の演算が含まれる。
また、 を三角行列 について解く演算なども含まれる。このレベルにはよく使われる汎用行列乗算(GEMM)操作が含まれる。
Sparse BLAS
Sparse BLASは、疎行列を対象としたBLAS[1]。
PBLAS
PBLASは、コンピュータ・クラスター(並列計算)向けの並列BLAS(Parallel Basic Linear Algebra Subprograms)[2]。MPI などの上で動作する BLACS を通信プロトコルとして利用する。
実装
- reference BLAS
- netlib による公式リファレンス実装。C言語版とFORTRAN版がある。
- Accelerate
- アップルによる Mac OS X 向けフレームワーク。PowerPC と Intel Core 向けに最適化されたBLASとLAPACKを含む。
- ACML
- AMD Core Math Library。Athlon および Opteron 上のLinuxとWindowsをサポート。
- ATLAS
- オープンソース実装(C言語とFortran 77)
- cuBLAS
- NVIDIA CUDA SDK には、GeForce 8 Series 上で動作するBLAS機能(C言語インタフェース)が含まれる。
- ESSL
- IBMの Engineering and Scientific Subroutine Library。PowerPC上のAIXおよびLinuxで動作。
- GotoBLAS
- 後藤和茂が GotoBLAS を開発し、OpenBLAS へと引き継がれている。GotoBLAS は2010年2月が最後のバージョン。
- HP MLIB
- ヒューレット・パッカードの数学ライブラリ。IA-64/PA-RISC/x86/Opteron上のHP-UXおよびLinuxで動作。
- Intel Math Kernel Library
- インテルによる実装。x86, x86-64, IA64, Xeon Phi 上の Linux/Windows/Mac OS X で動作。
- MathKeisan
- 日本電気による実装。NEC SX上のSUPER-UXと、Itanium上のLinuxをサポート。
- OpenBLAS
- オープンソース実装。x86, x86-64, MIPS, ARM, ARM64 上の Linux, Microsoft Windows, OS X, FreeBSD で動作。
- PDLIB/SX
- 1994年に発表された日本電気のSX-4向け数学ライブラリ(パブリックドメイン)。現在は配布されていない。
- SCSL
- SGIの実装。LAPACK も含む。IRIX上で動作。
- Sun Performance Linaray
- SPARC/AMD64上の Solaris 8, 9, 10 で動作する BLAS および LAPACK 実装。
BLASではないが類似ライブラリ
- Elemental
- 分散メモリ(コンピュータ・クラスター)用の密行列・疎行列の線形代数および最適化ライブラリ。
- GNU Scientific Library
- C言語での実装。
- uBLAS
- BLAS機能を提供する汎用C++テンプレートクラスライブラリ。Boostライブラリの一部。高性能を追求するというよりも、C++の最新機能を使ってアルゴリズムを正しく実装することに注力している。
関連項目
参照
外部リンク
- BLAS FAQ
- BLAS operations GNU Scientific Library reference manual
- BLAS Quick Reference Guide LAPACK Users' Guide
- Lawson Oral History BLAS設計者の1人 Charles L. Lawson のインタビュー。by Thomas Haigh, 6 and 7 November, 2004, San Clemente, California. Society for Industrial and Applied Mathematics, Philadelphia, PA.
- Dongarra Oral History BLAS、LINPACK、ATLAS 設計に関わった Jack J. Dongarra のインタビュー。 by Thomas Haigh, 26 April, 2005, University of Tennessee, Knoxville TN. Society for Industrial and Applied Mathematics, Philadelphia, PA