—The performance bottleneck for many scientific applications is the cost of memory access inside linear algebra kernels. Tuning such kernels for memory efficiency is a complex task that degrades the productivity of computational scientists. Software libraries such as the Basic Linear Algebra Subprograms (BLAS) ameliorate this problem by providing a standard interface for which computer scientists and hardware vendors have created highly-tuned implementations. Scientific applications often require a sequence of BLAS operations, which presents further opportunities for memory optimization. However, because BLAS are tuned in isolation they do not take advantage of these opportunities. This phenomenon motivated the recent addition of several routines to the BLAS that each perform a sequence operations. Unfortunately, the exact sequence of operations needed in a given situation is highly application dependent, so many more such routines are needed. In this paper we present preliminary ...
Jeremy G. Siek, Ian Karlin, Elizabeth R. Jessup