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 位解决了这个问题。
我刚刚开始研究 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 位解决了这个问题。