BLAS Frequently Asked Questions (FAQ)

Many thanks to the netlib_maintainers@netlib.org for their help.

1)What and where are the BLAS?

The BLAS (Basic Linear Algebra Subprograms) are routines that provide standard building blocks for performing basic vector and matrix operations. 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.

The reference BLAS is a freely-available software package. It is available from netlib via anonymous ftp and the World Wide Web. Thus, it can be included in commercial software packages (and has been). We only ask that proper credit be given to the authors.

Like all software, it is copyrighted. It is not trademarked, but we do ask the following:

  • If you modify the source for these routines we ask that you change the name of the routine and comment the changes made to the original.

  • We will gladly answer any questions regarding the software. If a modification is done, however, it is the responsibility of the person who modified the routine to provide support.

3) Publications/references for the BLAS?

  1. C. L. Lawson, R. J. Hanson, D. Kincaid, and F. T. Krogh, Basic Linear Algebra Subprograms for FORTRAN usage, ACM Trans. Math. Soft., 5 (1979), pp. 308—323.

  2. J. J. Dongarra, J. Du Croz, S. Hammarling, and R. J. Hanson, An extended set of FORTRAN Basic Linear Algebra Subprograms, ACM Trans. Math. Soft., 14 (1988), pp. 1—17.

  3. J. J. Dongarra, J. Du Croz, S. Hammarling, and R. J. Hanson, Algorithm 656: An extended set of FORTRAN Basic Linear Algebra Subprograms, ACM Trans. Math. Soft., 14 (1988), pp. 18—32.

  4. J. J. Dongarra, J. Du Croz, I. S. Duff, and S. Hammarling, A set of Level 3 Basic Linear Algebra Subprograms, ACM Trans. Math. Soft., 16 (1990), pp. 1—17.

  5. J. J. Dongarra, J. Du Croz, I. S. Duff, and S. Hammarling, Algorithm 679: A set of Level 3 Basic Linear Algebra Subprograms, ACM Trans. Math. Soft., 16 (1990), pp. 18—28.

New BLAS

  1. L. S. Blackford, J. Demmel, J. Dongarra, I. Duff, S. Hammarling, G. Henry, M. Heroux, L. Kaufman, A. Lumsdaine, A. Petitet, R. Pozo, K. Remington, R. C. Whaley, An Updated Set of Basic Linear Algebra Subprograms (BLAS), ACM Trans. Math. Soft., 28-2 (2002), pp. 135—151.

  2. J. Dongarra, Basic Linear Algebra Subprograms Technical Forum Standard, International Journal of High Performance Applications and Supercomputing, 16(1) (2002), pp. 1—111, and International Journal of High Performance Applications and Supercomputing, 16(2) (2002), pp. 115—199.

4) Is there a Quick Reference Guide to the BLAS available?

Yes, the Quick Reference Guide to the BLAS is available in postscript and pdf.

5)Are optimized BLAS libraries available? Where can I find optimized BLAS libraries?

YES! Machine-specific optimized BLAS libraries are available for a variety of computer architectures. These optimized BLAS libraries are provided by the computer vendor or by an independent software vendor (ISV) (see list below). For further details, please contact your local vendor representative.

Two platform independant and free library alternatives are available:

  • ATLAS automatically generates an optimized BLAS library for his architecture. Some prebuilt optimized BLAS libraries are also available from the ATLAS site.

  • OpenBLAS (a fork of GotoBLAS) is a free open-source alternative to the vendor BLAS implementations. It is packaged on many end-user Linux distributions such as Ubuntu, and is thus readily available for users who perform calculations on their personal computers. Its speed is decent and fairly competitive with Vendor BLAS e.g. MKL.

If all else fails, the user can download a Fortran77 reference implementation of the BLAS from netlib. However, keep in mind that this is a reference implementation and is not optimized.

.BLAS vendor library List Last updated: Aug 15, 2017
Vender URL

AMD

AOCL

Apple

Accelerate framework

Arm

Arm Performance Libraries

Compaq

CXML

Cray

libsci

HP

MLIB

IBM

ESSL

Intel

MKL

NEC

PDLIB/SX

SGI

SCSL

SUN

Sun Performance Library

6) Where can I find Java BLAS?

Yes, Java BLAS are available. Refer to the following URLs: Java LAPACK and JavaNumerics The JavaNumerics webpage provides a focal point for information on numerical computing in Java.

7) What about shared memory machines? Are there multithreaded versions of the BLAS available?

ATLAS, Goto BLAS (two threads only) and most of the BLAS library available via vendors are multithreaded.