我正在使用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
以寻求一些性能改进。
有没有办法通过sourceCpp
或cppFunction
执行此操作,我是否需要my.cc文件中的特殊标头,或者我是否需要修改系统上的某个文件? (如果是这样,什么文件?!)
谢谢!
答案 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。