Basic Linear Algebra Subprograms
疎行列ベクトル積(英: sparse matrix vector products; SpMV)は疎行列(Sp)を用いた行列ベクトル積(MV)である。すなわち次の演算である( A {\displaystyle A} は Sparse Matrix)。
y ← α A x + β y {\displaystyle {\boldsymbol {y}}\leftarrow \alpha A{\boldsymbol {x}}+\beta {\boldsymbol {y}}\!}
Basic Linear Algebra Subprograms(BLAS)は数値線形代数の基礎的演算に必要な関数を定義するAPIである。ベクトル・行列演算を含む38の関数からなるLevel 1 BLASが1979年に発表されたのち、Level 2 および Level 3 まで拡張された。多数の実装が作成・整備され続けており、この分野におけるデファクトスタンダードとなっている。BLASの基礎演算を利用してLAPACKなどの上位パッケージが構築されており、科学技術計算・高性能計算で多用される。
BLASの関数を多用するソフトウェアにおいてBLAS実装(ライブラリ)の質は速度に直結する。高度な最適化は実装が動くハードウェアに依存するため、多くのハードウェアベンダーが自社デバイスに特化したライブラリを提供している(インテル:Intel oneAPI Math Kernel Library)。オープンソースの最適化 BLAS 実装として OpenBLAS などがある。
LINPACK ベンチマークの性能は、BLAS のサブルーチンである DGEMM(倍精度汎用行列乗算)の性能に大きく影響される。
対応しているデータ型は単精度浮動小数点数と倍精度浮動小数点数。近年 CPU および GPU で広く実装されている bfloat16 は、各 BLAS 実装が独自拡張として実装していていて、今のところ、公式の BLAS 実装では実装されていない。