Basic Linear Algebra Subprograms(BLAS) is a set of low-level routines for linear algebra operations. Most of the numerical libraries like NumPy and R do their linear algebra computations based on these standard operations. BLAS is often optimized for specific hardware for better performance; thus, BLAS has numerous different implementations depending on the vendor or type of processing unit(CPU/GPU).
Operations in BLAS are categorized into three levels based on their complexity.
Level 1: Vector operations
ex) axpy, “a x plus y”
where
In summary,
Level 2: Matrix-vector operations
ex) gemv, “generalized matrix-vector multiplication”
Here,
For each
In summary,
Level 3 Matrix-matrix operations
ex) gemm, “generalized matrix multiplication”
where
For each
In summary,