Basic Linear Algebra Subprograms
表示
Basic Linear Algebra Subprograms(BLAS)は、ベクトルと行列に関する基本線型代数操作を実行するライブラリAPIのデファクトスタンダードである。1979年に初公開され、これを使ったLAPACKなどの上位パッケージが構築されている。高性能計算で多用され、高度に最適化されたBLAS実装がインテルなどの各ハードウェアベンダーなどから提供されている。オープンソースの移植性の高い最適化BLAS実装としてATLASがある。LINPACKベンチマークの性能は、BLASのサブルーチンであるDGEMM(倍精度汎用行列乗算)の性能に大きく影響される。
機能
BLASの機能は以下の3レベルに分類される。
Level 1
このレベルには、以下のような形式のベクトル演算が含まれる。
Level 2
このレベルには、以下のような形式の行列ベクトル演算が含まれる。
また、 を について解く演算( は三角行列)なども含まれる。
Level 3
このレベルには、以下のような形式の行列同士の演算が含まれる。
また、 を三角行列 について解く演算なども含まれる。このレベルにはよく使われる汎用行列乗算(GEMM)操作が含まれる。
実装
- refblas: netlib による公式標準実装。C言語版とFORTRAN版がある。
- Accelerate: アップルによる Mac OS X 向けフレームワーク。PowerPC と Intel Core 向けに最適化されたBLASとLAPACKを含む。
- ACML: AMD Core Math Library。Athlon および Opteron 上のLinuxとWindowsをサポート。
- ATLAS: オープンソース実装のBLASAPI(C言語とFortran 77)
- CUDA SDK: NVIDIA CUDA SDK には、GeForce 8 Series 上で動作するBLAS機能(C言語インタフェース)が含まれる。
- ESSL: IBMの Engineering and Scientific Subroutine Library。PowerPC上のAIXおよびLinuxで動作。
- GNU Scientific Library: C言語での実装。
- Goto BLAS: 後藤和茂による実装
- HP MLIB: ヒューレット・パッカードの数学ライブラリ。IA-64/PA-RISC/x86/Opteron上のHP-UXおよびLinuxで動作。
- Intel Math Kernel Library: インテルによる実装。Pentium/Itanium上のLinux/Windows/Mac OS X で動作。
- MathKeisan: 日本電気による実装。NEC SX上のSUPER-UXと、Itanium上のLinuxをサポート。
- PDLIB/SX: 日本電気のSX-4向け数学ライブラリ(パブリックドメイン)
- SCSL: SGIの実装。LAPACK も含む。IRIX上で動作。
- Sun Performance Linaray: SPARC/AMD64上の Solaris 8, 9, 10 で動作する BLAS および LAPACK 実装。
- uBLAS: BLAS機能を提供する汎用C++テンプレートクラスライブラリ。Boostライブラリの一部。高性能を追求するというよりも、C++の最新機能を使ってアルゴリズムを正しく実装することに注力している。
ほかに疎行列を対象としたBLASである Sparse BLAS もある。
関連項目
外部リンク
- 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