我正在尝试运行下面的代码但报错:
NvvmSupportError:找不到 libNVVM。执行 conda 安装 cudatoolkit
: 找不到库 nvvm
我的开发环境是: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/