2018 · 32 citations · 29 references
ComputingComputer EngineeringComputer ScienceAlgorithmsOptimizationProgramming LanguagesCompiler ConstructionComputational AlgebraLarge-scale OptimizationLinear AlgebraMatrix ComputationNumerical Linear AlgebraCholesky DecompositionComputational Linear AlgebraGaussian Process RegressionLinear System SolversLu DecompositionMatrix MultiplicationSmall-scale ProcessingSparse Linear Algebra
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.
29
Julia: A Fresh Approach to Numerical Computing
Jeff Bezanson, Alan Edelman, Stefan Karpinski et al. · SIAM Review · 2017 · 6.3K citations
A set of level 3 basic linear algebra subprograms
Jack Dongarra, Jeremy Du Croz, Sven Hammarling et al. · ACM Transactions on Mathematical Software · 1990 · 1.8K citations · Full text
A practical automatic polyhedral parallelizer and locality optimizer
Uday Bondhugula, Albert Hartono, J. Ramanujam et al. · 2008 · 883 citations
SPIRAL: Code Generation for DSP Transforms
Markus Püschel, José M. F. Moura, Jeremy Johnson et al. · Proceedings of the IEEE · 2005 · 829 citations