起初程序运行好好的,突然就没有检测输出了,尝试下面命令:
nvidia-smi
报错如下,记为【Error1】
Unable to determine the device handle for GPU 8000:01:00.0: Unknown Error
reboot机器后,又输出如下,记为【Error2】
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
(1)首先第一反应是驱动连不上了,于是重新装了驱动,然后就确确实实是又可以正常输出显卡信息及使用情况了。
(2)但是没过多久程序又出错了,然后输入nvidia-smi又报了上述【Error1】的问题。重启机器后,还是【Error2】的输出。怀疑是显卡物理脱离服务器了,可能引脚松动了。于是做了如下试验:
(2.1)拿一台没有毛病的服务器,输入nvidia-smi,显卡正常输出,关机。
(2.2)将该服务器显卡拔下来,开机后输入nvidia-smi,显卡输入前述【Error2】,关机。
(2.3)将该服务器显卡再插上,开机后,输入nvidia-smi,显卡正常输出。这里,我们开机后,甚至都没有重新安装显卡驱动。值得注意的是,我一直以为显卡拔下来再重新插回去需要重新安装显卡驱动。这里重新插上显卡之后,竟然不用重新装驱动,也是震惊了我。
(1)如下命令输出(rev ff),则可能显卡物理松了
lspci| grep -i nvidia
正常输出示例如下:
02:00.0 VGA compatible controller: NVIDIA Corporation Device 2684 (rev a1)
02:00.1 Audio device: NVIDIA Corporation Device 22ba (rev a1)
(2)查看物理有没有显卡的命令,如下
sudo lshw -C display
=====>打印没有任何输出, 正常会输出物理设施信息,正常输出示例如下:
*-display
description: VGA compatible controller
product: NVIDIA Corporation
vendor: NVIDIA Corporation
physical id: 0
bus info: pci@0000:02:00.0
version: a1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
configuration: driver=nvidia latency=0
resources: irq:137 memory:a2000000-a2ffffff memory:90000000-9fffffff memory:a0000000-a1ffffff ioport:4000(size=128) memory:c0000-dffff
(3)显示操作系统发行版本号
uname -r
(4)显示系统名、节点名称、操作系统的发行版号、内核版本等
uname -a
(5)
lspci
正常输出包含NVIDIA信息,异常输出则没有这条。
最终,我们觉得肯定是物理上显卡,或者卡槽存在问题。
方法一
sudo bash NVIDIA-Linux-x86_64-510.47.03.run -uninstall
方法二
sudo apt-get --purge remove nvidia*
sudo apt autoremove
卸载完成之后,记得重启机器再安装,然后再如下命令安装
sudo ./NVIDIA-Linux-x86_64-510.47.03.run -no-x-check
重装驱动后,输入nvidia-smi后正确输出。
因为4.1解决了所以就没试
因为4.1解决了所以就没试
硬件的问题,我们装在室外的设备,现在还是夏天,把设备拆开后,发现显卡电源适配线和风扇太近了,影响风扇转动,同时风扇的转动也会造成电源适配线的接触不良。这些原因①温度太高硬件短期故障造成驱动异常;②风扇导致电源适配线接触不良造成显卡掉电。