使用MKL配置R --enable-BLAS-shlib

时间:2016-07-24 18:48:01

标签: r linux ubuntu intel-mkl

我正在尝试在Ubuntu Server 16.04上编译R 3.3.1。我以前在同一台计算机上成功编译了这个版本的R,但现在我无法编译R。

我的目标是使用HiPLARM package。我一直在关注HiPLARM的安装说明,所以我需要用共享BLAS重新编译R (我正在使用MKL)。我卸载了以前的安装,并且我已将--enable-BLAS-shlib标记添加到configure,但编译失败。当我删除附加标志(并返回到我原来的配置设置)时,编译似乎工作,但安装失败。我不知道我的系统会发生什么变化,这会让我用相同的安装说明成功编译相同版本的R,但事实并非如此。

以下是具体细节。我运行这个脚本:

export MKLPATH=/opt/intel/mkl/lib/intel64_lin
export MKLINCLUDE=/opt/intel/mkl/include

export R_PAPERSIZE=letter
export R_BATCHSAVE=--no-save

export FFLAGS="-I$MKLINCLUDE"
export CFLAGS="-march=native -O3 -m64 -I$MKLINCLUDE"
export CXXFLAGS="-march=native -O3 -m64 -I$MKLINCLUDE"
export FCFLAGS="-I$MKLINCLUDE"
MKL="-L$MKLPATH -Wl,--no-as-needed -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm -ldl"

./configure --with-blas="$MKL" --with-lapack

配置摘要按预期显示,因此我使用make进行编译,除了以下内容外,一切正常:

main.c: In function ‘dummy_ii’:
main.c:1656:12: warning: function returns address of local variable [-Wreturn-local-addr]
    return (uintptr_t) ⅈ

当我从bin目录运行R时,一切似乎都正常工作。与没有MKL相比,我可以在更短的时间内将两个5000x5000的随机正常绘制矩阵相乘。但是,当我使用make installcheckinstall时,我收到以下错误:

installing doc ...
/usr/bin/install: cannot stat 'NEWS': No such file or directory
/usr/bin/install: cannot stat 'NEWS.pdf': No such file or directory
/usr/bin/install: cannot stat 'NEWS.rds': No such file or directory
/usr/bin/install: cannot stat 'NEWS': No such file or directory
/usr/bin/install: cannot stat 'NEWS.pdf': No such file or directory
Makefile:119: recipe for target 'install-sources2' failed
make[1]: *** [install-sources2] Error 1

此外,当我尝试在我的脚本中使用--enable-BLAS-shlib标志时,我收到许多implicit declaration of function的警告,并且编译最终会因许多undefined reference错误而失败。我找到this post,但脚本对我来说不成功(也许是因为我没有使用英特尔编译器?)。

非常感谢任何帮助!

0 个答案:

没有答案