Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在windows 7 64位上安装pycuda-2013.1.1_Python_Pycuda - Fatal编程技术网

Python 在windows 7 64位上安装pycuda-2013.1.1

Python 在windows 7 64位上安装pycuda-2013.1.1,python,pycuda,Python,Pycuda,仅供参考,我有64位版本的Python 2.7和 我随后安装了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)

仅供参考,我有64位版本的Python 2.7和 我随后安装了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;
}
""")
我收到了错误信息

编译器错误:nvcc编译 c:\users\xxxx\appdata\local\temp\tmpaoxt97\kernel.cu失败 [命令:nvcc--cubin-arch sm_21-m64 -Ic:\python27\lib\site packages\pycuda\cuda kernel.cu][stderr:nvcc:fatal error:nvcc找不到受支持的Microsoft Visual Studio版本 Studio。仅支持2008、2010和2012版本

但是我已经在机器上安装了VS2008和VS2010,并按照指示设置了路径和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编译器。

嗯,现在将其称为final还为时过早。即使使用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
然后我发现,在我的案例中,我在nvcc.profile中添加了以下行

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

在此之后,我再也没有遇到编译器错误。希望对其他人有所帮助。

您是否安装了Visual Studio 2008或更高版本?如何编辑nvcc.profile?在我的情况下,它根本不允许重写此文件。我尝试在将文件复制到C:\Program files位置以外的另一个文件夹后对其进行编辑,然后再次将其粘贴到C:\Pro中gram文件。当它保存在输入的行上时,它会消失。你知道这方面的情况吗?