vix.ing · top · new · best · stats · spec

Automatic Generation of Efficient Linear Algebra Programs

2019/07/31 by Henrik Barthels, Christos Psarras, Paolo Bientinesi · 1 citation
Computer Science · #Abstraction #Algebra over a field #Code (set theory) #Computation #Embedded Systems Design Techniques #Linear algebra #Numerical Methods and Algorithms #Numerical linear algebra #Parallel Computing and Optimization Techniques #Sequence (biology) #Symbolic computation #cs.MS

paper · pdf · doi:10.1145/3394277.3401836

published as Proceedings of the Platform for Advanced Scientific Computing Conference (2020) 1-11

openalex created_date 2019/07/12 · openalex publication_date 2020/06/18 · arxiv created 2020/08/07 · arxiv updated 2020/08/10 · openalex updated_date 2026/08/05

Abstract

The level of abstraction at which application experts reason about linear algebra computations and the level of abstraction used by developers of high-performance numerical linear algebra libraries do not match. The former is conveniently captured by high-level languages and libraries such as Matlab and Eigen, while the latter expresses the kernels included in the BLAS and LAPACK libraries. Unfortunately, the translation from a high-level computation to an efficient sequence of kernels is a task, far from trivial, that requires extensive knowledge of both linear algebra and high-performance computing. Internally, almost all high-level languages and libraries use efficient kernels; however, the translation algorithms are too simplistic and thus lead to a suboptimal use of said kernels, with significant performance losses. In order to both achieve the productivity that comes with high-level languages, and make use of the efficiency of low level kernels, we are developing Linnea, a code generator for linear algebra problems. As input, Linnea takes a high-level description of a linear algebra problem and produces as output an efficient sequence of calls to high-performance kernels. In 25 application problems, the code generated by Linnea always outperforms Matlab, Julia, Eigen and Armadillo, with speedups up to and exceeding 10×.

Citations

Cited by