我在嘗試安裝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位系統。
關於編譯/鏈接錯誤,是的,'-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不可用是一個單獨的問題 –
@RobertCrovella謝謝,我切換到64位Python,它的工作 – chouzhupk
@chouzhupk:請添加一個簡短的回答,描述您的解決方案 – talonmies