Я пробую этот код на своем 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. Но не смог определить проблему. Любая помощь ценна.
PATH
variable (используется внутри exec), но вы не даете достаточно подробностей. Ваш/usr/local/cuda-8.0/bin/nvcc
необычен. Вы должны исправить или, по крайней мере, явно указать, что является вашим$PATH
- person Basile Starynkevitch   schedule 18.06.2018PATH
с помощьюecho $PATH
в терминале. И последний посыл вполне понятен. Вам нужна стараяgcc
версии 5.0 (которая устарела). Возможно, вам следует обновить свою CUDA или задать этот вопрос на каком-то форуме, посвященном CUDA. - person Basile Starynkevitch   schedule 18.06.2018PATH
- person Basile Starynkevitch   schedule 18.06.2018PATH
— это большой беспорядок, который вы должны попытаться убрать. Возможно, этим вы решите свою проблему - person Basile Starynkevitch   schedule 18.06.2018PATH
. Считать. Очистите беспорядок. - person Basile Starynkevitch   schedule 18.06.2018