在 Ubuntu 上安装 DGX 软件#
本节介绍在 DGX 系统上安装和配置 Ubuntu 以及 NVIDIA DGX 软件堆栈的步骤。
DGX OS 提供了 Ubuntu 的自定义安装,并包含 NVIDIA 的附加软件,从而为运行 AI 和分析工作负载提供了一个统包解决方案。附加软件,即 NVIDIA DGX 软件堆栈,包含特定于平台的配置、诊断和监控工具,以及在 DGX 系统上运行 AI、机器学习和分析应用程序所需的稳定、经过测试和支持的操作系统驱动程序。
您还可以选择在纯 Ubuntu 发行版之上安装 NVIDIA DGX 软件堆栈,同时仍然受益于高级 DGX 功能。这种安装方法支持更大的灵活性,例如自定义分区方案。
集群部署也受益于这种安装方法,因为它利用了 Ubuntu 标准化的自动化和非交互式安装过程。从 Ubuntu 20.04 开始,安装程序引入了一种用于自动化安装的新机制,允许系统管理员以无人值守和非交互方式安装系统。您可以在Cloud-init 配置文件中找到有关创建此类 cloud-init 配置文件的信息。有关更多详细信息,请参阅Ubuntu 自动化服务器安装。
目标受众是管理 DGX 系统集群的 IT 专业人员和集成合作伙伴。
先决条件#
以下是要求的或推荐的先决条件(在指示的地方)。
Ubuntu 软件要求#
DGX 软件堆栈需要以下软件版本
Ubuntu 22.04
Linux 内核 5.15 LTS
访问软件仓库#
DGX 软件堆栈可从可以通过互联网访问的仓库获得。如果您的安装不允许连接到互联网,请参阅附录气隙安装,了解有关在“气隙”系统上安装和升级软件的信息。
如果您正在使用代理服务器,请按照网络配置部分中的说明设置代理配置。
安装注意事项#
在 Ubuntu 上安装 NVIDIA DGX 软件堆栈允许您从额外的配置选项中进行选择,这些选项在预配置的 DGX OS 安装程序中不可用。这包括驱动器分区、文件系统选择和软件选择。
在开始安装 Ubuntu 和 NVIDIA DGX 软件堆栈之前,您应该评估以下选项。安装和配置说明将在本文档的相应部分中介绍。
系统驱动器镜像 (RAID-1) [推荐]#
DGX H100/H200、DGX A100 和 DGX-2 系统嵌入了两个系统驱动器,用于镜像 OS 分区 (RAID-1)。这确保了在一个驱动器发生故障时的数据弹性。如果要启用镜像,则需要在 Ubuntu 安装的驱动器配置期间启用它。安装后无法启用。
数据驱动器 RAID-0 或 RAID-5#
DGX 系统配备了多个数据驱动器,可以配置为 RAID-0 以获得性能,或配置为 RAID-5 以获得弹性。RAID-0 提供最大的存储容量和性能,但不提供任何冗余。如果阵列中的单个 SSD 发生故障,则阵列上存储的所有数据都将丢失。
RAID-0 推荐用于数据缓存。您可以使用 cachefilesd 为 NFS 共享提供缓存。网络文件系统 (NFS) 是利用缓存文件系统所必需的。RAID-5 应用于持久数据存储。
您可以在初始 Ubuntu 安装后使用 nvidia-config-raid
工具或在 Ubuntu 安装期间配置 RAID 和数据缓存。建议手动安装使用 nvidia-config-raid 工具。
注意
DGX-1 使用硬件 RAID 控制器,该控制器无法在 Ubuntu 安装期间配置。您仍然可以使用 nvidia-config-raid
工具或在 BIOS 中更改配置。
系统驱动器加密 [可选]#
根文件系统加密是一种基于软件的方法,通过即时加密数据来保护存储在系统分区中的内容免受未经授权的访问。它要求用户在每次启动时解锁文件系统,可以通过手动输入密码或使用集中式密钥服务器自动解锁。
系统驱动器加密只能在 Ubuntu 安装期间启用。
数据驱动器加密 [可选]#
数据驱动器加密仅在配备自加密驱动器 (SED) 的 DGX H100/H200 和 DGX A100 系统上受支持。可以在安装 Ubuntu 后使用 nv-encrypt
工具启用。它需要将密钥存储在 TPM 或外部密钥管理中。
系统驱动器分区#
默认情况下,Ubuntu 仅为整个文件系统使用单个分区。对于出于安全原因需要更精细分区方案的部署,可以在 Ubuntu 安装期间配置此项。推荐的分区方案是仅为 Linux 根分区使用单个分区,并使用 ext4 文件系统。
安装 Ubuntu#
有几种安装 Ubuntu 的方法,如Ubuntu 服务器指南中所述。
为方便起见,本节提供了特定于 DGX 的附加说明,用于按照基本安装安装 Ubuntu。如果您有首选的 Ubuntu 安装方法,则可以跳过本节。
本节涵盖的步骤
连接到 DGX 系统
从安装介质启动
运行 Ubuntu 安装程序(包括网络和存储配置步骤)
从安装介质启动#
在安装和配置步骤中,您需要连接到 DGX 系统的控制台。有关更多详细信息,请参阅连接到 DGX 系统。
通过以下方式之一启动 Ubuntu ISO 映像
对于提供 BMC 的系统,通过 BMC 远程启动。
有关说明,请参阅上面列出的相应 DGX 用户指南中的远程重新映像系统部分。
从 UEFI 可启动 USB 闪存驱动器或 DVD-ROM 本地启动。
有关说明,请参阅上面列出的相应 DGX 用户指南中的从 USB 闪存驱动器或 DVD-ROM 安装 DGX OS 映像部分。
运行 Ubuntu 安装程序#
启动 ISO 映像后,Ubuntu 安装程序应启动并引导您完成安装过程。
注意
以下步骤中的屏幕截图来自 DGX A100。其他 DGX 系统在驱动器分区和网络方面存在差异。
在 ISO 映像的启动过程中,您可能会看到一些由于旧驱动程序等引起的错误消息。可以安全地忽略它们。

