2017-02-16 30 views
5

我剛剛安裝pyCuda,當我嘗試編譯: 進口pycuda.autoinit 進口pycuda.driver爲DRV 進口numpy的pycuda:kernel.cu的NVCC compitalation失敗

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。按照these我添加ollowing線nvcc.profile:

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

,但它總是返回相同的錯誤。

感謝。

回答

1

不要更改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,嘗試它是否工作。