【问题标题】:Why OpenBLAS Lapack not Available in Theano Windows?为什么 OpenBLAS Lapack 在 Theano Windows 中不可用?
【发布时间】:2017-04-17 02:41:28
【问题描述】:

我使用的是 Windows 10 64 位,并且已经安装了 theano。我已经从http://sourceforge.net/projects/openblas/files/v0.2.15/OpenBLAS-v0.2.15-Win64-int32.zip/download 下载了 OpenBLAS,并将 libopenblas.dll 也从minGW64_dll 放入了C:\openblas and other dll 文件中

我的.theanorc 文件:

[global]
floatX = float32
device = gpu

[nvcc]
flags= -LC:\Anaconda2\libs
compiler_bindir= C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin

[blas]
ldflags= -LC:\\openblas -lopenblas

当我尝试运行C:\Anaconda2\Lib\site-package\theano\misc\check_blas.py

我得到了这样的东西:

...
lapack_opt_info:
    libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'libiomp5md', 'libifportmd', 'mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'libiomp5md', 'libifportmd']
    library_dirs = ['C:/Program Files (x86)/Intel/Composer XE/mkl/lib/intel64']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['C:/Program Files (x86)/Intel/Composer XE/mkl/include']
blas_opt_info:
    libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'libiomp5md', 'libifportmd']
    library_dirs = ['C:/Program Files (x86)/Intel/Composer XE/mkl/lib/intel64']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['C:/Program Files (x86)/Intel/Composer XE/mkl/include']
openblas_lapack_info:
  NOT AVAILABLE
lapack_mkl_info:
    libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'libiomp5md', 'libifportmd', 'mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'libiomp5md', 'libifportmd']
    library_dirs = ['C:/Program Files (x86)/Intel/Composer XE/mkl/lib/intel64']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['C:/Program Files (x86)/Intel/Composer XE/mkl/include']
blas_mkl_info:
    libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'libiomp5md', 'libifportmd']
    library_dirs = ['C:/Program Files (x86)/Intel/Composer XE/mkl/lib/intel64']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['C:/Program Files (x86)/Intel/Composer XE/mkl/include']
mkl_info:
    libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'libiomp5md', 'libifportmd']
    library_dirs = ['C:/Program Files (x86)/Intel/Composer XE/mkl/lib/intel64']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['C:/Program Files (x86)/Intel/Composer XE/mkl/include']
...

看不懂,不过有写:

openblas_lapack_info:
  NOT AVAILABLE

正确吗?还是有什么错误?

我尝试使用命令打印 ldflags

print('blas.ldflags=', theano.config.blas.ldflags)

我认为我得到了正确的输出

('blas.ldflags=', '-LC:\\openblas -lopenblas')

那么,为什么当我使用 check_blas.py 进行测试时,我的 openblas 状态不可用?

我是 Theano 的新手,所以我希望这里的任何人都可以帮助我, 谢谢你

【问题讨论】:

    标签: python anaconda theano openblas


    【解决方案1】:

    我不认为 Theano 直接使用 OpenBLAS,我认为它只通过 numpy 使用它。所以你需要配置 numpy 来使用 OpenBLAS。这在 Windows 上似乎不是一件容易的事。

    See this thread for example.

    Theano 的check_blas.py 脚本正在打印您的 numpy 配置。该配置似乎全部设置为使用 MKL。如果您安装了 MKL(并获得了适当的许可),那么您就不需要 OpenBLAS。

    如果您没有安装 MKL,尽管有 numpy 配置,OpenBLAS 的替代方法是使用 Anaconda 的 MKL 扩展。这是一个商业产品,但学生和非商业研究人员可以免费获得许可。

    【讨论】:

      猜你喜欢
      • 2022-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-16
      • 2015-06-19
      • 1970-01-01
      相关资源
      最近更新 更多