2015-11-16 3 views
0

Я использую Windows 10 64bit и уже установил theano. Я скачал OpenBLAS от: http://sourceforge.net/projects/openblas/files/v0.2.15/OpenBLAS-v0.2.15-Win64-int32.zip/download и положить libopenblas.dll в C:\openblas and other dll файл из minGW64_dll, аПочему OpenBLAS Lapack не доступен в Windows?

мой .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 не доступный?

Я новичок в Теано, так что я надеюсь, что здесь кто-нибудь может мне помочь, Спасибо

ответ

1

Я не думаю, что Theano использует OpenBLAS непосредственно, я думаю, что он использует его только через NumPy. Поэтому вам нужно настроить numpy для использования OpenBLAS. Это не простая задача для Windows.

See this thread for example.

Ваша конфигурация numpy печатается с помощью сценария Theano's check_blas.py. Эта конфигурация, похоже, настроена для использования MKL. Если у вас установлена ​​MKL (и соответствующая лицензия), вам не нужно OpenBLAS.

Если у вас нет MKL, несмотря на конфигурацию numpy, альтернативой OpenBLAS является использование расширений MKL от Anaconda. Это коммерческий продукт, но лицензия бесплатна для студентов и некоммерческих исследователей.

Смежные вопросы