C++中表达式模板的新向量化技术
摘要:静态加速循环模板(SALT):向量操作在高性能计算中起着重要作用,通常由高度优化的使用BLAS(基本线性代数子程序)接口的库提供。在C++中,模板和操作符重载允许将这些向量操作实现为表达式模板,这些模板在编译时构造自定义循环,并提供更抽象的接口。不幸的是,现有的表达式模板库缺乏快速BLAS(基本线性代数子程序)实现的性能。本文介绍一种新的方法——静态加速循环模板(SALT),通过将表达式模板与一种积极的循环展开技术相结合,来弥补性能差距。使用英特尔C++编译器和GNU编译器集合进行了基准测试,以评估我们的库与英特尔数学核心库以及Eigen模板库的性能。结果表明,该方法能够提供与最快的BLAS实现相当的优化效果,同时保留了模板库的便利性和灵活性。
作者:J. Progsch, Y. Ineichen and A. Adelmann
论文ID:1109.1264
分类:Mathematical Software
分类简称:cs.MS
提交时间:2011-09-07