2016-03-02 92 views
-1

我在嘗試安裝Theano,這是我的情況。在Windows上安裝Thenth with Enthought Canopy

該系統是Windows 10(64位),CUDA 7.5與Visual Studio 2013一起安裝。Python發行版是Enthought Canopy(2.7.10,32位),帶有pip,numpy(1.9.2-3)和scipy(0.17.0-2)。安裝如下, 1.用PIP安裝Theano(0.7) 2.使用enpkg工具安裝mingw(4.8.1-2)和libpython(1.2); 3.將新創建的libpython27.a複製到$ {PYTHONHOME}/Libs; 4.編輯和保存.theanorc.txt在c:\用戶\ $ {} MYNAME作爲

[global] 
devive=gpu 
floatX=float32 

[blas] 
ldflags=${PYTHONHOME}\Scripts -lmk2_core -lmk2_intel_thread -lmk2_rt 

[nvcc] 
flags=-LC:\Users\${myName}\AppData\Local\Enthought\Canopy32\User\libs 
compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin 

[gcc] 
cxxflags= 

當我嘗試導入theano,我得到以下警告和錯誤:

mod.cu(1019): warning: statement is unreachable

mod.cu(1019): warning: statement is unreachable

mod.cu LINK : fatal error LNK1181: cannot open input file 'cublas.lib'

['nvcc', '-shared', '-O3', '-LC:\Users\${myName}\AppData\Local\Enthought\Canopy32\User\libs', '--compiler-bindir', 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin', '-Xlinker', '/DEBUG', '-D HAVE_ROUND', '-m32', '-Xcompiler', '-DCUDA_NDARRAY_CUH=11b90075e2397c684f9dc0f7276eab8f,-D NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION,/Zi,/MD', '-IC:\Users\${myName}\AppData\Local\Enthought\Canopy32\User\lib\site-packages\theano\sandbox\cuda', '-IC:\Users\${myName}\AppData\Local\Enthought\Canopy32\App\appdata\canopy-1.6.2.3262.win-x86\lib\site-packages\numpy\core\include', '-IC:\Users\${myName}\AppData\Local\Enthought\Canopy32\App\appdata\canopy-1.6.2.3262.win-x86\include', '-o', 'C:\Users\${myName}\AppData\Local\Theano\compiledir_Windows-8-6.2.9200-Intel64_Family_6_Model_71_Stepping_1_GenuineIntel-2.7.10-32\cuda_ndarray\cuda_ndarray.pyd', 'mod.cu', '-LC:\Users\${myName}\AppData\Local\Enthought\Canopy32\User\EGG-INFO\mingw\usr\x86_64-w64-mingw32\lib', '-LC:\Users\${myName}\AppData\Local\Enthought\Canopy32\App\appdata\canopy-1.6.2.3262.win-x86\libs', '-LC:\Users\${myName}\AppData\Local\Enthought\Canopy32\App\appdata\canopy-1.6.2.3262.win-x86', '-lpython27', '-lcublas', '-lcudart']

ERROR (theano.sandbox.cuda): Failed to compile cuda_ndarray.cu: ('nvcc return status', 2, 'for cmd', 'nvcc -shared -O3 -LC:\Users\${myName}\AppData\Local\Enthought\Canopy32\User\libs --compiler-bindir C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin -Xlinker /DEBUG -D HAVE_ROUND -m32 -Xcompiler -DCUDA_NDARRAY_CUH=11b90075e2397c684f9dc0f7276eab8f,-D NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION,/Zi,/MD -IC:\Users\${myName}\AppData\Local\Enthought\Canopy32\User\lib\site-packages\theano\sandbox\cuda -IC:\Users\${myName}\AppData\Local\Enthought\Canopy32\App\appdata\canopy-1.6.2.3262.win-x86\lib\site-packages\numpy\core\include -IC:\Users\${myName}\AppData\Local\Enthought\Canopy32\App\appdata\canopy-1.6.2.3262.win-x86\include -o C:\Users\${myName}\AppData\Local\Theano\compiledir_Windows-8-6.2.9200-Intel64_Family_6_Model_71_Stepping_1_GenuineIntel-2.7.10-32\cuda_ndarray\cuda_ndarray.pyd mod.cu -LC:\Users\${myName}\AppData\Local\Enthought\Canopy32\User\EGG-INFO\mingw\usr\x86_64-w64-mingw32\lib -LC:\Users\${myName}\AppData\Local\Enthought\Canopy32\App\appdata\canopy-1.6.2.3262.win-x86\libs -LC:\Users\${myName}\AppData\Local\Enthought\Canopy32\App\appdata\canopy-1.6.2.3262.win-x86 -lpython27 -lcublas -lcudart')

WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu is not available (error: cuda unavilable)

我想知道是否是導致問題的32位Python與64位系統。

+1

關於編譯/鏈接錯誤,是的,'-m32'告訴'nvcc'生成一個32位可執行文件。 CUDA 7.5中沒有32位版本的'cublas.lib'。實際上在[CUDA 7.0發佈說明](http://developer.download.nvidia.com/compute/cuda/7_0/Prod/doc/CUDA_Toolkit_Release_Notes.pdf)中給出了32位cublas移除的通知「以下內容CUDA 驅動程序或CUDA工具包不再支持以下功能:‣32位版本的CUDA Toolkit科學庫,包括cuBLAS, cuSPARSE,cuFFT,cuRAND和NPP「。警告... gpu不可用是一個單獨的問題 –

+0

@RobertCrovella謝謝,我切換到64位Python,它的工作 – chouzhupk

+0

@chouzhupk:請添加一個簡短的回答,描述您的解決方案 – talonmies

回答

0

由於@Robert在評論中指出,警告提示兼容性問題。我終於通過安裝64位Enthought Canopy python發行版解決了這個問題,其他步驟與問題中描述的相同。

值得一提的是,mingw可以由Enthough Canopy軟件包管理器來安裝,所以如果你使用的是發行版,你不必下載獨立的mingw。