验证目标:确认 同一张NVIDIA Tesla T4 计算卡在不同处理器架构(ARM / x86)下均能正常安装驱动并运行 nvidia-smi
测试平台:麒麟 V10 (aarch64) + Ubuntu 16.04 (x86_64)
驱动版本:麒麟 590.48.01 / Ubuntu 460.73.01
结论:✅ 验证通过(安装与基本功能正常)


一、背景:为什么做这个验证?

在 AI 基础设施选型中,一个常见问题是:GPU 卡在不同 CPU 架构下是否都能正常工作? 特别是随着国产化 ARM 服务器(如鲲鹏、飞腾)的普及,很多用户担心 GPU 在 ARM 平台上的兼容性。

为此,我们使用一张 NVIDIA Tesla T4 计算卡,分别在:

  • ARM 平台:麒麟 V10(KylinOS 10)aarch64

  • x86 平台:Ubuntu 16.04 amd64

两台服务器上进行了完整的驱动安装测试,验证了 同一张 T4 卡在两种架构下均能正常识别、驱动加载、运行 nvidia-smi


二、ARM 平台部署实录(麒麟 V10 aarch64)

2.1 环境信息

bash

# 查看系统内核与架构
uname -a

text

Linux localhost 4.19.90-89.11.v2401.ky10.aarch64 #1 SMP Thu Apr 25 18:20:10 CST 2024 aarch64 aarch64 aarch64 GNU/Linux

系统为 麒麟 V10,内核基于 4.19,架构为 aarch64(ARM 64位)。

bash

# 确认显卡硬件是否被识别
lspci | grep -i nvidia

text

84:00.0 3D controller: NVIDIA Corporation TU104GL [Tesla T4] (rev a1)

系统正确识别到 Tesla T4 显卡(设备 ID TU104GL)。

项目 详情
操作系统 麒麟 V10(KylinOS 10)
内核版本 4.19.90-89.11.v2401.ky10.aarch64
架构 aarch64(ARM 64位)
显卡 NVIDIA Tesla T4
驱动版本 590.48.01
包管理器 dnf(RPM 系)

2.2 安装步骤

第一步:安装编译环境

在麒麟(RHEL 系)系统中,C++ 编译器的包名为 gcc-c++(而非通用的 g++)。

bash

sudo dnf install -y gcc gcc-c++ make dkms kernel-devel-$(uname -r) wget
第二步:禁用 Nouveau 开源驱动

Nouveau 与官方驱动冲突,必须禁用。

bash

echo "blacklist nouveau" >> /etc/modprobe.d/blacklist-nouveau.conf
echo "options nouveau modeset=0" >> /etc/modprobe.d/blacklist-nouveau.conf
sudo dracut --force
sudo reboot

重启后验证(应无任何输出):

bash

lsmod | grep nouveau
第三步:下载并安装本地仓库包

访问 NVIDIA 官方驱动下载页面 ,依次选择:

  • 产品类型:Tesla → T-Series → Tesla T4

  • 操作系统:Linux aarch64-bit KylinOS 10(ARM 平台务必选对架构)

💡 如果您的系统不是麒麟,请选择对应的发行版和架构(例如 Ubuntu 选择 Linux aarch64-bit Ubuntu,CentOS 选择 Linux aarch64-bit RHEL/CentOS 等)。

下载得到的文件为:

text

nvidia-driver-local-repo-kylin10-590.48.01-1.0-1.aarch64.rpm

安装该仓库包(非驱动本身):

bash

sudo rpm -ivh nvidia-driver-local-repo-kylin10-590.48.01-1.0-1.aarch64.rpm

查看生成的源配置:

bash

cat /etc/yum.repos.d/*nvidia*.repo

ini

[nvidia-driver-local-kylin10-590.48.01]
name=nvidia-driver-local-kylin10-590.48.01
baseurl=file:///var/nvidia-driver-local-repo-kylin10-590.48.01
enabled=1
gpgcheck=1
gpgkey=file:///var/nvidia-driver-local-repo-kylin10-590.48.01/45132DFB.pub
第四步:安装核心驱动

bash

sudo dnf install -y nvidia-driver

安装过程中会自动编译内核模块。完成后检查模块加载:

bash

lsmod | grep nvidia

text

nvidia_uvm           1835008  0
nvidia_drm            262144  2
nvidia_modeset       1900544  2 nvidia_drm
nvidia              15007744  33 nvidia_uvm,nvidia_modeset

此时驱动核心已加载,但 nvidia-smi 工具尚未安装。

第五步:安装管理工具包

nvidia-smi 位于独立的 nvidia-driver-cuda 包中,需额外安装。

首先确认:

bash

sudo dnf provides '*/nvidia-smi'

输出显示该文件由 nvidia-driver-cuda 提供。

安装:

bash

sudo dnf install -y nvidia-driver-cuda
第六步:验证

无需重启(但建议重启),直接运行:

bash

nvidia-smi

