RcppEigen和向量化

时间:2018-12-06 03:38:30

标签: r eigen

在Eigen常见问题解答中指出you need to enable vectorization in the compiler

我正在尝试使用RcppEigen开发R软件包。如果用户无需手动编译带有指定标志的程序包即可获得最佳性能,我希望这样做。

希望在Eigen库中实现向量化的R软件包的最佳实践是什么?

2 个答案:

答案 0 :(得分:2)

完全按照FAQ的说明进行操作,并设置编译器标志。在测试了当前编译器支持的功能之后,您可能必须从脚本configure启用这些功能-CRAN可能仍会告诉您这些标志不可移植。

此外,仅在此处修复术语,在我们这里没有“库”:RcppEigen仅使用Eigen的 headers ,该模板被设计为模板化的仅标头包。

答案 1 :(得分:1)

我也是一个初学者,许多时间试图理解Rcpp可能与您@jds有关。我想在具有AVX架构的Dell Precision M2800上启用矢量化功能,因此我使用以下三次代码在{em> configure 文件中添加了-mavx2标志:

CXXFLAGS= -O3 -std=c++11 -Wall -mavx2

此代码更改使我的代码(一系列双重嵌套的循环)从4.1s加速到1.4s!

通过使用 configure clean 文件构建框架包来创建您的,了解如何修改sourceCpp使用的编译器标志由@nrussell在How to change and set Rcpp compile arguments

中完美展示的Makevars 文件