在Windows 7上安装pycuda-2013.1.1 64位

问题描述:

仅供参考,我有64位版本的Python 2.7和 我跟着the pycuda installation instruction安装pycuda。在Windows 7上安装pycuda-2013.1.1 64位

而且我在运行下面的脚本时没有任何问题。

import pycuda.driver as cuda 
import pycuda.autoinit 
from pycuda.compiler import SourceModule 
import numpy 
a = numpy.random.randn(4,4) 
a = a.astype(numpy.float32) 
a_gpu = cuda.mem_alloc(a.nbytes) 
cuda.memcpy_htod(a_gpu,a) 

但在那之后,在执行该语句时,

mod = SourceModule(""" 
__global__ void doublify(float *a) 
{ 
int idx = threadIdx.x + threadIdx.y * 4; 
a[idx] *= 2; 
} 
""") 

我得到了错误的信息

CompileError: nvcc compilation of c:\users\xxxx\appdata\local\temp\tmpaoxt97\kernel.cu failed [command: nvcc --cubin -arch sm_21 -m64 -Ic:\python27\lib\site-packages\pycuda\cuda kernel.cu] [stderr: nvcc : fatal error : nvcc cannot find a supported version of Microsoft Visual Studio. Only the versions 2008, 2010, and 2012 are supported

但我有VS 2008和VS 2010的计算机上安装并设置路径和nvcc配置文件按照指示。有人告诉我发生了什么事?

UPDATE1:正如cgohike指出的那样,在有问题的陈述之前运行以下语句将解决问题。

import os 
os.system("vcvarsamd64.bat") 
+0

您是否安装了Visual Studio 2008或更高版本? – JohnnyHK

呼叫"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" amd64"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" amd64python.exe之前。这将设置所有必要的环境变量,以使用来自Python或命令行的64位Visual Studio编译器。

那么,现在判断它为时尚早。即使有cgohike分辨率,我得到了同样的错误,当我跑等这样的脚本

import pycuda.gpuarray as gpuarray 
import pycuda.driver as cuda 
import pycuda.autoinit 
import numpy 
a_gpu = gpuarray.to_gpu(numpy.random.randn(4, 4)) 
print "a_gpu =" 
print a_gpu 
a_doubled = (2*a_gpu).get() 
print 
print "a_doubled =" 
print a_doubled 

然后我发现this answer.所以在我的情况,我添加以下行nvcc.profile

COMPILER-BINDIR = C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64 

在此之后,我没有更多的编译器错误。希望它能帮助别人。

+0

如何编辑nvcc.profile?在我的情况下,它根本不允许重写这个文件。我在将文件复制到C:\ Program文件位置以外的其他文件夹中,然后再将其粘贴到C:\ Program文件中后尝试对其进行编辑。当它被保存在输入行消失。你有没有可能对此有所了解? – Kanmani