在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的安装成功。本篇文章记录遇到的问题

提示:必须先完全卸载显卡驱动,才能安装新版本的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的进程即可。

你可能感兴趣的:(大模型,人工智能)