Cuda: библиотека nvvm не найдена
Я пытаюсь запустить код ниже, но сообщается об ошибке:
NvvmSupportError: libNVVM не может быть найден. Do conda install cudatoolkit
: библиотека nvvm не найдена
Моя среда разработки: Ubuntu 17.04, Spyder/Python3.5, и я установил через conda (numba и cudatoolkit). Графические процессоры Nvidia (GTX 1070 и GTX 1060).
import numpy as np
from timeit import default_timer as timer
from numba import vectorize
@vectorize(["float32(float32, float32)"], target='cuda')
def VecADD(a,b):
return a+b
n = 32000000
a = np.ones (n, dtype=np.float32)
b = np.ones (n, dtype=np.float32)
c = np.zeros(n, dtype=np.float32)
start = timer()
C = VecADD(a,b)
print (timer() - start)
кто-нибудь знает, как решить эту проблему?
Ответы
Ответ 1
Что работало для меня при точно таком же сценарии, так это включение следующего в .bashrc (в настоящее время я использую cuda-9.0). Не сбрасывайте NUMBAPRO в имени переменной - это работает для Numba (по крайней мере, для меня):
export NUMBAPRO_NVVM=/usr/local/cuda-9.0/nvvm/lib64/libnvvm.so
export NUMBAPRO_LIBDEVICE=/usr/local/cuda-9.0/nvvm/libdevice/
Обновление: у меня тоже сработало. Поскольку я использую Cuda 10.1, я включил следующие строки вместо вашей:
export NUMBAPRO_NVVM=/usr/local/cuda-10.1/nvvm/lib64/libnvvm.so
export NUMBAPRO_LIBDEVICE=/usr/local/cuda-10.1/nvvm/libdevice/
Ответ 2
Одним из решений является:
import os
os.environ['NUMBAPRO_NVVM'] = r'C:\Program Files\NVIDIA GPU Computing
Toolkit\CUDA\v8.0\nvvm\bin\nvvm64_31_0.dll'
os.environ['NUMBAPRO_LIBDEVICE'] = r'C:\Program Files\NVIDIA GPU Computing
Toolkit\CUDA\v8.0\nvvm\libdevice'
Или, если вы используете PyCharm GO TO RUN> Изменить конфигурацию
export NUMBAPRO_NVVM=/usr/local/cuda-{cuda version}/nvvm/lib64/libnvvm.so
export NUMBAPRO_LIBDEVICE=/usr/local/cuda-{cuda version}/nvvm/libdevice/
![enter image description here]()
Ответ 3
В Ubuntu 18.04, если вы устанавливаете все библиотеки и пакеты из официального репозитория, вам нужно добавить две информации в ваш .bashrc
чтобы numba
найти ваши библиотеки и устройство:
...
export NUMBAPRO_LIBDEVICE=/usr/lib/cuda/nvvm/libdevice
export NUMBAPRO_NVVM=/usr/lib/x86_64-linux-gnu/
...
Информация NUMBAPRO_LIBDEVICE была извлечена из пакета:
$ dpkg -L nvidia-cuda-toolkit
и NUMBAPRO_NVVM от:
$ dpkg -L libnvvm3
Это.
Ответ 4
Я решил эту проблему с помощью анаконды-навигатора. Вы можете скачать здесь: https://www.anaconda.com/distribution/
- Открыть анаконду навигатор в Терминале: анаконда-навигатор
- В анаконде навигатор выберите Среды
- поиск cudatoolkit
- выберите cudatoolkit
- нажмите применить
Это мой cudatoolkit установлен. ![anaconda navigator]()
Это кнопка, которую нужно нажать, когда вы выбираете не установленный пакет ![button to click apply]()
Ответ 5
По моему опыту, все эти проблемы CUDA (и аналогичного драйвера) исчезнут, если вы используете контейнер с https://ngc.nvidia.com/catalog/landing.
Вы должны убедиться, что вы запускаете docker с помощью nvidia-docker
вместо docker
и это очень эффективно активирует драйверы, связанные с GPU.
Ответ 6
В системе Debian Stretch:
ln -s/usr/lib/x86_64-linux-gnu//usr/lib/nvidia-cuda-toolkit/bin/nvvm/lib64
ln -s/usr/lib/nvidia-cuda-toolkit/libdevice//usr/lib/nvidia-cuda-toolkit/bin/nvvm/libdevice
export CUDA_HOME =/usr/lib/nvidia-cuda-toolkit/bin/
Исправлено пб..