「Basic Linear Algebra Subprograms」の版間の差分
表示
削除された内容 追加された内容
m Infobox |
m Bot作業依頼: Apple関連記事の改名に伴うリンク修正依頼 (Apple|Apple) - log |
||
44行目: | 44行目: | ||
== 実装 == |
== 実装 == |
||
; [http://www.netlib.org/blas/ reference BLAS]: [[netlib]] による公式[[リファレンス実装]]。[[C言語]]版と[[FORTRAN]]版がある。 |
; [http://www.netlib.org/blas/ reference BLAS]: [[netlib]] による公式[[リファレンス実装]]。[[C言語]]版と[[FORTRAN]]版がある。 |
||
; [http://developer.apple.com/releasenotes/Performance/RN-vecLib/ Accelerate]: [[ |
; [http://developer.apple.com/releasenotes/Performance/RN-vecLib/ Accelerate]: [[Apple]]による [[macOS|OS X]] 向けフレームワーク。[[PowerPC]] と [[Intel Core]] 向けに最適化されたBLASとLAPACKを含む。 |
||
; [http://developer.amd.com/acml.aspx ACML]: [[アドバンスト・マイクロ・デバイセズ|AMD]] Core Math Library。[[Athlon]] および [[Opteron]] 上の[[Linux]]と[[Microsoft Windows|Windows]]をサポート。 |
; [http://developer.amd.com/acml.aspx ACML]: [[アドバンスト・マイクロ・デバイセズ|AMD]] Core Math Library。[[Athlon]] および [[Opteron]] 上の[[Linux]]と[[Microsoft Windows|Windows]]をサポート。 |
||
; [http://math-atlas.sourceforge.net/ ATLAS]: [[オープンソース]]実装([[C言語]]と[[FORTRAN|Fortran 77]]) |
; [http://math-atlas.sourceforge.net/ ATLAS]: [[オープンソース]]実装([[C言語]]と[[FORTRAN|Fortran 77]]) |
2021年5月20日 (木) 12:00時点における版
最新版 |
3.8.0
/ 2017年11月 |
---|---|
プログラミング 言語 | Fortran |
種別 | 数値解析ソフトウェア |
公式サイト | BLAS (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
- Appleによる OS X 向けフレームワーク。PowerPC と Intel Core 向けに最適化されたBLASとLAPACKを含む。
- ACML
- AMD Core Math Library。Athlon および Opteron 上のLinuxとWindowsをサポート。
- ATLAS
- オープンソース実装(C言語とFortran 77)
- clBLAS
- AMD が提供する、主に GPU 向けの OpenCL 上で動くオープンソース実装。
- cuBLAS
- NVIDIA CUDA SDK には、NVIDIA の GPU 上で動作する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/macOS で動作。
- MathKeisan
- 日本電気による実装。NEC SX上のSUPER-UXと、Itanium上のLinuxをサポート。
- OpenBLAS
- オープンソース実装。x86, x86-64, MIPS, ARM, ARM64 上の Linux, Microsoft Windows, macOS, 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