2016-03-02 88 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。

相关问题