僅供參考,我有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")
您是否安裝了Visual Studio 2008或更高版本? – JohnnyHK