root@Ben-009:~# ubuntu-drivers devices
== /sys/devices/pci0000:80/0000:80:02.0/0000:82:00.0 ==
modalias : pci:v000010DEd00002206sv000010DEsd00001455bc03sc00i00
vendor : NVIDIA Corporation
model : GA102 [GeForce RTX 3080]
driver : nvidia-driver-470-server - distro non-free
driver : nvidia-driver-535-server-open - distro non-free
driver : nvidia-driver-470 - distro non-free
driver : nvidia-driver-545-open - distro non-free
driver : nvidia-driver-535-open - distro non-free
driver : nvidia-driver-535-server - distro non-free
driver : nvidia-driver-535 - distro non-free recommended
driver : nvidia-driver-545 - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
//此命令为查看显卡设备和推荐的驱动版本。
root@Ben-009:~/cuda# nvidia-smi
Failed to initialize NVML: Driver/library version mismatch
NVML library version: 535.183
//此命令展示显卡信息,出现此消息时,报错库不匹配
从 ubuntu-drivers devices
输出中,我们可以看到您的系统上有一个NVIDIA GA102 [GeForce RTX 3080] 显卡,并且列出了多个可用的NVIDIA驱动程序版本。系统推荐使用 nvidia-driver-535
驱动程序,并且标记为 recommended
。
然而,nvidia-smi
报错提示驱动程序和库版本不匹配,这通常意味着已安装的NVIDIA库(NVML库)与您当前加载的NVIDIA驱动程序版本不兼容。
以下是一些步骤来卸载当前的NVIDIA驱动程序并安装推荐的驱动程序:
卸载当前NVIDIA驱动程序
停止图形界面(如果有的话):
如果您使用的是图形界面,请先关闭它,或者使用Ctrl+Alt+F1进入TTY(文本终端)。
卸载NVIDIA驱动程序:
使用包管理器卸载NVIDIA驱动程序。对于基于Debian的系统(如Ubuntu),可以使用以下命令:
sudo apt-get remove --purge nvidia*
sudo apt-get autoremove
这将卸载所有与NVIDIA相关的包。
重启系统:
在卸载驱动程序后,重启系统以确保所有更改都已生效。
安装推荐的NVIDIA驱动程序
根据 ubuntu-drivers devices
的输出,推荐的驱动程序是 nvidia-driver-535
。您可以使用以下命令来安装它:
sudo apt-get update
sudo apt-get install nvidia-driver-535
或者,如果 nvidia-driver-535
不在您的包列表中,您可能需要选择最接近的版本,如 nvidia-driver-545
或 nvidia-driver-470
。
重启系统:
安装新的驱动程序后,重启系统以使更改生效。
验证安装:
在重启后,运行
nvidia-smi
来验证新的驱动程序是否已成功加载并正在运行。
如果问题仍然存在,请确保您的系统上没有残留的NVIDIA库或配置文件,这些可能会干扰新驱动程序的安装。您可能需要手动删除这些文件或目录,但请小心操作,以免误删其他重要文件。
此外,如果 nvidia-smi
仍然报告版本不匹配的错误,请检查是否有其他NVIDIA相关的软件包(如CUDA工具包)可能与您的驱动程序版本不兼容,并考虑更新或卸载它们。
特别注意:教程中要求重启的地方,一定要重启,否则报错仍旧存在。
随后,就可以正常安装cuda了。