在从源代码构建ATLAS上花了大量时间之后,我在OpenSUSE 13.1存储库中发现了libopenblas和libatals。 我的问题是
在存储库中轻松安装(无需在自己的计算机上调优)“libatlas”是否真的能提高计算性能?
OpenBLAS比ATLAS更好,还是只比Linux中的易安装“libatlas”更好?请参阅For faster R use OpenBLAS instead: better than ATLAS, trivial to switch to on Ubuntu。
我关注此帖子Compiling Numpy with OpenBLAS但找不到“numpy.core._dotblas”模块。更多的是,我无法同时使用ATLAS和OpenBLAS构建Numpy。
有人可以发布.py文件或bash代码来进行ATLAS和OpenBLAS之间的比较吗? For example.
我使用自己的ATLAS构建了Numpy-1.9,从源代码编译了OpenBLAS并安装了“libopenblaso”(OpenMP版本)和“libopenblasp”(pthreads版本) OpenSUSE 13.1的存储库。如何配置链接和库,以便在不重建Numpy-1.9软件包的情况下告诉Numpy-1.9使用OpenBLAS而不是ATLAS。
注意:如果在存储库中安装“libatlas”,则ATLAS不会针对您的计算机进行调整,并且计算性能也不会太高。因此,我首先构建并调整了ATLAS,然后使用我自己的ATLAS构建了Numpy。之后我尝试将OpenBLAS链接到Numpy,但失败了。
非常感谢提前!
感谢@Dmitry的快速回复! 但问题没有解决......
$ sudo zypper in libopenblasp0
The following NEW package is going to be installed:
libopenblasp0
1 new package to install.
Overall download size: 3.0 MiB. After the operation, additional 30.3 MiB will be used.
Continue? [y/n/? shows all options] (y):
Retrieving package libopenblasp0-0.2.11-11.1.x86_64 (1/1), 3.0 MiB ( 30.3 MiB unpacked)
Retrieving: libopenblasp0-0.2.11-11.1.x86_64.rpm ...........................[done (2.1 MiB/s)]
(1/1) Installing: libopenblasp0-0.2.11-11.1 ............................................[done]
Additional rpm output:
/sbin/ldconfig: Can't link /usr/lib64//usr/local/atlas/lib/libtatlas.so to libopenblas.so.0
问:为什么会出现一个有趣的双斜线“..64 // usr ..”?
$ /usr/sbin/update-alternatives --config libblas.so.3
Selection Path Priority Status
------------------------------------------------------------
0 /usr/local/atlas/lib/libtatlas.so 70 auto mode
1 /usr/lib64/blas/libblas.so.3 50 manual mode
2 /usr/lib64/libopenblasp.so.0 20 manual mode
3 /usr/local/atlas/lib/libcblas.a 50 manual mode
4 /usr/local/atlas/lib/libptcblas.a 60 manual mode
5 /usr/local/atlas/lib/libsatlas.so 65 manual mode
* 6 /usr/local/atlas/lib/libtatlas.so 70 manual mode
问:这个配置是否合适,因为某些静态库“.a”是链接的?
注意:“libopenblasp.so.0”在“zypper in”之后自动链接,而所有“atlas”库都是由命令手动创建的:
$ /usr/sbin/update-alternatives --install /usr/lib64/blas/libblas.so.3 libblas.so.3 /usr/local/atlas/lib/libxxxx.x <Integer>
答案 0 :(得分:5)
您可以使用update-alternatives在系统BLAS和LAPACK实现之间切换。例如:
/usr/sbin/update-alternatives --config libblas.so.3
http://en.opensuse.org/openSUSE:Science_Linear_algebra_libraries
我不知道atlas软件包,但我们提供openblas支持multiarch。 Math内核包括所有特定于处理器的优化,并动态设置正确的变量。注意,openblas库有3个版本:serial,pthreads和openmp版本。你需要使用pthreads或openmp。