在欢迎屏幕上选择您的语言,然后按照说明选择是否更新安装程序(如果提供)并选择键盘。
在网络连接屏幕上,配置您的网络。
安装程序尝试自动检索所有网络接口的 DHCP 地址,因此您应该能够继续操作,而无需进行任何更改。但是,您也可以选择手动配置接口。
在引导式存储配置屏幕上,配置分区和文件系统。所有 DGX 系统都预装了 DGX OS。因此,驱动器已经过分区和格式化。除了 EFI 启动分区外,DGX OS 安装程序还为根分区配置了一个 ext4 分区。您有以下选项
保留当前分区布局和格式 [推荐]
创建自定义分区方案 [高级]
使用具有默认 Ubuntu 分区方案的单个磁盘
创建具有 RAID 配置的新的自定义分区方案是一个更复杂的过程,超出本文档的范围。有关更多信息,请参阅 Ubuntu 安装指南。当您选择使用整个磁盘的选项时,Ubuntu 将仅使用两个冗余启动驱动器之一。
注意
数据驱动器的 RAID 级别可以在 Ubuntu 安装后更改。
以下说明描述了保留当前分区布局的步骤。它仍然需要您重新创建和重新格式化分区。
注意
DGX-1 使用硬件 RAID 控制器,RAID 成员身份只能在 RAID 控制器 BIOS 中配置。默认配置包含两个虚拟设备
第一个虚拟设备 (sda) 是单个磁盘,用作系统驱动器
第二个虚拟设备 (sdb) 包含其余磁盘,用于数据。
选择自定义存储布局,然后单击完成。
识别系统驱动器。
DGX-2、DGX A100 和 DGX H100/H200 上的系统驱动器是 RAID 1 阵列,您应该很容易找到它。DGX-1 具有硬件 RAID 控制器,您将看到一个驱动器 sda。
选择系统驱动器,然后单击格式化。
将格式设置为 ext4(不要选择“保持格式为 <文件系统>”)
将挂载点设置为“/”
在原始设备上设置启动标志。
在“可用设备”下识别系统驱动器(不是 RAID 阵列),然后为第一个设备选择“用作启动设备”。在具有两个驱动器的 DGX-2、DGX A100 和 DGX H100/H200 上,对第二个驱动器重复此过程,然后选择“用作另一个启动设备”。
完成配置。
RAID 0 阵列:在大多数情况下,数据驱动器的 RAID 0 阵列已在出厂时创建。如果尚未创建,您可以选择在“存储配置”对话框中创建它们,或者在完成 Ubuntu 安装后使用
config_raid_array
工具创建它们。启用驱动器加密(可选):请注意,加密只能在“存储配置”期间启用。安装后无法更改。要再次更改加密状态,您需要重新安装操作系统。要启用驱动器加密,您必须创建一个虚拟组和卷。这超出了本文档的范围。有关更多详细信息,请参阅 Ubuntu 文档。
交换分区:默认安装未定义交换分区。当系统内存已满时,Linux 使用任何配置的交换分区来临时存储数据,从而导致性能下降。对于 DGX 系统的大内存,不建议使用交换。
页面顶部的“文件系统摘要”应显示 RAID 1 驱动器上的根分区和一个 boot/efi 分区(两个驱动器将仅显示为一个条目)。在带有硬件 RAID 控制器的 DGX-1 上,它将显示 sda 上的根分区。
选择完成并接受所有更改。
按照说明完成其余任务。
在配置文件设置对话框中创建一个默认用户,然后在特色服务器 Snap 屏幕中选择要安装的任何其他 SNAP 包。
等待安装完成。
安装运行时会显示日志消息。
安装完成后,选择立即重启以重启系统。
重启后,您可以使用上面创建的用户的用户名和密码登录。
当使用 LVM(Ubuntu 的默认分区方案)时,DGX-2 用户可能会遇到 https://bugs.launchpad.net/ubuntu/+source/lvm2/+bug/1834250。“/dev/sda: open failed: No medium found”消息是无害的,可以通过使用以下过滤器更新 /etc/lvm/lvm.conf 来避免:“global_filter = ["r|/dev/sda|"]":
安装 DGX 软件堆栈#
本节要求您已在 DGX 上安装 Ubuntu 并重启系统。
注意
通过安装 DGX 软件堆栈,您确认您已阅读并同意受DGX 软件许可协议的约束。您还确认您理解,您选择在 DGX 中安装的任何预发布软件和材料可能无法完全正常运行,可能包含错误或设计缺陷,并且可能具有相对于 NVIDIA 软件和材料商业版本的降低或不同的安全性、隐私性、可用性和可靠性标准,并且您自行承担使用预发布版本的风险。
安装 DGX 系统配置和工具#
NVIDIA DGX 软件堆栈包括特定于系统的配置和工具,以利用高级 DGX 功能。它们以软件包的形式从 NVIDIA 仓库提供,可以安装在典型的 Ubuntu 安装之上。所有特定于系统的软件组件都捆绑到特定于系统的元软件包中
system-configurations
system-tools
system-tools-extra
有关这些软件包内容的详细信息,请参阅发行说明。
以下步骤启用 NVIDIA 仓库并安装特定于系统的软件包。
通过提取仓库信息来启用 NVIDIA 仓库。
此步骤将 URI 和配置首选项添加到
/etc/apt
目录,以控制将安装的软件包版本,并将 NVIDIA 仓库的 GPG 密钥添加到/usr/share/keyrings
目录。curl https://repo.download.nvidia.com/baseos/ubuntu/jammy/dgx-repo-files.tgz | sudo tar xzf - -C /
使用所有软件包的最新版本信息更新内部 APT 数据库。
sudo apt update
推荐:使用最新版本升级所有软件包。
sudo apt upgrade
安装 DGX 系统工具和配置。
对于 DGX-1,安装 DGX-1 配置和 DGX-1 系统工具
sudo apt install -y dgx1-system-configurations dgx1-system-tools dgx1-system-tools-extra
对于 DGX-2,安装 DGX-2 配置和 DGX-2 系统工具
sudo apt install -y dgx2-system-configurations dgx2-system-tools dgx2-system-tools-extra
对于 DGX A100,安装 DGX A100 配置和 DGX A100 系统工具
sudo apt install -y dgx-a100-system-configurations dgx-a100-system-tools dgx-a100-system-tools-extra nvidia-utils-525-server
对于 DGX H100/H200,安装 DGX H100/H200 配置和 DGX H100/H200 系统工具
sudo apt install -y dgx-h100-system-configurations dgx-h100-system-tools dgx-h100-system-tools-extra nvidia-utils-525-server nvfwupd
安装
linux-tools-nvidia
软件包。sudo apt install -y linux-tools-nvidia
安装 NVIDIA peermem 加载器软件包。
sudo apt install -y nvidia-peermem-loader
推荐:禁用无人值守升级。
Ubuntu 会定期检查安全性和其他错误修复,并通常在夜间自动安装更新软件包。由于这可能会造成中断,因此您应定期检查更新并手动安装它们。
sudo apt purge -y unattended-upgrades
推荐:启用串行 over LAN 控制台输出。
注意
如果您启用了启动驱动器加密,则如果您安装此软件包,则输入密码和输入的提示将通过串行控制台显示。
sudo apt install -y nvidia-ipmisol
可选:修改
logrotate
策略以收集更多日志信息(但大小受限)sudo apt install -y nvidia-logrotate
配置更改仅在重启系统后生效。为了最大限度地减少额外的重启,您可以将此步骤推迟到稍后在本文档中安装驱动程序之后。
配置数据驱动器#
DGX 系统中的数据驱动器可以配置为 RAID 0 或 RAID 5。RAID 0 提供最大的存储容量和性能,但不提供任何冗余。
RAID 0 通常用于数据缓存。您可以使用 cachefilesd 为 NFS 共享提供缓存。
重要提示
您可以稍后更改 RAID 级别,但这将破坏这些驱动器上的数据。
除 DGX-1 外,RAID 配置可以在 Ubuntu 安装期间配置。如果您已在 Ubuntu 安装期间配置了 RAID 阵列,则可以跳过第一步并转到步骤 2。
配置 /raid 分区。
所有 DGX 系统都支持 RAID 0 和 RAID 5 阵列。
要创建 RAID 0 阵列
sudo /usr/bin/configure_raid_array.py -c -f
要创建 RAID 5 阵列
sudo /usr/bin/configure_raid_array.py -c -f -5
该命令创建
/raid
挂载点和 RAID 阵列,并在/etc/fstab
中添加相应的条目。可选:安装用于管理 DGX A100 或 DGX H100/H200 上数据驱动器的自加密驱动器 (SED) 的工具。
有关更多信息,请参阅管理自加密驱动器。
可选:如果您希望将 RAID 阵列用于 NFS 挂载的读取缓存,则可以安装
cachefilesd
并为 NFS 共享设置 cachefs 选项。安装
cachefilesd
和nvidia-conf-cachefilesd
。这将更新 cachefilesd 配置以使用
/raid
分区。sudo apt install -y cachefilesd nvidia-conf-cachefilesd
通过设置
fsc
标志,在要缓存的所有 NFS 共享上启用缓存。编辑
/etc/fstab
,并将fsc
标志添加到挂载选项,如本示例所示。<nfs_server>:<export_path> /mnt nfs rw,noatime,rsize=32768,wsize=32768,nolock,tcp,intr,fsc,nofail 0 0
挂载 NFS 共享。
如果共享已挂载,请使用重新挂载选项。
mount <mount-point> -o,remount
要验证是否已启用缓存,请发出以下命令。
cat /proc/fs/nfsfs/volumes
在命令的输出中查找文本
FSC=yes
。NFS 将在后续重启周期中启用缓存的情况下挂载。
安装 GPU 驱动程序#
您可以选择 DGX 系统的不同 GPU 驱动程序分支。最新的驱动程序版本包含新功能,但可能无法提供与旧版本相同的支持持续时间。有关更多详细信息以及 GPU 架构所需的最低驱动程序版本,请查阅数据中心驱动程序发行说明。
使用以下命令显示已安装驱动程序的列表。
确保拥有最新版本的软件包数据库。
sudo apt update
显示所有可用驱动程序的列表。
sudo apt list nvidia-driver*server
示例输出
nvidia-driver-450-server/jammy-updates,jammy-security 450.216.04-0ubuntu0.22.04.1 amd64 nvidia-driver-460-server/jammy-updates,jammy-security 525.161.03-0ubuntu0.22.04.1 amd64 nvidia-driver-525-server/jammy-updates,jammy-security 525.161.03-0ubuntu0.22.04.1 amd64 nvidia-driver-510-server/jammy-updates,jammy-security 515.86.01-0ubuntu0.22.04.1 amd64 nvidia-driver-515-server/jammy-updates,jammy-security 515.86.01-0ubuntu0.22.04.1 amd64 nvidia-driver-525-server/jammy-updates,jammy-security 525.60.13-0ubuntu0.22.04.1 amd64
以下步骤安装 NVIDIA CUDA 驱动程序并配置系统。将用作示例的发行版本 (525) 替换为您要安装的发行版本。确保您要安装的驱动程序版本受系统中 GPU 的支持。
确保您拥有最新版本的软件包数据库。
sudo apt update
确保您已安装最新的内核版本。
驱动程序软件包依赖于内核,更新数据库可能会更新版本信息。
sudo apt install -y linux-nvidia
安装 NVIDIA CUDA 驱动程序。
对于非 NVswitch 系统(如 DGX-1)
sudo apt install -y nvidia-driver-525-server linux-modules-nvidia-525-server-nvidia libnvidia-nscq-525 nvidia-modprobe datacenter-gpu-manager nv-persistence-mode
对于 NVswitch 系统(如 DGX-2、DGX A100 和 DGX H100/H200),请务必同时安装 fabric-manager 软件包
sudo apt install -y nvidia-driver-525-server linux-modules-nvidia-525-server-nvidia libnvidia-nscq-525 nvidia-modprobe nvidia-fabricmanager-525 datacenter-gpu-manager nv-persistence-mode
启用持久性守护程序和其他服务
对于非 NVswitch 系统,例如 DGX-1
sudo systemctl enable nvidia-persistenced nvidia-dcgm
对于 NVswitch 系统(如 DGX-2、DGX A100 和 DGX H100/H200),请务必同时启用 NVIDIA fabric manager 服务
sudo systemctl enable nvidia-fabricmanager nvidia-persistenced nvidia-dcgm
重启系统以加载驱动程序并更新系统配置。
发出重启命令。
sudo reboot
系统重启后,验证驱动程序是否已加载并正在处理 NVIDIA 设备。
nvidia-smi
输出应显示所有可用的 GPU 和持久模式开启
+---------------------------------------------------------------------------+ | NVIDIA-SMI 535.54.03 Driver Version: 535.54.03 CUDA Version: 12.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 V100-SXM2... On | 00000000:06:00.0 Off | 0 | | N/A 35C P0 42W / 300W | 0MiB / 16160MiB | 0% Default | | | | N/A | +----------------------------+----------------------+-----------------------+ | 1 Tesla V100-SXM2... On | 00000000:07:00.0 Off | 0 | | N/A 35C P0 44W / 300W | 0MiB / 16160MiB | 0% Default | | | | N/A | +----------------------------+----------------------+-----------------------+ ... +----------------------------+----------------------+-----------------------+ | 7 Tesla V100-SXM2... On | 00000000:8A:00.0 Off | 0 | | N/A 35C P0 43W / 300W | 0MiB / 16160MiB | 0% Default | | | | N/A | +----------------------------+----------------------+-----------------------+ +---------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |===========================================================================| | No running processes found | +---------------------------------------------------------------------------+
安装 Mellanox OpenFabrics Enterprise Distribution (MLNX_OFED)#
DGX 系统包括高性能网卡,用于通过 Infiniband 或以太网连接到其他系统。您可以选择 Ubuntu 中包含的驱动程序和 Mellanox OpenFabrics Enterprise Distribution(Mellanox OFED 或 MOFED)。
以下步骤描述了如何安装 MOFED 和所有必需的附加软件,以代替默认的 OFED Ubuntu 驱动程序。
安装 nvidia-manage-ofed 软件包
sudo apt install -y nvidia-manage-ofed
删除内置 OFED 组件
sudo /usr/sbin/nvidia-manage-ofed.py -r ofed
添加 Mellanox OFED 组件
sudo /usr/sbin/nvidia-manage-ofed.py -i mofed
注意
该命令安装当前在仓库中可用的最新版本的 MLNX_OFED。要安装最新版本以外的替代版本,请使用
-v
选项指定替代版本。以下示例安装 MLNX_OFED 版本 5.9-0.5.6.0sudo /usr/sbin/nvidia-manage-ofed.py -i mofed -v 5.9-0.5.6.0
重启系统。
安装 Docker 和 NVIDIA Container Toolkit#
容器提供隔离的环境,其中包含特定应用程序所需软件的完整文件系统。要在 DGX 和 GPU 上使用 NVIDIA 提供的用于 AI 和其他框架的容器,您需要安装 Docker 和 NVIDIA Container Toolkit。它负责提供对容器内部运行的软件的 GPU 的访问权限。
请注意,固件更新容器也需要这些工具来升级系统固件。
安装 docker-ce、NVIDIA Container Toolkit 以及针对典型 DL 工作负载的优化。
sudo apt install -y docker-ce nvidia-container-toolkit nv-docker-options
重启 docker 守护程序。
sudo systemctl restart docker
要验证安装,请运行一个容器并检查它是否可以访问 GPU。以下说明假定 NVIDIA GPU 驱动程序已安装并加载。
注意
此验证从 NGC 注册表下载容器,并且要求系统具有互联网访问权限。
执行以下命令以启动容器并在容器内运行 nvidia-smi 工具
sudo docker run --gpus=all --rm nvcr.io/nvidia/cuda:12.3.2-base-ubuntu22.04 nvidia-smi
验证输出是否显示所有可用的 GPU,并且持久模式设置为“开启”。
安装 NVIDIA 系统管理 (NVSM) 工具 [推荐]#
NVIDIA 系统管理 (NVSM) 是一个用于监控数据中心 NVIDIA DGX 节点的软件框架。它允许客户快速获取系统的健康状况报告,并且 NVIDIA 支持团队通常需要它来解决问题。
以下步骤安装和配置 NVSM。
安装 NVIDIA 系统管理工具 (NVSM)
sudo apt install -y nvsm
可选:修改每日消息 (MOTD) 以显示 NVSM 健康状况监控警报和发布信息。
sudo apt install -y nvidia-motd
DGX OS 安装程序安装的其他软件#
Ubuntu 和 NVIDIA 仓库为各种应用程序提供了许多其他软件包。例如,DGX OS 安装程序安装了多个其他软件包来帮助系统管理和开发人员,这些软件包默认情况下未安装。
以下步骤安装 DGX OS 安装程序安装的其他软件包
安装用于系统管理任务的其他软件
sudo apt install -y chrpath cifs-utils fping gdisk iperf ipmitool lsscsi net-tools nfs-common quota rasdaemon pm-utils samba-common samba-libs sysstat vlan
安装用于开发任务的其他软件
sudo apt install -y build-essential automake bison cmake dpatch flex gcc-multilib gdb g++-multilib libelf-dev libltdl-dev linux-tools-generic m4 swig
NVIDIA CUDA 开发者仓库提供了一种简便的机制来部署 NVIDIA 工具和库,例如 CUDA 工具包、cuDNN 或 NCCL。
后续步骤和附加信息#
有关更多安装和配置选项,另请参阅以下章节