BLAS (Basic Linear Algebra Subprograms) The Level 1 BLAS perform scalar, vector and vector-vector operations, the Level 2 BLAS perform matrix-vector operations, and the Level 3 BLAS perform matrix-matrix operations Because the BLAS are efficient, portable, and widely available, they are commonly used in the development of high quality linear algebra software, LAPACK for example
LAPACK — Linear Algebra PACKage LAPACK routines are written so that as much as possible of the computation is performed by calls to the Basic Linear Algebra Subprograms (BLAS) LAPACK is designed at the outset to exploit the Level 3 BLAS — a set of specifications for Fortran subprograms that do various types of matrix multiplication and the solution of triangular systems with multiple right-hand sides Because of the
What is the relation between BLAS, LAPACK and ATLAS BLAS is a collection of low-level matrix and vector arithmetic operations (“multiply a vector by a scalar”, “multiply two matrices and add to a third matrix”, etc ) LAPACK is a collection of higher-level linear algebra operations Things like matrix factorizations (LU, LLt, QR, SVD, Schur, etc) that are used to do things like “find the eigenvalues of a matrix”, or “find the
XBLAS - Extra Precise Basic Linear Algebra Subroutines - Netlib EXTENDED PRECISION is only used internally; the input and output arguments remain the same as in the existing BLAS At present, we only allow Single, Double, or Extra internal precision Extra precision is implemented as double-double precision (128-bit total, 106-bit significand) The routines for the double-double precision basic arithmetic operations +, -, *, were developed by David Bailey
How does BLAS get such extreme performance? - Stack Overflow Only the reference implementation of BLAS is implemented in Fortran However, all these BLAS implementations provide a Fortran interface such that it can be linked against LAPACK (LAPACK gains all its performance from BLAS) Optimized compilers play a minor role in this respect (and for GotoBLAS OpenBLAS the compiler does not matter at all)
LAPACK: BLAS - Netlib Detailed Description BLAS are defined by three papers: Basic linear algebra subprograms for {FORTRAN} usage, Lawson et al, 1979 An extended set of {FORTRAN} basic linear algebra subprograms, Dongarra et al, 1988 A set of level 3 basic linear algebra subprograms, Dongarra et al, 1990 Some BLAS-like routines (e g , csymv, crot, csum1, icmax1) exist in LAPACK rather than the classic BLAS
FAQ - Netlib The Level 1 BLAS perform scalar, vector and vector-vector operations, the Level 2 BLAS perform matrix-vector operations, and the Level 3 BLAS perform matrix-matrix operations Because the BLAS are efficient, portable, and widely available, they are commonly used in the development of high quality linear algebra software, LAPACK for example
BLAS - Netlib for all the Level 3 BLAS of this type prec doublecomplex gams D1b file sblas3time f for timing the Level 3 BLAS prec single file dblas3time f for timing the Level 3 BLAS prec double file cblas3time f for timing the Level 3 BLAS prec complex file zblas3time f for timing the Level 3 BLAS prec doublecomplex file sgemm f for matrix matrix multiply
LAPACK: dgemm - Netlib 188 * 189 * -- Reference BLAS level3 routine -- 190 * -- Reference BLAS is a software package provided by Univ of Tennessee, --