Skip to main content

Unit 1.5.2 The BLAS-like Library Instantiation Software (BLIS)

BLIS provides the currently recommended open-source implementation of the BLAS for traditional CPUs. It is the version used in this course. Its extensive documentation (and source) can be found at https://github.com/flame/blis/. The techniques you learn in this course underlie the implementation of matrix-matrix multiplication in BLIS.

In addition to supporting the traditional BLAS interface, BLIS also exposes two more interfaces:

  • The BLIS Typed API, which is BLAS-like, but provides more functionalility and what we believe to be a more flexible interface for the C and C++ programming languages.

  • The BLIS Object-Based API, which elegantly hides many of the details that are exposed in the BLAS and Typed API interfaces.

BLIS is described in the paper

  • Field G. Van Zee and Robert A. van de Geijn, BLIS: A Framework for Rapidly Instantiating BLAS Functionality, ACM Journal on Mathematical Software, Vol. 41, No. 3, June 2015. You can access this article for free by visiting the Science of High-Performance Computing group publication webpage (http://shpc.ices.utexas.edu/publications.html) and clicking on the title of Journal Article 39.

Many additional related papers can be found by visiting the BLIS GitHub repository (https://github.com/flame/blis) or the Science of High-Performance Computing group publication webpage (http://shpc.ices.utexas.edu/publications.html).