ExecError: ошибка при вызове «nvcc --version»: [Errno 2] Нет такого файла или каталога: «nvcc»: «nvcc»

Я пробую этот код на своем spyder (python3).

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)

Но не смог запустить код.

ExecError: ошибка при вызове «nvcc --version»: [Errno 2] Нет такого файла или каталога: «nvcc»: «nvcc»

Моя версия nvcc --

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Tue_Jan_10_13:22:03_CST_2017
Cuda compilation tools, release 8.0, V8.0.61

какой nvcc /usr/local/cuda-8.0/bin/nvcc
какой spyder
/home/anaconda3/bin/spyder
$ какой conda
/home/anaconda3/bin/conda

Запрос устройства:

./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce 940MX"
  CUDA Driver Version / Runtime Version          9.0 / 8.0

эхо $PATH

/home/anaconda3/bin:/usr/local/cuda-8.0/bin:/home/bin:/home/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/go/bin

Я попытался запустить код на терминале. Затем он работает, но из самой строки sourceModule он показывает ошибки.

"/home/anaconda3/lib/python3.6/site-packages/pycuda-2017.1-py3.6-linux-x86_64.egg/pycuda/compiler.py", line 255, in compile
    return compile_plain(source, options, keep, nvcc, cache_dir, target)
  File "/home/anaconda3/lib/python3.6/site-packages/pycuda-2017.1-py3.6-linux-x86_64.egg/pycuda/compiler.py", line 137, in compile_plain
    stderr=stderr.decode("utf-8", "replace"))
pycuda.driver.CompileError: nvcc compilation of /tmp/tmpbdkxu33o/kernel.cu failed
[command: nvcc --cubin -arch sm_50 -I/home/anaconda3/lib/python3.6/site-packages/pycuda-2017.1-py3.6-linux-x86_64.egg/pycuda/cuda kernel.cu]
[stderr:
In file included from /usr/local/cuda-8.0/bin/..//include/cuda_runtime.h:78:0,
                 from <command-line>:0:
/usr/local/cuda-8.0/bin/..//include/host_config.h:119:2: error: #error -- unsupported GNU version! gcc versions later than 5 are not supported!
 #error -- unsupported GNU version! gcc versions later than 5 are not supported!
  ^~~~~
]

Также я попробовал на своем ноутбуке Jupiter и на другой установленной системе Cuda. Но не смог определить проблему. Любая помощь ценна.


person 9113303    schedule 18.06.2018    source источник
comment
Вероятно, дело в настройке PATH variable (используется внутри exec), но вы не даете достаточно подробностей. Ваш /usr/local/cuda-8.0/bin/nvcc необычен. Вы должны исправить или, по крайней мере, явно указать, что является вашим $PATH   -  person Basile Starynkevitch    schedule 18.06.2018
comment
Не комментируйте свой вопрос, но отредактируйте его. Вы можете запросить PATH с помощью echo $PATH в терминале. И последний посыл вполне понятен. Вам нужна старая gcc версии 5.0 (которая устарела). Возможно, вам следует обновить свою CUDA или задать этот вопрос на каком-то форуме, посвященном CUDA.   -  person Basile Starynkevitch    schedule 18.06.2018
comment
Это должно войти в ваш вопрос (который настолько неясен, что я проголосовал за его закрытие, потому что вы его не редактировали), и это не дает вашего PATH   -  person Basile Starynkevitch    schedule 18.06.2018
comment
Кстати, ваш PATH — это большой беспорядок, который вы должны попытаться убрать. Возможно, этим вы решите свою проблему   -  person Basile Starynkevitch    schedule 18.06.2018
comment
Потратьте час на чтение о PATH. Считать. Очистите беспорядок.   -  person Basile Starynkevitch    schedule 18.06.2018


Ответы (1)


Он работает в виртуальной среде python2 через терминал.

person 9113303    schedule 18.06.2018