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/

  1. Открыть анаконду навигатор в Терминале: анаконда-навигатор
  2. В анаконде навигатор выберите Среды
  3. поиск cudatoolkit
  4. выберите cudatoolkit
  5. нажмите применить

Это мой 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/


Исправлено пб..