BLAS - AshokBhat/ml GitHub Wiki
- Basic Linear Algebra Subprograms (BLAS)
- Defacto standard low-level routines for linear algebra libraries
- Routines: vector addition | scalar/matrix multiplication | dot products | linear combinations
-
What is BLAS?
- Stands for "Basic Linear Algebra Subprograms"
- A Specification
-
Is it a standard?
-
De facto standard low-level routines for linear algebra libraries
-
What does it standardize?
- Low-level routines for performing common linear algebra operations
- Example: vector addition, scalar multiplication, dot products, linear combinations, and matrix multiplication.
-
What are the types of BLAS routines?
- Three sets of routines called "levels" - Level 1, Level 2 and Level 3
- Chronological order - Level 1 was defined first
- Order of complexity - Level 1 is O(n), Level 3 is O(n3)
-
What is Level 1?
-
scalar-vector and vector-vector operations
- Only vector operations
- αx + y; α = scalar , x and y = vector (1D array)
- O(n)
-
What is Level 2?
-
matrix-vector operations
- αAx + βy
- α and β = scalar , x and y = vector (1D array), A and B = matrix (2D Array)
- O(n2)
-
What is Level 3?
-
matrix-matrix operations
- αAB + βC
- α and β = scalar , A, B and C = matrix (2D Array)
- O(n3)
-
Who implements BLAS?
- Open Source Libraries like ATLAS and OpenBLAS
- Commercial libraries like Intel MKL
- Routines have bindings for both C and Fortran
⚠️ **GitHub.com Fallback** ⚠️