Program Generation for Small-Scale Linear Algebra Applications

05/12/2018
by   Daniele G. Spampinato, et al.
0

We present SLinGen, a program generation system for linear algebra. The input to SLinGen is an application expressed mathematically in a linear-algebra-inspired language (LA) that we define. LA provides basic scalar/vector/matrix additions/multiplications and higher level operations including linear systems solvers, Cholesky and LU factorizations. The output of SLinGen is performance-optimized single-source C code, optionally vectorized with intrinsics. The target of SLinGen are small-scale computations on fixed-size operands, for which a straightforward implementation using optimized libraries (e.g., BLAS or LAPACK) is known to yield suboptimal performance (besides increasing code size and introducing dependencies), but which are crucial in control, signal processing, computer vision, and other domains. Internally, SLinGen uses synthesis and DSL-based techniques to optimize at a high level of abstraction. We benchmark our program generator on three prototypical applications: the Kalman filter, Gaussian process regression, and an L1-analysis convex solver, as well as basic routines including Cholesky factorization and solvers for the continuous-time Lyapunov and Sylvester equations. The results show significant speed-ups compared to straightforward C with Intel icc and clang with a polyhedral optimizer, as well as library-based and template-based implementations.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/30/2019

Linnea: Automatic Generation of Efficient Linear Algebra Programs

The translation of linear algebra computations into efficient sequences ...
research
07/05/2019

Automatic Generation of Efficient Linear Algebra Programs

The level of abstraction at which application experts reason about linea...
research
08/27/2019

Filtering and Prediction of the Blood Glucose Concentration using an Android Smart Phone and a Continuous Glucose Monitor

In this paper we numerically assess the performance of Java linear algeb...
research
11/21/2019

The Linear Algebra Mapping Problem

We observe a disconnect between the developers and the end users of line...
research
08/22/2022

MOM: Matrix Operations in MLIR

Modern research in code generators for dense linear algebra computations...
research
08/04/2021

High-Performance Level-1 and Level-2 BLAS

The introduction of the Basic Linear Algebra Subroutine (BLAS) in the 19...
research
05/09/2018

A User-Friendly Hybrid Sparse Matrix Class in C++

When implementing functionality which requires sparse matrices, there ar...

Please sign up or login with your details

Forgot password? Click here to reset