Basic Linear Algebra Subprograms（BLAS）は数値線形代数の基礎的演算に必要な関数を定義するAPIである。ベクトル・行列演算を含む38の関数からなるLevel 1 BLASが1979年に発表されたのち、Level 2 および Level 3 まで拡張された。多数の実装が作成・整備され続けており、この分野におけるデファクトスタンダードとなっている。BLASの基礎演算を利用してLAPACKなどの上位パッケージが構築されており、科学技術計算・高性能計算で多用される。

BLASの関数を多用するソフトウェアにおいてBLAS実装（ライブラリ）の質は速度に直結する。高度な最適化は実装が動くハードウェアにも依存するため、特定CPUに特化したライブラリが提供される場合もある（インテルCPU向け: Intel Math Kernel Library）。オープンソースの最適化 BLAS 実装として OpenBLAS や  がある。

LINPACK ベンチマークの性能は、BLAS のサブルーチンである DGEMM（倍精度汎用行列乗算）の性能に大きく影響される。

機能 
BLASの機能は以下の3レベルに分類される。

Level 1 
このレベルには、以下のような形式のベクトル演算が含まれる。

他にもドット積やノルムなどが含まれる。

Level 2 
Level 2 BLAS は  の行列を含み  のオーダーを持つ演算のセットである。元々の BLAS（Level 1 BLAS）を拡張し1段階抽象度の高い演算セットとして提案された。

行列の種類を示す記号には GE (GEneral matrix)、HE (HErmitian matrix)、SY (SYmmetric matrix)、TR (TRiangular matrix) などがある。演算を示す記号には MV (matrix-vector product)、 R (Rank-one update)、 R2 (Rank-two update)、 SV (solving a system of linear equations) がある。

GEMV 
一般行列ベクトル積（GEMV）は一般行列（GE）を用いた行列ベクトル積（MV）である。すなわち次の演算である（はGeneral Matrix）。

Level 3 
このレベルには、以下のような形式の行列同士の演算が含まれる。

また、 を三角行列  について解く演算なども含まれる。このレベルにはよく使われる汎用行列乗算（GEMM）操作が含まれる。

API 
BLASはAPIであり、各演算関数を次のように定義する。

GEMM 
各行列の変換フラグ・次元・係数・アクセスオフセットを引数に取り、行列積和演算を実行、演算結果がCへ書き出される。Trans = "N" | "T" | "C"
T = float32 | float64 | complex

def _GEMM<T>(TRANSA: Trans,  # Flag of A transformation (None, Transpose, Conjugate_transpose)
    TRANSB: Trans,  # Flag of B transformation (None, Transpose, Conjugate_transpose)
    M: int,         # The number of C row == (A row (TRANSA=N) OR A col (TRANSA=T))
    N: int,         # The number of C col == (B col (TRANSA=N) OR B row (TRANSA=T))
    K: int,         # The number of A_col & B_row (TRANSA=N) OR A_row & B_col (TRANSA=T)
    ALPHA: T,       # a scalar of "C <- aAB + bC"
    A: Matrix[T],   # A matrix of "C <- aAB + bC"
    LDA: int,       # Leading dimension of A
    B: Matrix[T],   # B matrix of "C <- aAB + bC"
    LDB: int,       # Leading dimension of B
    BETA: T,        # b scalar of "C <- aAB + bC"
    C: Matrix[T],   # C matrix of "C <- aAB + bC" (scaled accumulator)
    LDC: int) -> None

Sparse BLAS 
Sparse BLASは、疎行列を対象としたBLASである。疎行列は格納形式と演算実装を工夫することで高効率の計算が可能である。Sparse BLAS はこの用途に特化した実装をもつBLASである。疎行列を示す記号には Sp (Sparse) が用いられる。

SpMV 
疎行列ベクトル積（SpMV）は疎行列（Sp）を用いた行列ベクトル積（MV）である。すなわち次の演算である（は Sparse Matrix）。

PBLAS 
PBLASは、コンピュータ・クラスター（並列計算）向けの並列BLAS（Parallel Basic Linear Algebra Subprograms）。MPI などの上で動作する BLACS を通信プロトコルとして利用する。

実装 
BLAS演算は多数の積和演算からなる。またLevel 2およびLevel 3ではベクトル・行列を扱う。ゆえに計算機におけるBLAS実装ではSIMD命令をもちいた最適化が可能である。利用される命令とその特性は命令セットアーキテクチャにより異なり、またメモリ等の実行環境によっても最適設定は異なる。その結果、特定CPUに特化したBLAS実装や実行時に環境へのチューニングをおこなうBLASなど、異なる特性をもつ様々なBLAS実装が存在する。

 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のスーパーセット。

BLASではないが類似ライブラリ 
 Elemental 分散メモリ（コンピュータ・クラスター）用の密行列・疎行列の線形代数および最適化ライブラリ。
 GNU Scientific Library C言語での実装。
 uBLAS BLAS機能を提供する汎用C++テンプレートクラスライブラリ。Boostライブラリの一部。高性能を追求するというよりも、C++の最新機能を使ってアルゴリズムを正しく実装することに注力している。