Windows 上的 Anaconda Pycuda CompileError

Pycuda CompileError with Anaconda on Windows

我刚刚开始研究 Cuda,尤其是 PyCuda。我目前在 Windows 7 上使用 Anaconda。我已经使用 Anaconda Prompt 安装了 Pycuda 并尝试了以下代码,我直接从 PyCuda 文档网页复制了这些代码。但是我有一个 CompileError。有人有什么建议吗?

import pycuda.autoinit
import pycuda.driver as drv
import numpy

from pycuda.compiler import SourceModule
mod = SourceModule("""
__global__ void multiply_them(float *dest, float *a, float *b)
{
  const int i = threadIdx.x;
  dest[i] = a[i] * b[i];
}
""")

multiply_them = mod.get_function("multiply_them")

a = numpy.random.randn(400).astype(numpy.float32)
b = numpy.random.randn(400).astype(numpy.float32)

dest = numpy.zeros_like(a)
multiply_them(drv.Out(dest), drv.In(a), drv.In(b), block=(400,1,1),grid(1,1))

print(dest-a*b)

Traceback (most recent call last):

  File "<ipython-input-2-06c8e60d26ae>", line 12, in <module>
    """)

  File "C:\Users\Moritz\Anaconda3\lib\site-packages\pycuda\compiler.py",         line 291, in __init__
    arch, code, cache_dir, include_dirs)

  File "C:\Users\Moritz\Anaconda3\lib\site-packages\pycuda\compiler.py",    line 255, in compile
    return compile_plain(source, options, keep, nvcc, cache_dir, target)

  File "C:\Users\Moritz\Anaconda3\lib\site-packages\pycuda\compiler.py",   line 137, in compile_plain
    stderr=stderr.decode("utf-8", "replace"))

CompileError: nvcc compilation of C:\Users\Moritz\AppData\Loca \Temp\tmpst8z9hvc\kernel.cu failed

好的,问题解决了。我只安装了 "Microsoft Visual Studio Express",看起来不支持编译 64 位应用程序。但是,我已经 运行 在我的 PC 上安装了 64 位版本的 Anaconda。安装 Anaconda 32 位解决了这个问题。