text

Tue Aug  4 18:18:52 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 590.48.01              Driver Version: 590.48.01      CUDA Version: 13.1     |
+-----------------------------------------+------------------------+----------------------+
| 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  Tesla T4                       Off |   00000000:84:00.0 Off |                    0 |
| N/A   48C    P8             10W /   70W |     126MiB /  15360MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

2.3 ARM 平台关键要点

关键点 说明
驱动包命名 nvidia-driver(核心)+ nvidia-driver-cuda(工具)
架构标识 必须选择 aarch64 版本,不可使用 x86 版本
包管理 RPM 系,使用 dnf
C++ 编译器包名 在 RHEL 系(含麒麟)中为 gcc-c++,而在 Debian/Ubuntu 中为 g++与架构无关,取决于发行版

三、x86 平台部署实录(Ubuntu 16.04 amd64)

3.1 环境信息

bash

# 查看系统内核与架构
uname -a

text

Linux jykj-2288H-V5 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

系统为 Ubuntu 16.04,内核 4.4,架构为 x86_64(Intel/AMD 64位)。

bash

# 确认显卡硬件识别(设备 ID 1eb8 即为 Tesla T4)
lspci | grep -i nvidia

text

5e:00.0 3D controller: NVIDIA Corporation Device 1eb8 (rev a1)

1eb8 是 NVIDIA Tesla T4 的设备 ID。

项目 详情
操作系统 Ubuntu 16.04.7 LTS
内核版本 4.4.0-210-generic
架构 x86_64
显卡 NVIDIA Tesla T4
驱动版本 460.73.01
包管理器 apt(DEB 系)

3.2 安装步骤

第一步:安装编译环境

bash

sudo apt update
sudo apt install -y gcc make dkms linux-headers-$(uname -r)
第二步:禁用 Nouveau 开源驱动

bash

echo "blacklist nouveau" >> /etc/modprobe.d/blacklist-nouveau.conf
echo "options nouveau modeset=0" >> /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u
sudo reboot
第三步:下载并安装本地仓库包

