上次我尝试使用nvidia-smi
它,在装有 Pascal Titan X 的 Ubuntu 16.04 机器上运行良好。
大约一个月没有使用机器后,我启动了机器,但加速不再起作用。我尝试运行nvidia-smi
,但出现此错误:
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
我尝试使用以下命令重新安装最新版本的驱动程序:
sudo ./NVIDIA-Linux-x86_64-390.42.run -no-drm
重新启动,并nvidia-smi
报告相同的错误。运行lsmod | grep nvidia
没有任何显示。
我尝试通过以下方式安装驱动程序:
sudo apt-get purge nvidia*
sudo add-apt-repository ppa:graphics-drivers
sudo apt-get update
sudo apt-get install nvidia-384
然后重新启动-仍然没有任何反应,lsmod | grep nvidia
并且出现同样的错误nvidia-smi
。
在我的 中/var/log/syslog
,我看到了以下消息:
nvidia: version magic '4.4.0-116-generic SMP mod_unload modversions ' should be '4.4.0-116-generic SMP mod_unload modversions retpoline '
我该如何排除故障并重新使加速功能正常工作?
答案1
检查您的 nvidia 内核模块是否支持 retpoline,因为所有新内核都使用此内核构建以缓解 Spectre。您现在可能正在运行 nouveau 驱动程序,并且可能需要使用修补的 gcc 编译器重建 nvidia 内核模块。请参阅:https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/1750937
答案2
我刚刚注意到您从 nvidia 下载了 390 驱动程序,但尝试重新安装 384。
nvidia 的安装过程很奇怪,我每隔几个月就得重读安装说明,但如果你严格按照说明操作,它应该可以正常工作。至少 CUDA 部分可以正常工作,我对显示驱动程序没有经验。
安装 390 驱动程序后,运行sudo nvidia-modprobe
并查看错误消息(如果有)。
我思考最初失败的原因是内核已升级(自动或非自动,无关紧要),并且需要重建 nvidia 驱动程序。至少这是我使用 CUDA 驱动程序时通常遇到的故障模式。