在Windows 7 64位上安装pycuda-2013.1.1
问题内容:
仅供参考,我有64位版本的python
2.7,我按照pycuda安装说明安装pycuda。
而且我在运行以下脚本时没有任何问题。
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:c:\ users \ xxxx \ appdata \ local \ temp \ tmpaoxt97 \
kernel.cu的nvcc编译失败[命令:nvcc –cubin -arch sm_21 -m64 -Ic:\ python27 \ lib \
site-packages \ pycuda \ cuda kernel.cu]
[stderr:nvcc:致命错误:nvcc找不到支持的Microsoft Visual Studio版本。仅支持2008、2010和2012版本
但是我在计算机上安装了VS 2008和VS 2010,并按照说明设置了路径和nvcc配置文件。有人告诉我怎么回事吗?
UPDATE1 :正如cgohike指出的那样,在有问题的语句之前运行以下语句将解决问题。
import os
os.system("vcvarsamd64.bat")
问题答案:
致电"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" amd64
之前python.exe
。这将设置所有必需的环境变量,以使用来自Python或命令行的64位Visual Studio编译器。