首页> 外文期刊>Science of Computer Programming >DESOLA: An active linear algebra library using delayed evaluation and runtime code generation
【24h】

DESOLA: An active linear algebra library using delayed evaluation and runtime code generation

机译:DESOLA:使用延迟评估和运行时代码生成的主动线性代数库

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

摘要

Active libraries can be defined as libraries which play an active part in the compilation, in particular, the optimisation of their client code. This paper explores the implementation of an active dense linear algebra library by delaying evaluation of expressions built using library calls, then generating code at runtime for the compositions that occur. The key optimisations in this context are loop fusion and array contraction. Our prototype C++ implementation, DESOLA, automatically fuses loops arising from different client calls, identifies unnecessary intermediate temporaries, and contracts temporary arrays to scalars. Performance is evaluated using a benchmark suite of linear solvers from ITL (Iterative Template Library), and is compared with MTL (Matrix Template Library), ATLAS (Automatically Tuned Linear Algebra) and lMKL(lntel Math Kernel Library). Excluding runtime compilation overheads (caching means they occur only on the first iteration), for larger matrix sizes, performance matches or exceeds MTL; when fusion of matrix operations occurs, performance exceeds that of ATLAS and IMKL.
机译:可以将活动库定义为在编译(尤其是其客户端代码的优化)中起积极作用的库。本文通过延迟对使用库调用构建的表达式的求值,然后在运行时为出现的合成生成代码来探索主动密集线性代数库的实现。在这种情况下,关键的优化是循环融合和数组收缩。我们的原型C ++实现DESOLA可自动融合由不同的客户端调用引起的循环,识别不必要的中间临时对象并将临时数组收缩为标量。使用来自ITL(迭代模板库)的线性求解器的基准套件评估性能,并将其与MTL(矩阵模板库),ATLAS(自动调整的线性代数)和lMKL(英特尔数学内核库)进行比较。不包括运行时编译开销(缓存意味着它们仅在第一次迭代时发生),对于更大的矩阵大小,性能达到或超过MTL;当发生矩阵运算融合时,性能将超过ATLAS和IMKL。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号