ubuntu 手动更换库文件解决nvcc -V和nvidia-smi不一致
问题现象
笔主在训练之前想查看gpu占用情况,使用watch -n 1 nvidia-smi
发现:
且在推理、训练时无法使用到显卡。
问题排查
cat /proc/driver/nvidia/version
查看当前显卡驱动版本,可以看到显卡驱动是560.35.03:
而NVML库版本是565.57,确实不匹配。
笔主并没有手动更新,那么是如何触发这种更新机制的?了解到nvml并不会自动更新,但在一种情况下除外,那就是你使用的是anaconda的cudatoolkit进行管理的。
使用 cat /var/log/dkpg.log | grep nvidia
查看nvidia驱动的变更情况,发现最后一次变更就在刚刚不久,那时我并没有进行更新呐!
笔者有多个cuda版本库,查看当前使用的是哪一个?
限制
- 一是要关闭anaconda 自动更新toolkits这种机制,防止再次出现这种问题。
- 因为本机是宿主机中一docker,所以无法通过升级驱动的方式进行解决,只能降低nvml库版本解决问题。
解决
禁止自动更新
conda config --set channel_priority strict
限制更新通道sudo apt-mark manual <package-name>
将其标记为手动安装,禁止自动更新。
降低库版本
nvml 库文件一般在/usr/lib/x86_64-linux-gnu/
中,查找一下。
这里我已经进行了替换,它原本指向565.57.01,我做了一个软链接。
再次查看nvidia-smi
,已经可以啦。
原文地址:https://blog.csdn.net/weixin_51332735/article/details/144281229
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!