pycuda:kernel.cu的nvcc编译失败

4
我刚刚安装了pyCuda,当我尝试编译时: 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];
}
""")

这是结果:

Traceback (most recent call last):
  File "<stdin>", line 7, in <module>
  File "C:\Program Files\Anaconda3\lib\site-packages\pycuda\compiler.py", line 265, in __init__
    arch, code, cache_dir, include_dirs)
      File "C:\Program Files\Anaconda3\lib\site-packages\pycuda\compiler.py", line 255, in compile
   return compile_plain(source, options, keep, nvcc, cache_dir, target)
   File "C:\Program Files\Anaconda3\lib\site-packages\pycuda\compiler.py", line 137, in compile_plain
     stderr=stderr.decode("utf-8", "replace"))
pycuda.driver.CompileError: nvcc compilation of C:\Users\whyno\AppData\Local\Temp\tmpkv6oyxif\kernel.cu failed
[command: nvcc --cubin -arch sm_50 -m64 -Ic:\program files\anaconda3\lib\site-packages\pycuda\cuda kernel.cu]

我已经在Anaconda shell中使用pip安装了pyCuda,并且我正在使用Microsoft Visual Studio 14.0。按照这些步骤,我已经在nvcc.profile中添加了以下行:

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

但它总是返回相同的错误。谢谢。
2个回答

3

不要更改nvcc.profile文件。你可能会遇到和我一样的问题。我编辑了compiler.py文件以输出命令调用的标准输出(stdout)。我得到了如下错误提示:"nvcc fatal : Cannot find compiler 'cl.exe' in PATH"

所以,如果你也遇到了同样的问题,你需要在Python文件中添加cl.exe的路径。在我的情况下,我需要在代码开头加入以下几行:

import os
if os.system("cl.exe"):
    os.environ['PATH'] += ';'+r"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64"
if os.system("cl.exe"):
    raise RuntimeError("cl.exe still not found, path probably incorrect")

编辑:您需要运行与CUDA兼容的MSVS版本。即CUDA v9.0不支持MSVS2017,而CUDA v9.1仅支持15.4版本,而不支持更高版本。尝试通过从Visual Studio的本机工具命令提示符中运行nvcc.exe来检查是否有效。


1
有效地来说,举个例子,在使用CUDA 10.1时,您必须安装VS2019 C编译器以避免出错。我建议在Visual Studio的本机工具命令提示符中使用命令“nvcc --version”而不是nvcc.exe。 - Roger Gomez Nieto

-1
如果您正在使用Windows,请在环境变量中进行以下设置:
路径:
C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.2 \ bin
C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.2 \ libnvvp C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.2 \ lib \ x64
C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.2 \ extras \ CUPTI \ libx64

C:\ProgramFiles(x86)\MicrosoftVisualStudio\2019\Community\VC\Tools\MSVC\14.23.28105\bin\Hostx64\x64"

CUDA_PATH: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2

CUDA_PATH_V8_0: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2

NVCUDASAMPLES_ROOT: C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2

NVCUDASAMPLES8_0_ROOT: C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2

完成后,点击确定并重新启动计算机。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接