在CentOS/Fedora上安装OpenBLAS

在CentOS/Fedora上安装OpenBLAS,centos,rpm,blas,openblas,mtj,Centos,Rpm,Blas,Openblas,Mtj,在一个Java项目中,我使用(MTJ)实现高效的矩阵乘法。这取决于,而这又取决于机器上安装的BLAS和LAPACK的优化实现。它专门查找/usr/lib64/libblas.so.3和/usr/lib64/liblapack.so.3来查找这些库 通过Yum安装blas和lapack时,我们会获得符号链接/usr/lib64/libblas.so.3和/usr/lib64/liblapack.so.3指向通过Yum安装的参考blas和lapack中的.so文件 在我的例子中,现在我们希望使用比参

在一个Java项目中,我使用(MTJ)实现高效的矩阵乘法。这取决于,而这又取决于机器上安装的BLAS和LAPACK的优化实现。它专门查找
/usr/lib64/libblas.so.3
/usr/lib64/liblapack.so.3
来查找这些库

通过Yum安装
blas
lapack
时,我们会获得符号链接
/usr/lib64/libblas.so.3
/usr/lib64/liblapack.so.3
指向通过Yum安装的参考
blas
lapack
中的.so文件

在我的例子中,现在我们希望使用比参考实现更快的实现。不管是我自己编译还是通过Yum安装,我最终得到的是
/usr/lib64/libopenblas-r0.2.18

现在,根据互联网上的任何指南,我应该将参考实现的符号链接替换为OpenBLAS实现的符号链接,最终得到如下结果:

libblas.so.3 -> libopenblas-r0.2.18.so
liblapack.so.3 -> libopenblas-r0.2.18.so
好的,我能做到!我可以使用
ln
,或者通过
备选方案
。如果我这样做了,我的代码将很高兴地使用快速OpenBLAS

但是,当
ldconfig
运行“我的超级棒”符号链接时,它们会被参考BLAS和LAPACK安装覆盖。然后,我的软件又变得悲伤和缓慢


所以我的问题是,如何在CentOS/Fedora上安装OpenBLAS,这样运行
ldconfig
就不会破坏它?我无法删除
blas
lapack
包,因为主机的其他客户端可能依赖它。相反,我想让操作系统明白OpenBLAS是
blas
lapack

的替代品,我不认为不删除参考实现就可以避免这种行为。 如果需要手动重建ld.so.cache,可以运行
ldconfig-X
以避免更新链接


除此之外,在ldconfig更新链接后,您很可能需要创建一个自定义脚本来恢复指向openblas的符号链接

建议通过Yum或者up2date安装
openblas compat
。这为我解决了这个问题。安装默认的
blas
软件包后,我的软件仍在使用OpenBLAS。

如果其他人依赖blas和lapack软件包,他们不也很可能依赖libblas。那么.3指向blas实现?