Reference

2009
Automating the Generation of Composed Linear Algebra Kernels
Geoffrey Belter, E.R. Jessup, Ian Karlin, and Jeremy G. Siek
SC 2009: International Conference on High Performance Computing Networking, Storage and Analysis

Abstract

Memory bandwidth limits the performance of important kernels in many scientific applications. Such applications often use sequences of Basic Linear Algebra Subprograms (BLAS), and highly efficient implementations of those routines enable scientists to achieve high performance at little cost. However, tuning the BLAS in isolation misses opportunities for memory optimization that result from composing multiple subprograms. Because it is not practical to create a library of all BLAS combinations, we have developed a domain-specific compiler that generates them on demand. In this paper, we describe a novel algorithm for compiling linear algebra kernels and searching for the best combination of optimization choices. We also present a new hybrid analytic/empirical method for quickly evaluating the profitability of each optimization. We report experimental results showing speedups of up to 130% relative to the GotoBLAS on an AMD Opteron and up to 137% relative to MKL on an Intel Core 2.

BibTeX

@string{SC = "International Conference on High Performance Computing Networking, Storage and Analysis (SC)"}
@inproceedings{bto-sc09,
  author = {Geoffrey Belter and E.R. Jessup and Ian Karlin and Jeremy G. Siek},
  title = {Automating the Generation of Composed Linear Algebra Kernels},
  booktitle = SC,
  year = {2009},
}