本文参考机器学习环境搭建,唯一的区别在于Linux是Debian 12 而不是Ubuntu Server 22.04 LTS。演示的环境的硬件为AWS EC2 g4dn机型,它搭载了一颗服务器专用的T4 Tensor Core GPU,Amazon EC2 G4dn 实例专用于加速机器学习推理和图形密集型工作负载,它搭载的T4 Tensor Core GPU有16GB的显存,非常适合中等负荷下的AI场景。本次我使用的是最经济的g4dn.xlarge
。你自己也可以组装在你的个人电脑(需要Nvidia消费级显卡)上正常复现安装流程。
选择Debian 12的原因是因为相比Ubuntu Server LTS,Debian没有商业化气息,没有预装乱七八糟的无用的软件,更加稳定和纯洁。
同时Ubuntu Server LTS会定期更新Linux 内核版本,有些Linux 内核版本还不一定是LTS版,虽然从新硬件的支持和软件新特性的角度来看有好处,但是服务器场景用起来总感觉不如CentOS/RHEL和Debian稳定而且可能有软件兼容性问题。总之见仁见智吧~
安装Nvidia Driver
检查Linux服务器上的VGA显卡信息,我们可以看到Nvidia GPU的具体型号
lspci -nn | egrep -i "3d|display|vga"
修改/etc/apt/sources.list
,确保添加了contrib
、non-free
、 non-free-firmware
组件
我的设置如下:
#deb cdrom:[Debian GNU/Linux 12.5.0 _Bookworm_ - Official amd64 DVD Binary-1 with firmware 20240210-11:28]/ bookworm contrib main non-free-firmware
deb http://mirrors.huaweicloud.com/debian/ bookworm main contrib non-free non-free-firmware
deb-src http://mirrors.huaweicloud.com/debian/ bookworm main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
# bookworm-updates, to get updates before a point release is made;
# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports
deb http://mirrors.huaweicloud.com/debian/ bookworm-updates main contrib non-free non-free-firmware
deb-src http://mirrors.huaweicloud.com/debian/ bookworm-updates main contrib non-free non-free-firmware
先更新Linux并安装必要的编译组件
sudo apt update -y && sudo apt upgrade -y && sudo apt install vim gcc g++ make python3-pip -y
# 重启
sudo reboot
安装必要的nvidia gpu驱动依赖组件
sudo apt install nvidia-detect -y
sudo apt install linux-headers-amd64 linux-headers-$(uname -r) dkms -y
# 重启
sudo reboot
安装nvidia gpu驱动
sudo apt install nvidia-driver firmware-misc-nonfree -y
# 检查
nvidia-smi
# 重启
sudo reboot
再次检查驱动安装情况
nvidia-smi
关于安全启动
如果你前面执行nvidia-smi
后发现无法显示正确的显卡信息,出现类似:xx的错误。那么一般就是你的电脑设置了安全启动导致的驱动无法正常加载
我们可以执行如下命令检查自己的电脑是否开启了安全启动
sudo mokutil --sb-state
如下图就是开启安全启动后的效果
如果你电脑设置安全启动,我们需要手动进行启动密钥导入动作,导入时需要我们2次手动填入密码
mokutil --import /var/lib/dkms/mok.pub
设置完成后我们需要reboot系统,这是在启动的时候,会被要求输入密码,这个密码是我们上一步设置的密码。界面类似这样
当我们密码设置正确后,进入系统,再次执行nvidia-smi
会发现显卡被正确识别。