在 Ubuntu 上安装#
本节介绍在 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 20.04
Linux Kernel 5.4 LTS
访问软件仓库#
DGX 软件堆栈可从可通过互联网访问的仓库获得。如果您的安装不允许连接到互联网,请参阅附录离线安装,了解有关在“离线”系统上安装和升级软件的信息。
如果您正在使用代理服务器,请按照网络配置部分中的说明设置代理配置。
安装注意事项#
在 Ubuntu 上安装 NVIDIA DGX 软件堆栈允许您从额外的配置选项中进行选择,这些选项在预配置的 DGX OS 安装程序中不可用。这包括驱动器分区、文件系统选择和软件选择。
在开始安装 Ubuntu 和 NVIDIA DGX 软件堆栈之前,您应该评估以下选项。安装和配置说明将在本文档的相应部分中介绍。
系统驱动器镜像 (RAID-1) [推荐]#
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 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。因此,驱动器已经过分区和格式化。DGX OS 安装程序除了 EFI 启动分区外,还为根分区配置了单个 ext4 分区。您有以下选项
保留当前分区布局和格式 [推荐]
创建自定义分区方案 [高级]
使用具有默认 Ubuntu 分区方案的单个磁盘
创建具有 RAID 配置的新自定义分区方案是一个更复杂的过程,不在本文档的范围之内。有关更多信息,请参阅 Ubuntu 安装指南。当您选择使用整个磁盘的选项时,Ubuntu 将仅使用两个冗余启动驱动器中的一个。
注意
数据驱动器的 RAID 级别可以在 Ubuntu 安装后更改。
以下说明描述了保留当前分区布局的步骤。它仍然需要您重新创建和重新格式化分区。
注意
DGX-1 使用硬件 RAID 控制器,RAID 成员资格只能在 RAID 控制器 BIOS 中配置。默认配置包含两个虚拟设备
第一个虚拟设备 (sda) 是单个磁盘,用作系统驱动器
第二个虚拟设备 (sdb) 包含其余磁盘,用于数据。
选择自定义存储布局,然后单击完成。
识别系统驱动器。
DGX-2 和 DGX A100 上的系统驱动器是 RAID 1 阵列,您应该很容易找到它。DGX-1 具有硬件 RAID 控制器,您将看到单个驱动器作为 sda。
选择系统驱动器,然后单击格式化。
将格式设置为 ext4(不要选择“保留格式为 <文件系统>”)
将挂载点设置为“/”
在原始设备上设置启动标志。
在可用设备下识别系统驱动器(不是 RAID 阵列),然后为第一个设备选择“用作启动设备”。在具有两个驱动器的 DGX-2 和 DGX A100 上,对第二个驱动器重复此过程,然后选择“用作另一个启动设备”。
完成配置。
RAID 0 阵列:在大多数情况下,数据驱动器的 RAID 0 阵列已在出厂时创建。如果尚未创建,您可以选择在存储配置对话框中或在完成 Ubuntu 安装后使用
config_raid_array
工具创建它们。启用驱动器加密(可选):请注意,加密只能在存储配置期间启用。安装后无法更改。要再次更改加密状态,您需要重新安装操作系统。要启用驱动器加密,您必须创建虚拟组和卷。这不在本文档的范围之内。有关更多详细信息,请参阅 Ubuntu 文档。
交换分区:默认安装未定义交换分区。当系统内存已满时,Linux 使用任何配置的交换分区来临时存储数据,从而导致性能下降。对于具有大内存的 DGX 系统,不建议使用交换。
页面顶部的“文件系统摘要”应显示 RAID 1 驱动器上的根分区和 boot/efi 分区(这两个驱动器将仅显示为单个条目)。在具有硬件 RAID 控制器的 DGX-1 上,它将显示 sda 上的根分区。
选择完成并接受所有更改。
按照说明完成其余任务。
在配置文件设置对话框中创建一个默认用户,并在特色服务器 Snaps 屏幕中选择您要安装的任何其他 SNAP 包。
等待安装完成。
安装运行时会显示日志消息。
安装完成后,选择立即重启以重启系统。
重启后,您可以使用上面创建的用户的用户名和密码登录。
当使用 LVM(Ubuntu 的默认分区方案)时,DGX-2 用户可能会遇到 https://bugs.launchpad.net/+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/focal/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
禁用 ondemand governor 以将 governor 设置为性能模式
sudo systemctl disable ondemand
推荐:禁用自动无人值守升级。
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 上数据驱动器的自加密驱动器 (SED) 的工具。
这需要将密钥存储在 TPM 中或使用外部密钥服务器。有关使用信息,请参阅DGX A100 用户指南中的“管理自加密驱动器”部分。
安装
nv-disk-encrypt
软件包。sudo apt install -y nv-disk-encrypt
重启系统。
sudo reboot
可选:如果您希望将 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-generic
安装 NVIDIA CUDA 驱动程序。
对于非 NVswitch 系统,如 DGX-1
sudo apt install -y nvidia-driver-525-server linux-modules-nvidia-525-server-generic libnvidia-nscq-525 nvidia-modprobe datacenter-gpu-manager nv-persistence-mode
对于 NVswitch 系统,如 DGX-2 和 DGX A100,请务必同时安装 fabric-manager 软件包
sudo apt install -y nvidia-driver-525-server linux-modules-nvidia-525-server-generic libnvidia-nscq-525 nvidia-modprobe nvidia-fabricmanager-525 datacenter-gpu-manager nv-persistence-mode
启用 persistenced 守护程序和其他服务
对于非 NVswitch 系统,例如 DGX-1
sudo systemctl enable nvidia-persistenced nvidia-dcgm
对于 NVswitch 系统,如 DGX-2 和 DGX A100,请务必同时启用 NVIDIA fabric 管理器服务
sudo systemctl enable nvidia-fabricmanager nvidia-persistenced nvidia-dcgm
重启系统以加载驱动程序并更新系统配置。
发出 reboot 命令。
sudo reboot
系统重启后,验证驱动程序是否已加载并正在处理 NVIDIA 设备。
nvidia-smi
输出应显示所有可用的 GPU,并且持久模式为开启
+---------------------------------------------------------------------------+ | NVIDIA-SMI 450.119.04 Driver Version: 450.119.04 CUDA Version: 11.4 | |----------------------------+----------------------+-----------------------+ | 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 企业版发行版 (MLNX_OFED)#
DGX 系统包括高性能网卡,用于通过 Infiniband 或以太网连接到其他系统。您可以选择 Ubuntu 中包含的驱动程序和 Mellanox OpenFabrics 企业版发行版(Mellanox OFED 或 MOFED)。MOFED 提供了多节点 GPU 应用程序所需的必要驱动程序和系统软件,允许系统在不同系统的 GPU 之间直接传输数据 (RDMA),而无需将数据复制到系统内存。这也需要 nv-peer-memory 模块。
以下步骤安装 MOFED 和所有必需的附加软件。
安装 MOFED 驱动程序
sudo apt install -y mlnx-ofed-all nvidia-mlnx-ofed-misc
卸载
nv-peer-mem
模块。sudo rmmod nv_peer_mem
启用并启动
oenibd
服务。sudo systemctl enable --now openibd
安装 Docker 和 NVIDIA 容器工具包#
容器提供隔离的环境,其中包含特定应用程序所需软件的完整文件系统。要在 DGX 和 GPU 上使用 NVIDIA 提供的用于 AI 和其他框架的容器,您需要安装 Docker 和 NVIDIA 容器工具包。它负责为容器内部运行的软件提供对 GPU 的访问。
请注意,固件更新容器也需要这些工具来升级系统固件。
安装 docker-ce、NVIDIA 容器工具包以及针对典型 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:11.0-base nvidia-smi
示例输出
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 525.xxx.xx Driver Version: 525.xxx.xx CUDA Version: 11.0 | |-------------------------------+----------------------+----------------------+ | 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 | +-----------------------------------------------------------------------------+
验证输出是否显示所有可用的 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。
后续步骤和附加信息#
有关进一步的安装和配置选项,另请参阅以下章节