首页> 外文期刊>ACM transactions on mathematical software >Linnea: Automatic Generation of Efficient Linear Algebra Programs
【24h】

Linnea: Automatic Generation of Efficient Linear Algebra Programs

机译:Linnea:自动生成高效的线性代数程序

获取原文
获取原文并翻译 | 示例

摘要

The translation of linear algebra computations into efficient sequences of library calls is a non-trivial task that requires expertise in both linear algebra and high-performance computing. Almost all high-level languages and libraries for matrix computations (e.g., Matlab, Eigen) internally use optimized kernels such as those provided by BLAS and LAPACK; however, their translation algorithms are often too simplistic and thus lead to a suboptimal use of said kernels, resulting in significant performance losses. To combine the productivity offered by high-level languages, and the performance 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; as output, it returns an efficient sequence of calls to high-performance kernels. Linnea uses a custom best-first search algorithm to find a first solution in less than a second, and increasingly better solutions when given more time. In 125 test problems, the code generated by Linnea almost always outperforms Matlab, Julia, Eigen, and Armadillo, with speedups up to and exceeding 10x.
机译:线性代数计算成高效序列的图书馆调用是一种非琐碎的任务,需要线性代数和高性能计算的专业知识。几乎所有的高级语言和矩阵计算的库(例如,Matlab,EIGEN)内部使用优化的内核,例如Blas和Lapack提供的内核;然而,它们的翻译算法通常太简单,因此导致了所述核的次优,导致显着的性能损失。要结合高级语言提供的生产率,以及低级内核的性能,我们正在开发Linnea,用于线性代数问题的代码发生器。作为输入,Linnea采用线性代数问题的高级描述;作为输出,它返回对高性能内核的有效呼叫序列。 Linnea使用自定义Best-First搜索算法在给予更多时间时在少于一秒和越来越好的解决方案中找到第一个解决方案。在125个测试问题中,Linnea生成的代码几乎总是优于Matlab,Julia,Eigen和Armadillo,加速到10倍。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号