1、掉了一张卡,导致nvidia-smi无法显示,可以把掉的那张卡暂时禁用(它的原理是开启维护模式drain mode,防止该gpu接收新的工作负载,不会中断现有任务或影响系统稳定性)
sudo nvidia-smi drain -p 0000:01:00.0 -m 1
这里的 -m 是指GPU的计算模式,默认是0,即default,;1是指PROHIBITED,即禁止任务在它上面执行。
2、RuntimeError: Pin memory thread exited unexpectedly
import torch.multiprocessing
torch.multiprocessing.set_sharing_strategy('file_system')
3、跑代码掉卡,可以在/etc/rc.local里写这些代码,主要是第1条,第2条应该不用写
nvidia-smi -pm 1 # 设置显卡常驻内存
# 4090的额定频率是2.23GHz,所以我一般调成2000
nvidia-smi -lgc 300,1500 # 调整显卡的时钟速度
指定单块卡
nvidia-smi -i 0 -lgc 300,1500
4、查看显卡当前时钟频率
nvidia-smi -q -d CLOCK
nvidia-smi -q # 更多的显卡信息
5、记录显卡出问题的log文件
vim /var/log/syslog
vim /var/log/kern.log
6、如果发现掉卡,一般就是驱动不匹配或者旧的驱动没删干净的问题,查看驱动有哪些包以此来看旧的驱动删没删干净的命令,如下:
dpkg -l | grep nvidia
7、列出系统推荐的nvidia驱动版本
ubuntu-drivers devices
8、安装系统推荐版本的驱动
sudo ubuntu-drivers autoinstall
9、这条命令可以看出需要删掉哪些东西(不要输入yes,以及我没亲自验证过)
sudo apt upgrade
10、查看有的内核版本
dpkg --get-selections | grep -i linux-image
11、清理rc文件
dpkg -l | grep ^rc | cut -d ' ' -f3 | sudo xargs dpkg --purge
12、查看grub,更新grub
sudo vim /etc/default/grub
sudo update-grub