访问 NVIDIA 官方驱动下载页面 ,选择:

  • 产品类型:Tesla → T-Series → Tesla T4

  • 操作系统:Linux 64-bit Ubuntu 16.04(x86 平台选 64-bit

💡 对于其他 Ubuntu 版本,选择对应的 Linux 64-bit Ubuntu XX.XX;对于 CentOS/RHEL,选择 Linux 64-bit RHEL/CentOS

下载得到:

text

nvidia-driver-local-repo-ubuntu1604-460.73.01_1.0-1_amd64.deb

安装该仓库包:

bash

sudo dpkg -i nvidia-driver-local-repo-ubuntu1604-460.73.01_1.0-1_amd64.deb

导入 GPG 密钥(注意文件名为小写):

bash

sudo apt-key add /var/nvidia-driver-local-repo-ubuntu1604-460.73.01/7fa2af80.pub

⚠️ 实际文件名为 7fa2af80.pub(全小写),而非 7FA2AF80.pub

查看源配置:

bash

cat /etc/apt/sources.list.d/nvidia-driver-local-ubuntu1604-460.73.01.list

text

deb file:///var/nvidia-driver-local-repo-ubuntu1604-460.73.01 /

关键步骤:刷新 APT 缓存

bash

sudo apt update

安装仓库包后,必须执行 apt update 更新包列表,否则 APT 找不到驱动包。

第四步:安装驱动

在 Ubuntu 16.04 中,驱动包命名格式为 nvidia-<版本号>(例如 nvidia-460),而不是较新发行版中的 nvidia-driver-<版本号>

bash

sudo apt install -y nvidia-460

该包已包含 nvidia-smi 等所有工具,无需额外安装。

安装过程中 DKMS 会自动编译内核模块。

第五步:验证

安装后可直接运行(但建议重启):

bash

nvidia-smi

text

Tue Aug  4 20:03:56 2026
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.73.01    Driver Version: 460.73.01    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| 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  Tesla T4            Off  | 00000000:5E:00.0 Off |                    0 |
| N/A   95C    P0    39W /  70W |      0MiB / 15109MiB |      5%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

3.3 x86 平台关键要点

关键点 说明
包名差异 Ubuntu 16.04 及更早版本使用 nvidia-XXX 格式;Ubuntu 18.04+ 改为 nvidia-driver-XXX,这是发行版打包规范的演变。
apt update 必须执行 安装仓库包后需刷新 APT 缓存,否则包不可见。
密钥文件大小写 实际密钥文件为小写 7fa2af80.pub,注意区分。
工具包含在驱动包内 nvidia-smi 随 nvidia-460 一起安装,无需额外操作。

四、对比总结

对比维度 ARM 平台(麒麟 V10) x86 平台(Ubuntu 16.04)
架构 aarch64 x86_64
操作系统 麒麟 V10(RHEL 系) Ubuntu 16.04(Debian 系)
包格式 RPM DEB
包管理器 dnf apt
仓库包命名 nvidia-driver-local-repo-kylin10-*.aarch64.rpm nvidia-driver-local-repo-ubuntu1604-*_amd64.deb
驱动主包 nvidia-driver nvidia-460
管理工具包 nvidia-driver-cuda(需单独安装) 已包含在 nvidia-460 中
关键步骤 安装仓库包 → dnf install 安装仓库包 → apt update → apt install
GPG 密钥导入 自动处理 需手动 apt-key add(注意大小写)
nvidia-smi 可用性 安装 nvidia-driver-cuda 后可用 随 nvidia-460 直接可用

相同点(跨架构通用)

  1. 硬件识别lspci | grep -i nvidia 均可正确识别 T4。

  2. 驱动安装流程:都是「下载仓库包 → 安装仓库包 → 刷新包管理器缓存 → 安装驱动包」。

  3. Nouveau 禁用:两种架构均需禁用开源驱动。

  4. 内核模块:均通过 DKMS 自动编译,加载 nvidianvidia_modesetnvidia_drmnvidia_uvm

  5. 最终验证nvidia-smi 均能正常显示 GPU 信息。


五、遇到的问题及解决方案

问题一:麒麟系统 g++ 包找不到

现象sudo dnf install g++ 报错 没有任何匹配: g++

原因:麒麟基于 RHEL,C++ 编译器包名为 gcc-c++

解决

bash

sudo dnf install -y gcc-c++

问题二:Ubuntu 16.04 驱动包名与预期不符

现象sudo apt install nvidia-driver-460 报 Unable to locate package

原因:Ubuntu 16.04 及更早版本使用旧的包命名规范,驱动包名为 nvidia-<版本号>,而 Ubuntu 18.04+ 才统一为 nvidia-driver-<版本号>

解决

bash

sudo apt install -y nvidia-460

问题三:Ubuntu GPG 密钥文件名大小写

现象apt-key add 报 No such file or directory

原因:实际文件名是 7fa2af80.pub(小写),而文档常写成大写。

解决

bash

sudo apt-key add /var/nvidia-driver-local-repo-ubuntu1604-460.73.01/7fa2af80.pub

问题四:apt update 后包仍不可见

根本原因:安装了仓库包但未执行 apt update,APT 缓存未更新。

解决:安装仓库包后必须执行 sudo apt update

问题五:Ubuntu Python 脚本兼容性(pyclean 语法错误)

背景:系统默认 Python 版本切换导致 /usr/bin/pyclean 和 /usr/bin/pycompile 使用 Python 2 语法但解释器指向 Python 3。

解决:修改脚本 shebang 指向 Python 2.7:

bash

sudo sed -i '1s/.*/#!\/usr\/bin\/python2.7/' /usr/bin/pyclean
sudo sed -i '1s/.*/#!\/usr\/bin\/python2.7/' /usr/bin/pycompile
sudo dpkg --configure -a
sudo apt --fix-broken install

六、验证结论

验证项 ARM(麒麟 V10) x86(Ubuntu 16.04)
硬件识别 ✅ 通过 ✅ 通过
驱动安装 ✅ 通过 ✅ 通过
内核模块加载 ✅ 通过 ✅ 通过
nvidia-smi 运行 ✅ 通过 ✅ 通过
GPU 状态查询 ✅ 通过 ✅ 通过
驱动版本 590.48.01 460.73.01

最终结论

✅ NVIDIA Tesla T4 显卡在 ARM(aarch64)和 x86(x86_64)两种主流 CPU 架构下均能正常安装驱动并运行 nvidia-smi,证明驱动安装和基础功能可用。

至于长期稳定运行,需要更长时间的负载测试,但本次验证已证明 部署流程是可行的,跨架构兼容性不存在障碍。


七、经验与建议

给运维人员的建议

  1. 提前确认架构:下载驱动前务必检查 uname -m,选择对应架构的驱动包。

  2. 优先使用官方本地仓库包.rpm / .deb 方式比手动执行 .run 更易维护,支持 DKMS 自动重建。

  3. 注意发行版的包命名差异:Ubuntu 16.04 用 nvidia-XXX,Ubuntu 18.04+ 用 nvidia-driver-XXX;RHEL 系通常用 nvidia-driver 或 nvidia-driver-cuda

  4. 安装后务必重启(或至少重新加载内核模块),确保所有服务正常启动。

  5. 定期关注散热:Tesla T4 空闲温度可能较高(如 95°C),需确保服务器风道和风扇策略适当。

给 AI 开发者的建议

  • 在两种架构下,CUDA 代码无需修改即可运行(前提是 CUDA 版本一致)。

  • 如果使用 PyTorch/TensorFlow,直接从官方源安装对应架构的轮子即可,底层驱动已由运维配置好。

  • 在 ARM 平台上性能未见异常(功耗、利用率均符合预期),可放心用于训练/推理任务。


八、参考资料

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