1. 问题描述
软件 | 版本号 |
---|---|
CUDA | 12.1 |
cuDNN | 8.9 |
pytorch | 2.3.1 |
gpu | A100 |
默认安装最新的pytorch
,发现不兼容,无法正常使用pytorch
,import
都有问题。报错信息为:ImportError: /home/dell/Coding/Envs/miniconda/envs/only_test/lib/python3.10/site-packages/torch/lib/../../nvidia/cusparse/lib/libcusparse.so.12: undefined symbol: __nvJitLinkAddData_12_1, version libnvJitLink.so.12
2. 问题原因
猜测是pytorch
的依赖问题,缺少相关库导致gpu
加载失败。使用conda install pytorch pytorch-cuda=12.1 -c pytorch -c nvidia
也无法修复。
3. 解决过程
找师兄来看了一下,猜测可能是pytorch
依赖没有正确链接,排查情况如下:
看了一下libnvJitLink.so.12
的所依赖的链接信息,发现是系统的,其实应该是pytorch
安装过程中也安装了配套的nvidia
的动态库,但链接的时候没有链接正确。
所以,把libnvJitLink.so.12
加上nvidia
库对应的软链,并把nvjitlink
加到动态库中,比如这样:
ln -s /home/dell/Coding/Envs/miniconda/envs/only_test/lib/python3.10/site-packages/nvidia/nvjitlink/lib/libnvJitLink.so.12 /home/dell/Coding/Envs/miniconda/envs/only_test/lib/python3.10/site-packages/nvidia/cusparse/lib/libnvJitLink.so.12
export LD_LIBRARY_PATH=/home/dell/Coding/Envs/miniconda/envs/only_test/lib/python3.10/site-packages/nvidia/cusparse/lib:$LD_LIBRARY_PATH
然后就可以了: