日常在一些程序中进行GPU调用,这些cuda程序异常崩溃的时候,有时会遇到掉卡掉驱动、没有进程但是显存被占用的情况,这个时候我们可以通过以下命令来尝试进行处理。
如果是掉卡的话可以使用lspci查看下主板上还能否检测到GPU卡
lspci | grep -i nvidia 00:03.0 VGA compatible controller: NVIDIA Corporation Device 1f03 (rev a1) 00:03.1 Audio device: NVIDIA Corporation TU106 High Definition Audio Controller (rev a1)
如果不是掉卡,掉驱动和显存被占用可以查看以下几种方式进行对应处理
1.重启GPU卡
nvidia-smi --gpu-reset # 指定卡添加参数-i <index>
上述命令如果是在多卡的机器上,会重启所有GPU卡,如果需要指定GPU卡则需要添加参数-i,后面跟GPU的的index
如果是重启所有GPU卡,可以使用简化命令
nvidia-smi -r
2.重载内核驱动模块
先使用lsmod命令查看当前内核是否加载nvidia相关驱动模块
lsmod | grep -i nvidia

也可以使用modprobe命令重载内核驱动
modprobe nvidia
也可以删除nvidia驱动内核模块,进行重新加载,可以尝试以下命令进行内核驱动模块的加载
rmmod nvidia lsmod nvidia
一般在使用rmmod的情况下会返回以下报错
rmmod: ERROR: Module nvidia is in use by: nvidia_modeset nvidia_uvm
rmmod和modprobe命令都会退出GPU卡上的任何调用,在节点执行这些命令实际和重启gpu卡没有区别。
3.杀掉占用设备的进程
如果没有查看到GPU进程,但是显存被占用,可以使用fuser命令查看当前GPU设备是否还在占用中
fuser -uv /dev/nvidia*

可以尝试kill掉占用的进程
4.重启操作系统
这个也是终极大法。
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/986
相关阅读
- ubuntu24.04卸载apt安装的驱动nccl和cuda库
- AI程序索引越界引起的nvidia-fabricnamage异常问题排查
- linux内核无法加载nvidia-peermem模块的问题分析
- 英伟达GPU内核和驱动优化参数介绍
- 英伟达GPU nvidia-smi常用命令详解
- GPU卡住且dmesg日志中打印NVRM: _threadNodecheckTimeout错误排查
- linux下gpu降速问题排查
- ubuntu22.04安装dcgm和基本用法
- RTX 5090在cuda13.0下gpu-burn编译报错的解决方法
- k8s集群部署gpu-operator支持gpu节点自动发现和gpu上报
评论列表