Rcpp sourceCpp编译器设置

时间:2018-02-21 23:13:36

标签: r rcpp

我正在使用Rcpp加速在R(3.4,Windows7)中重复调用的函数,我希望更改编译器设置。

我打电话的时候: sourceCpp("scoreseq1.1.cc", verbose=TRUE)

部分输出显示:

  

C:/RBuildTools/3.4/mingw_64/bin/g++ -I" C:/PROGRA~1/R/R-34~1.1/include" -O2 -Wall -mtune = core2 -c scoreseq1.1.cc -o scoreseq1.1.o

我想将-mtune更改为haswell,将-O2更改为-O3以寻求一些性能改进。

有没有办法通过sourceCppcppFunction执行此操作,我是否需要my.cc文件中的特殊标头,或者我是否需要修改系统上的某个文件? (如果是这样,什么文件?!)

谢谢!

2 个答案:

答案 0 :(得分:3)

不,你不能(轻松),一般不是来自某个功能。

这些设置是"已修复"从R本身建成时起。您可以编辑该文件 - 但每次重建/重新安装R时都必须这样做。

在我的方框中,文件为$(R RHOME)/etc/Makeconf

答案 1 :(得分:0)

以防万一有人遇到类似问题。您可以在C ++源代码中执行此操作。以下内容将覆盖命令行编译器设置:

void
__attribute__((optimize("-O3"),target("tune=haswell")))
foo() 
{
    // your code goes here
}

作为参考,请查看:https://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/Function-Attributes.html