【问题标题】:Installing pycuda-2013.1.1 on windows 7 64 bit在 Windows 7 64 位上安装 pycuda-2013.1.1
【发布时间】:2013-09-26 17:05:51
【问题描述】:

仅供参考,我有 64 位版本的 Python 2.7 和 我跟着the pycuda installation instruction安装了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: 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: 致命错误: nvcc 找不到支持的 Microsoft Visual 版本 工作室。仅支持 2008、2010 和 2012 版本

但我在机器上安装了 VS 2008 和 VS 2010,并按照说明设置路径和 nvcc 配置文件。有人告诉我这是怎么回事吗?

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

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

【问题讨论】:

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

标签: python pycuda


【解决方案1】:

好吧,现在说它是最终的还为时过早。即使使用 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

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

【讨论】:

  • 如何编辑 nvcc.profile ?就我而言,它根本不允许重写此文件。在将文件复制到 C:\Program 文件位置以外的另一个文件夹中,然后将其再次粘贴到 C:\Program 文件中后,我尝试对其进行编辑。当它被保存在输入的行上时消失。你有没有机会知道这件事?
【解决方案2】:

python.exe 之前致电"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 或命令行使用 64 位 Visual Studio 编译器。

【讨论】:

    猜你喜欢
    • 2013-08-10
    • 2011-01-26
    • 2014-04-19
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    相关资源
    最近更新 更多