不确定我的Python/Numpy版本是否使用了优化的Blas/Lapack库



我在这里读到,"确保numpy在系统上使用Blas/lapack库的优化版本很重要。"

我输入:

import numpy as np
np.__config__.show()

我得到以下结果:

blas_mkl_info:
  NOT AVAILABLE
blis_info:
  NOT AVAILABLE
openblas_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/home/anaconda3/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
blas_opt_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/home/anaconda3/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
lapack_mkl_info:
  NOT AVAILABLE
openblas_lapack_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/home/anaconda3/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
lapack_opt_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/home/anaconda3/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]

这是否意味着我的numpy版本使用了优化的blas/lapack库,如果没有,我该如何设置numpy,以便使用优化版本?

一种。OpenBlas很好。我刚刚取了第一个链接,我可以在Google上找到" openblas,atlas,mkl比较"。

http://markus-beuckelmann.de/blog/boosting-numpy-blas.html

现在,这不是整个故事。根据所需的算法,差异可能不是/略有不同。实际上,没有什么比运行自己的代码相对于不同的实现了。

我在各种线性代数问题,SVD,EIG,真实和伪倒置,分解...对不同的OSS上的单核/多核算中的平均最喜欢的人:

macOS:加速框架(与操作系统一起出现)Linux/Windows:

  1. MKL
  2. 距离很远,但仍然很安静:Atlas和Openblas on Par
  3. ACML即使在AMD处理器上也一直令人失望

tldr:您的设置很好。但是,如果您想从CPU/RAM/主板组合中挤出最后一滴血液,则需要MKL。当然,它的价格很高,但是如果您可以将硬件一半的回报付出,那么也许值得。而且,如果您编写开源包,则可以免费使用MKL用于开发目的。

跟踪在macOS上加载的库,

export DYLD_PRINT_LIBRARIES  # see man dyld

,要查看libs xx.dylibxx.so依次加载的

otool -L xx.dylib

(对不起,不知道其他平台)。


另一个问题是,这有关系吗?MacOS加速,OpenBlas,MKL ...?用不同的用户问题,库,测量运行时,编译器,多核,回忆...是一个艰巨的任务。有人知道网络上有大范围的测试台吗?基准测试 - python-vs-c-c-using-blas and-numpy从2014年开始?

另请参见:
Google OpenBlas Benchmark Macos Python:31000命中

numpy-site.cfg(由pip-> setup.py使用)提到了几个blas/lapack替代方案,"尚未通过numpy或scipy进行基准测试"。

numpy和Scipy放弃了对加速的支持在2018年。

相关内容

  • 没有找到相关文章

最新更新