导入torch时libcublas.so.10版本缺失问题求助
问题:Torch导入时libcublas.so.10版本匹配错误
本地安装Torch以运行最新ONNX Runtime测试时,触发以下导入错误:
ImportError: /usr/local/cuda-10.0/lib64/libcublas.so.10: version `libcublas.so.10' not found (required by /home/users/username/.local/lib/python3.8/site-packages/torch/lib/libtorch_cuda.so)
已执行的排查步骤:
- 确认文件存在,执行命令:
ll /usr/local/cuda-10.0/lib64/libcublas.so.10
输出结果显示该软链接有效:
lrwxrwxrwx 1 root root 44 Dec 20 11:46 /usr/local/cuda-10.0/lib64/libcublas.so.10 -> /usr/local/cuda-10.0/lib64/libcublas.so.10.0
检查
LD_LIBRARY_PATH,确认/usr/local/cuda-10.0/lib64/已包含在路径中,尝试将其移至路径前端仍无效。使用
ldd查看库关联,输出如下:
ldd /home/users/username/.local/lib/python3.8/site-packages/torch/lib/libtorch_cuda.so
输出:
/home/users/username/.local/lib/python3.8/site-packages/torch/lib/libtorch_cuda.so: /usr/local/cuda-10.0/lib64/libcublas.so.10: version `libcublas.so.10' not found (required by /home/users/username/.local/lib/python3.8/site-packages/torch/lib/libtorch_cuda.so) linux-vdso.so.1 => (0x00007ffffb33e000) libc10_cuda.so => /home/users/username/.local/lib/python3.8/site-packages/torch/lib/libc10_cuda.so (0x00007fedb38ae000) libcudart-80664282.so.10.2 => /home/users/username/.local/lib/python3.8/site-packages/torch/lib/libcudart-80664282.so.10.2 (0x00007fedb362d000) libnvToolsExt-3965bdd0.so.1 => /home/users/username/.local/lib/python3.8/site-packages/torch/lib/libnvToolsExt-3965bdd0.so.1 (0x00007fedb3423000) libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007fedb3207000) libc10.so => /home/users/username/.local/lib/python3.8/site-packages/torch/lib/libc10.so (0x00007fedb2f77000) libtorch_cpu.so => /home/users/username/.local/lib/python3.8/site-packages/torch/lib/libtorch_cpu.so (0x00007fed9a500000) libm.so.6 => /usr/lib64/libm.so.6 (0x00007fed9a1fe000) libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007fed99ffa000) libcublas.so.10 => /usr/local/cuda-10.0/lib64/libcublas.so.10 (0x00007fed95a64000) librt.so.1 => /usr/lib64/librt.so.1 (0x00007fed9585c000) libstdc++.so.6 => /usr/local/gcc-5.4.0/lib64/libstdc++.so.6 (0x00007fed954e1000) libgcc_s.so.1 => /usr/local/gcc-5.4.0/lib64/libgcc_s.so.1 (0x00007fed952ca000) libc.so.6 => /usr/lib64/libc.so.6 (0x00007fed94efc000) /lib64/ld-linux-x86-64.so.2 (0x00007fede3d1e000) libgomp-a34b3233.so.1 => /home/users/username/.local/lib/python3.8/site-packages/torch/lib/libgomp-a34b3233.so.1 (0x00007fed94cd2000)
解决方案
匹配CUDA与Torch版本:从
ldd输出可见,Torch依赖的libcudart是10.2版本,但系统安装的是CUDA 10.0,版本不兼容导致库版本校验失败。解决思路二选一:- 升级系统CUDA到10.2版本,确保与Torch依赖一致;
- 卸载当前Torch,安装适配CUDA 10.0的版本,示例命令:
pip install torch==1.4.0+cu100 torchvision==0.5.0+cu100 -f https://download.pytorch.org/whl/torch_stable.html
临时强制加载指定库:若不想修改版本,可在启动脚本前用
LD_PRELOAD指定加载具体的库文件:LD_PRELOAD=/usr/local/cuda-10.0/lib64/libcublas.so.10.0 python your_test_script.py检查并更新CUDA库小版本:部分Torch版本要求
libcublas.so.10对应的实际文件是更高小版本(如10.0.130),可查看CUDA 10.0目录下是否有该版本文件,若有,重新创建软链接:rm /usr/local/cuda-10.0/lib64/libcublas.so.10 ln -s /usr/local/cuda-10.0/lib64/libcublas.so.10.0.130 /usr/local/cuda-10.0/lib64/libcublas.so.10
内容的提问来源于stack exchange,提问作者Johnzy
相关产品推荐
相关产品推荐

