问题描述
我对 BLAS 和 Lapack 设置很陌生。正在执行
sessioninfo()
总是回来
Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib
我想知道如何调用 BLAS
?因为我看到很多fork的默认矩阵产品都有BLAS
和LAPACK
。
另外,如何调用 Intel MKI
?我已经在我的 macOS 上安装了它,但仍然想知道如何使用它。
另外,我的 R
是 4.0.5
而 macOS
是 macOS Big Sur 11.2.3
解决方法
请按照以下说明使用默认的 BLAS、LAPACK 使用 gnu 编译器链构建 R。
$ tar -xzvf R-4.0.5.tar.gz
$ cd R-4.0.5
$ ./configure
(或者 $./configure --with-readline=no --with-x=no 如果包 readline 和 X11 没有安装)
$make
(不是 $ make install,所以,我们不会污染系统目录)
$ ldd bin/exec/R
(为了确保它会链接 libRblas.so,尽管它可能会显示 libRblas.so => 未找到)
已安装R的开发者,请定位到libRblas.so的路径和 libRlapack.so(或 libR.so),例如 $cd /usr/local/lib64/R
$ cd lib
$ mv libRblas.so libRblas.so.keep
$ln –s $(MKLROOT)/mkl/lib/intel64/libmkl_rt.so libRblas.so
同样的方法,你也可以替换 LAPACK libRlapack.so 库
($mv libRlapack.so libRlapack.so.keep $ln –s $(MKLROOT)/mkl/lib/intel64/libmkl_rt.so libRlapack.so)
如果你已经用 libR.so 预构建了 R,请将其替换为 $(MKLROOT)/mkl/lib/intel64/libmkl_rt.so
你也可以通过下面的链接
https://software.intel.com/content/www/us/en/develop/articles/using-intel-mkl-with-r.html