arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 1805.04775cs.PLcs.MS
收藏

小规模线性代数应用的程序生成

Program Generation for Small-Scale Linear Algebra Applications

Daniele G. Spampinato, Diego Fabregat-Traver, Paolo Bientinesi, Markus Pueschel

摘要:

介绍了一个线性代数程序生成系统SLinGen。SLinGen的输入是用我们定义的线性代数语言(LA)数学表达的应用程序。LA提供基本的标量/向量/矩阵加法/乘法和更高级别的操作,包括线性系统求解器,Cholesky和LU因子分解。SLinGen的输出是性能优化的单源C代码,可以选择使用intrinsic进行向量化。SLinGen的目标是在固定大小的操作数上进行小规模计算,为此,使用优化库(例如,BLAS或LAPACK)已知会产生次优性能(除了增加代码大小和引入依赖性之外),但这在控制、信号处理、计算机视觉和其他领域中至关重要。在内部,SLinGen使用合成和基于DSL的技术在高抽象级别上进行优化。我们基准测试我们的程序生成器上的三个原型应用程序:卡尔曼滤波器,高斯过程回归,和L1分析凸解算器,以及基本例程,包括Cholesky分解和求解器的连续时间李雅普诺夫和西尔维斯特方程。结果显示,与直接使用Intel icc和clang的多面体优化器以及基于库和基于模板的实现相比,速度有了显着提高。

英文摘要:

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.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