1、背景
numba报cudatoolkit相关错误,提示找不到libdevice,让用conda install cudatoolkit。
2. Debug
debug代码,定位到具体寻找libdevice的方法,是找到CUDA_HOME, 以及下面的nvvm/libdevice 路径。然后用正则匹配找到下面的 "libdevice.10.bc"文件。
发现是CUDA_HOME的问题。
我在~/.bashrc中的写法是:
if [ $CUDA_HOME ]; then
export CUDA_HOME=$CUDA_HOME:/usr/lib/cuda/
else
export CUDA_HOME=/usr/lib/cuda/
fi
由于某种原因,source了多次.bashrc文件,导致CUDA_HOME=/usr/lib/cuda/;/usr/lib/cuda/, 那么在numba定位libdevice.bc文件的时候,会导致匹配不到合法的文件路径。
因此,只需要把~/.bashrc文件中的CUDA_HOME相关改为:
export CUDA_HOME=/usr/lib/cuda/
我们暂时也不需要有多个CUDA_HOME.