BLAS - AshokBhat/notes GitHub Wiki
About
- Basic Linear Algebra Subprograms (BLAS)
- Defacto standard low-level routines for linear algebra libraries
- Routines include vector addition, scalar multiplication, dot products, linear combinations, and matrix multiplication.
FAQ
- 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?
- Only vector operations
- αx + y; α = scalar , x and y = vector (1D array)
- O(n)
- vector-vector
- What is Level 2?
- matrix-vector operations
- αAx + βy
- α and β = scalar , x and y = vector (1D array), A and B = matrix (2D Array)
- O(n-square)
- What is Level 3?
- matrix-matrix operations
- αAB + βC
- α and β = scalar , A, B and C = matrix (2D Array)
- O(n-cube)
- Who implements BLAS?
- Open Source Libraries like ATLAS and OpenBLAS
- Commercial libraries like Intel MKL
- Routines have bindings for both C and Fortran
See also