我按照http://deeplearning.net/software/theano/install_windows.html#install-windows的步骤安装了theano但遇到了问题。其中一个是默认情况下使用http://deeplearning.net/software/theano/install_windows.html#install-windows上的.theanorc
设置,在我的机器上nvcc
尝试以32位模式编译theano,因为我在python shell上尝试导入theano时会看到以下内容(请注意下面的-m32
):
['nvcc', '-shared', '-O3', '--use
/DEBUG', '-D HAVE_ROUND', '-m32',
然后遇到问题,因为在cublas.lib
下存储的32位lib下我的机器上找不到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\lib\Win32
确实不存在{这个文件是否存在于32位文件夹中的另一个用户系统上? )。我cublas.lib
存储在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\lib\x64
下,因此希望以64位模式进行编译。为此,我将.theanorc
更改为:
[nvcc]
flags = -m64 --use-local-env --cl-version=2013
但这并没有产生预期的效果。 nvcc
仍在尝试以32位模式编译:
['nvcc', '-shared', '-O3', '--use-local-env', '--cl-version=2013', '-Xlinker', '
/DEBUG', '-D HAVE_ROUND', '-m32', '-Xcompiler', '-m64,-DCUDA_NDARRAY_CUH=a3b91bc
是否有人知道如何修改.theanorc
的正确语法,以便nvcc
在编译期间使用-m64 flag?
- machine {32 | 64} -m指定32位与64位架构。
此选项的允许值:32,64。
答案 0 :(得分:2)
问题是你的PYTHON是32位python。我们不支持混合python,g ++和nvcc位大小。这意味着它们都必须是32位或64位。
确保将所有这些安装为64位。
如果你想尝试支持这种混合大小写,请检查theano / sandbox / cuda / nvcc_compiler.py,我们在那里进行编译。这里我们添加-m32标志:
https://github.com/Theano/Theano/blob/master/theano/sandbox/cuda/nvcc_compiler.py#L324
如果您完成这项工作,欢迎向Theano请求更改的公关。