我在尝试安装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