繁体   English   中英

Numpy与ATLAS或OpenBLAS?

[英]Numpy with ATLAS or OpenBLAS?

在花了大量时间从源代码构建ATLAS之后,我在OpenSUSE 13.1存储库中发现了libopenblas和libatals。 我的问题是

  1. 是否易于安装(无需在您自己的计算机上进行调整)存储库中的“libatlas”真的能提高计算性能吗?

  2. OpenBLAS比ATLAS更好还是只比Linux中的易安装“libatlas”更好? 请参阅更快的R使用OpenBLAS:比ATLAS更好,切换到Ubuntu很简单

  3. 我跟着这篇文章使用OpenBLAS编译Numpy,但找不到“numpy.core._dotblas”模块。 更多的我无法同时使用ATLAS和OpenBLAS构建Numpy。

  4. 有人可以发布.py文件或bash代码来进行ATLAS和OpenBLAS之间的比较吗? 例如。

  5. 我使用自己的ATLAS构建了Numpy-1.9,从源代码编译了OpenBLAS ,并在OpenSUSE 13.1的存储库中安装了“libopenblaso”(OpenMP版本)和“libopenblasp”(pthreads版本)。 如何配置链接和库,以便在不重建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>

您可以使用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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM