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