2017-02-16 23 views
5

Я только что установил PyCuda, когда я пытаюсь скомпилировать: импорт pycuda.autoinit импорта pycuda.driver как DRV импорта NumPyPyCuda: NVCC compitalation из kernel.cu не удалось

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] 

Я установил 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".

Итак, если это тот же случай для вас, вам нужно добавить путь к cl.exe в файл python. В моем случае мне нужно было добавить следующие строки в начале моего кода.

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") 

Edit: вам нужно запустить версию МСВС, совместимые с CUDA. То есть CUDA v9.0 не поддерживает MSVS2017, а CUDA v9.1 поддерживает только версии 15.4, а не более поздние версии. Попробуйте, если он работает, запустив nvcc.exe из командной строки Native Tools для Visual Studio.