电脑重启后,再运行程序总显示没有CUDA,一查发现出现“NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.”这个问题。
这个错误提示表明 nvidia-smi 无法与 NVIDIA 驱动程序通信,通常是由以下原因引起的:
1. 驱动程序未安装或安装不正确
2. 驱动程序版本不兼容
3. 内核模块未加载
我们一个一个开始检查
1. 检查驱动状态,确认系统识别到 GPU:
lspci | grep -i nvidia
2. 查看内核模块,若无输出,说明模块未加载:
lsmod | grep nvidia
我们发现是内核模块未加载,因此尝试手动加载内核模块,运行以下命令手动加载 NVIDIA 内核模块:
sudo modprobe nvidia
如果成功,不会有任何输出。
如果失败,会显示错误信息(如 modprobe: FATAL: Module nvidia not found),表明模块未正确安装或配置。
3. 检查内核模块是否存在,运行以下命令,检查 NVIDIA 内核模块是否已安装:
find /lib/modules/$(uname -r)/kernel/drivers -name nvidia*
如果有输出(如 /lib/modules/$(uname -r)/kernel/drivers/video/nvidia.ko),说明模块已安装。
如果没有输出,说明模块未安装。
4. 重新生成内核模块,如果模块未安装或丢失,可以尝试重新生成:
确保已安装 dkms(动态内核模块支持):
sudo apt-get install dkms
重新生成并安装 NVIDIA 内核模块:
sudo dkms install -m nvidia -v <驱动版本号>
安装后输入:
nvidia-smi