
在4090GPU服务器上,重新安装cuda11.8,问题汇总
序言:4090英伟达显卡,算力8.9,之前安装了cuda的版本是11.7,由于11.7的cuda不支持8.9的算力,所以需要将升版本到11.8。nvidia显卡驱动中显示cuda version 12.2 ,这个没有关系。只要保证比cuda tool版本要高就行。重新安装cuda11.8,卸载英伟达的显卡驱动【我没有卸载11.7】,才能保证cuda11.8的安装成功。本篇文章记录遇到的问题。
序言:
4090英伟达显卡,算力8.9,之前安装了cuda的版本是11.7,由于11.7的cuda不支持8.9的算力,所以需要将升版本到11.8。
nvidia显卡驱动中显示cuda version 12.2 ,这个没有关系。只要保证比cuda tool版本要高就行。
重新安装cuda11.8,卸载英伟达的显卡驱动【我没有卸载11.7】,才能保证cuda11.8的安装成功。本篇文章记录遇到的问题
提示:必须先完全卸载显卡驱动,才能安装新版本的cuda
1. 卸载显卡驱动 报错
rmmod: ERROR: Module nvidia is in use by: nvidia_modeset nvidia_uvm
解决方法
1.1 查看正在使用nvidia显卡所有进程
sudo lsof -n -w /dev/nvidia*
1.2 杀掉进程
kill -9 进程号
1.3 重新卸载
sudo rmmod nvidia_uvm
sudo rmmod nvidia_modeset
2. rmmod: ERROR: Module nvidia_modeset is in use
用kill -9 无法杀死 nvidia_modeset的进程。因为 nvidia_modeset 会自动重启,kill之后,自动重启。内核模块 nvidia_modeset 依赖于内核模块 nvidia。通过进一步检查nvidia相关进程
ps -aux | grep nvidia
发现实际上是nvidia的persistence mode的守护进程占用了内核模块nvidia_modeset。而之所以有这样一个守护进程,是为了避免nvidia-smi每次唤起过慢的问题,即,通过设置
sudo nvidia-persistenced --persistence-mode
启用persistence mode,借助守护进程来维护记录GPU的状态,避免每次nvidia-smi都需要同步检查每一个GPU状态在阻塞等待上耗费太多时间。
解决方法:
nvidia-persistenced 是在 /usr/bin/nvidia-persistenced 的任务,上述通过 kill 杀死进程的方法,无法真正杀死
nvidia_modeset 进程时,可以通过改变 nvidia-persistenced强行更改。
mv nvidia-persistenced nvidia-persistenced_bak
在 kill -9 杀死nvidia-persistenced的进程即可。
更多推荐
所有评论(0)