问题描述
我正在尝试运行以下代码,但报告了错误:
NvvmSupportError:找不到libNVVM。做conda install
:找不到库nvvm
cudatoolkit
我的开发环境是:Ubuntu 17.04,Spyder /Python3.5,我已经通过conda(numba和cudatoolkit)安装了。 Nvidia GPU(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)
有谁知道如何解决这个问题?
最佳方案
在完全相同的情况下对我有用的是在.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/
次佳方案
一种解决方案是:
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/