web-dev-qa-db-fra.com

Cuda: bibliothèque nvvm introuvable

J'essaie d'exécuter le code ci-dessous mais une erreur est signalée:

NvvmSupportError: libNVVM est introuvable. Do conda install cudatoolkit: bibliothèque nvvm introuvable

Mon environnement de développement est: Ubuntu 17.04, Spyder/Python3.5 et j'ai installé via conda (numba et cudatoolkit). GPU Nvidia (GTX 1070 et 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)

Est-ce que quelqu'un sait comment résoudre ce problème?

19
Helton Maia

Ce qui a fonctionné pour moi dans exactement le même scénario était d'inclure ce qui suit dans le .bashrc (j'utilise actuellement cuda-9.0). Ne vous laissez pas décourager par le NUMBAPRO dans le nom de la variable - cela fonctionne pour numba (au moins pour moi):

export NUMBAPRO_NVVM=/usr/local/cuda-9.0/nvvm/lib64/libnvvm.so
export NUMBAPRO_LIBDEVICE=/usr/local/cuda-9.0/nvvm/libdevice/

Mise à jour: Cela a fonctionné pour moi aussi. Comme j'utilise Cuda 10.1, j'ai inclus les lignes suivantes au lieu de la vôtre:

export NUMBAPRO_NVVM=/usr/local/cuda-10.1/nvvm/lib64/libnvvm.so
export NUMBAPRO_LIBDEVICE=/usr/local/cuda-10.1/nvvm/libdevice/
18
Py_Dream

Une solution est:

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'

Ou si vous utilisez PyCharm GO TO RUN> Modifier la configuration

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
Mina Gabriel

Sur Ubuntu 18.04, si vous installez toutes les bibliothèques et tous les packages du référentiel officiel, vous devez ajouter deux informations sur votre .bashrc pour permettre à numba de trouver vos bibliothèques et votre périphérique:

...
export NUMBAPRO_LIBDEVICE=/usr/lib/cuda/nvvm/libdevice
export NUMBAPRO_NVVM=/usr/lib/x86_64-linux-gnu/
...

NUMBAPRO_LIBDEVICE informations ont été extraites du package:

$ dpkg -L nvidia-cuda-toolkit

et NUMBAPRO_NVVM de:

$ dpkg -L libnvvm3

C'est ça.

1
Brivaldo Junior

Dans un système 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 /


Correction du pb ..

0
user11704930

D'après mon expérience, tous ces problèmes CUDA (et pilotes similaires) disparaissent si vous utilisez un conteneur de https://ngc.nvidia.com/catalog/landing .

Vous devez vous assurer que vous démarrez docker avec nvidia-docker au lieu de docker et cela activera très efficacement les pilotes liés au GPU.

0
jmsinusa

J'ai résolu ce problème en utilisant anaconda-navigator. Vous pouvez télécharger ici: https://www.anaconda.com/distribution/

  1. Ouvrir le navigateur anaconda dans le terminal: anaconda-navigator
  2. Dans le navigateur anaconda, sélectionnez Environnements
  3. rechercher cudatoolkit
  4. sélectionnez cudatoolkit
  5. cliquez pour appliquer

Ceci est mon cudatoolkit installé. anaconda navigator

C'est le bouton à cliquer lorsque vous sélectionnez un package non installé button to click apply

0
Fabiano de Paula