RockyLinux安装NVIDIA显卡驱动(并支持Docker)

一、查看显卡

dnf install pciutils
# 查看显卡信息
lspci | grep -i vga
lshw -numeric -C display

二、安装NIVIDIA显卡驱动

禁用 Nouveau 驱动

设置blacklist文件

cat > /etc/modprobe.d/blacklist.conf <<EOF
blacklist nouveau
options nouveau modeset=0
EOF

更新 GRUB 配置文件 /etc/default/grub,在 GRUB_CMDLINE_LINUX 中添加:

rd.driver.blacklist=nouveau nouveau.modeset=0

生成新的 GRUB 配置:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

重启系统:

sudo reboot

安装必要的开发工具和内核头文件

安装必要工具

dnf install epel-release
sudo dnf install -y gcc make dkms

安装头文件和开发工具

wget  https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/kernel-headers-$(uname -r).rpm
wget  https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/kernel-devel-$(uname -r).rpm
yum install -y kernel-headers-$(uname -r).rpm
yum install -y kernel-devel-$(uname -r).rpm
  • 网上有建议yum install -y kernel-headers kernel-devel 这种方式安装,但必须要保证他们的版本和系统内核版本一致(完全一致),否则会导致安装NVIDIA驱动时报错:ERROR: Unable to find the kernel source tree .......
  • 这里是针对Rockylinux(Centos)系统,如果你的是ubuntu或其他系统,可能这俩文件不能使用(未测试)

查看安装的版本

rpm -qa | egrep kernel

下载并安装 NVIDIA 驱动

从 NVIDIA 官方网站下载适用于你的显卡型号和系统版本的 .run 文件。
https://www.nvidia.cn/drivers/lookup/

以A40显卡为例

下载后的文件为:NVIDIA-Linux-x86_64-570.86.15.run
上传到服务器上

赋予下载的 .run 文件可执行权限:

chmod +x NVIDIA-Linux-x86_64-*.run

运行安装程序:

sudo ./NVIDIA-Linux-x86_64-*.run

按照提示完成安装过程。

验证安装

安装完成后,重启系统:

sudo reboot

使用 nvidia-smi命令验证驱动是否安装成功:

[root@bogon ~]# nvidia-smi
Mon Feb 10 13:45:19 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.86.15              Driver Version: 570.86.15      CUDA Version: 12.8     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA A40                     Off |   00000000:00:1A.0 Off |                    0 |
|  0%   43C    P0             88W /  300W |       1MiB /  46068MiB |      5%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

三、docker支持nvidia gpu

前提是已安装docker环境

安装nvidia-container-toolkit

#Configure the repository
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo \
    | tee /etc/yum.repos.d/nvidia-container-toolkit.repo
    
#Install the NVIDIA Container Toolkit packages
yum install -y nvidia-container-toolkit

#Configure Docker to use Nvidia driver 
# 会更新/etc/docker/daemon.json文件
sudo nvidia-ctk runtime configure --runtime=docker
# 重启docker
sudo systemctl restart docker

测试容器是否能使用gpu

docker run --rm --gpus all nvidia/cuda:12.6.3-base-rockylinux9 nvidia-smi

显示如下则说明docker已支持nvidia gpu

[root@bogon ~]# docker run --rm --gpus=all nvidia/cuda:12.6.3-base-rockylinux9 nvidia-smi

Mon Feb 10 05:46:25 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.86.15              Driver Version: 570.86.15      CUDA Version: 12.8     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA A40                     Off |   00000000:00:1A.0 Off |                    0 |
|  0%   44C    P0             89W /  300W |       1MiB /  46068MiB |      5%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容