如何修改.theanorc以便nvcc在编译期间使用-m64标志?

时间:2015-04-03 17:04:01

标签: windows theano

我按照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。

1 个答案:

答案 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请求更改的公关。