快速入门和基本操作#

本章提供使用 DGX A100 系统的基本要求和说明,包括如何执行初步健康检查以及如何准备运行容器。请访问 DGX 文档 获取更多产品文档。

安装与配置#

在安装 DGX A100 之前,请确保已将所有相关的站点信息提供给您的安装合作伙伴。

重要提示

您的 DGX A100 系统必须由 NVIDIA 合作伙伴网络人员或 NVIDIA 现场服务工程师安装。如果未按规定执行,您的 DGX A100 硬件保修将失效。

注册您的 DGX A100#

要获得 DGX A100 的支持,请按照购买时收到的授权认证电子邮件中的注册说明进行操作。

注册后,您可以访问 NVIDIA 企业支持门户,获得技术支持,获取软件更新,并设置 NGC for DGX systems 帐户。

如果您没有收到相关信息,请访问 NVIDIA 企业支持门户,打开一个 NVIDIA 企业支持团队的案例。该站点提供了联系 NVIDIA 企业服务团队以获得支持的方式,无需 NVIDIA 企业支持帐户。另请参阅 客户支持

获取 NGC 帐户#

以下是关于如何获取 NGC 帐户的一些信息。

NVIDIA NGC 提供对 GPU 优化软件的简单访问,用于深度学习、机器学习和高性能计算 (HPC)。NGC 帐户授予您访问这些工具的权限,并使您能够设置私有注册表来管理您的定制软件。

如果您是 DGX 系统采购的组织管理员,请与 NVIDIA 企业支持部门合作设置 NGC 企业帐户。有关获取 NGC 企业帐户的更多信息,请参阅 NGC 私有注册表用户指南

开启和关闭 DGX A100#

DGX A100 是一个复杂的系统,集成了大量尖端组件,具有特定的启动和关闭顺序。请遵守以下启动和关闭说明。

启动注意事项#

为了保持 DGX A100 顺畅运行,请在到达登录提示符后留出最多一分钟的空闲时间。这确保所有组件都可以完成初始化。

关闭注意事项#

关闭 DGX A100 时,始终从操作系统启动关机,短暂按下电源按钮,或使用 BMC 的正常关机,并等待系统进入断电状态后再执行任何维护。

警告

危险风险 - 在操作系统运行时,移除电源线或使用配电单元 (PDU) 关闭系统可能会损坏 DGX A100 服务器中的敏感组件。

验证功能 - 快速健康检查#

NVIDIA 为客户提供了一个名为 NVIDIA System Management 或 NVSM 的诊断和管理工具。nvsm 命令可用于确定系统的健康状况、识别组件问题和警报,或运行压力测试以确保所有组件在负载下都能正常工作。Docker 的使用是充分发挥系统性能的关键,因为 NVIDIA 针对 DGX 系统上使用的所有主要框架和工作负载优化了容器。

以下是在 DGX A100 系统上执行健康检查以及验证 Docker 和 NVIDIA 驱动程序安装的步骤。

  1. 建立到 DGX A100 系统的 SSH 连接。

  2. 运行基本系统检查。

    $ sudo nvsm show health
    
  3. 验证输出摘要是否显示所有检查均为“健康”状态,并且总体系统状态为“健康”状态。

  4. 通过查看已安装的 Docker 版本来验证 Docker 是否已安装。

    $ sudo docker --version
    

    这应返回版本为“Docker version 19.03.5-ce”,其中实际版本可能因 DGX OS Server 软件的特定版本而异。

  5. 验证与 NVIDIA 存储库的连接以及 NVIDIA 驱动程序是否已安装。

    $ sudo docker run --gpus all --rm nvcr.io/nvidia/cuda:11.0-base nvidia-smi
    

    Docker 逐层拉取 nvidia/cuda 容器镜像,然后运行 nvidia-smi。

    完成后,输出应显示 NVIDIA 驱动程序版本和每个已安装 GPU 的描述。

    有关其他说明,包括登录 NGC 容器注册表和启动深度学习容器的示例,请参阅 NVIDIA 容器和深度学习框架用户指南,网址为 https:// docs.nvidia.com/deeplearning/dgx/user-guide/index.html

运行预检测试#

NVIDIA 建议在将系统投入生产环境之前或维修后运行预检压力测试。您可以指定在 GPU、CPU、内存和存储上运行测试,还可以指定测试的持续时间。

要运行测试,请使用 NVSM。

语法

$ sudo nvsm stress-test [--usage] [--force] [--no-prompt] [<test>...] [DURATION]

获取帮助

有关运行测试的帮助,请发出以下命令。

$ sudo nvsm stress-test --usage

建议运行的测试

以下命令在所有受支持的组件(GPU、CPU、内存和存储)上运行测试,大约需要 20 分钟。

$ sudo nvsm stress-test --force

运行支持 GPU 的 NGC 容器#

为了在 DGX A100 系统上运行 NGC 容器时获得最佳性能,可以使用以下方法为 Docker 容器提供 GPU 支持

  • 原生 GPU 支持(包含在 Docker 19.03 及更高版本中)

  • NVIDIA Container Runtime for Docker (nvidia-docker2 软件包)

系统中实施的方法取决于安装的 DGX OS 版本。

DGX OS 版本

包含的方法

5.0

  • 原生 GPU 支持

  • NVIDIA Container Runtime for Docker (已弃用 - 将在未来的 DGX OS 版本中移除可用性)

每种方法都通过使用特定的 Docker 命令来调用,如下所述。

使用原生 GPU 支持#

以下是关于使用原生 GPU 支持的一些信息。

使用 docker run --gpus 运行启用 GPU 的容器。

  • 使用所有 GPU 的示例

    $ sudo docker run --gpus all ...
    
  • 使用两个 GPU 的示例

    $ sudo docker run --gpus 2 ...
    
  • 使用特定 GPU 的示例

    $ sudo docker run --gpus '"device=1,2"' ...
    $ sudo docker run --gpus '"device=UUID-ABCDEF,1"' ...
    

使用 NVIDIA Container Runtime for Docker#

目前,DGX OS 还包括 NVIDIA Container Runtime for Docker (nvidia- docker2),它允许您通过以下方式之一运行 GPU 加速容器。

  • 使用 docker run 并指定 runtime=nvidia。

    $ docker run --runtime=nvidia ...
    
  • 使用 nvidia-docker run。

    $ nvidia-docker run ...
    

    nvidia-docker2 软件包提供与之前的 nvidia-docker 软件包的向后兼容性,因此您可以使用此命令运行 GPU 加速容器,并且将使用新的运行时。

  • 使用 docker run 并将 nvidia 作为默认运行时。

您可以将 nvidia 设置为默认运行时,例如,通过将以下行添加到 / etc/docker/daemon.json 配置文件中作为第一个条目。

"default-runtime": "nvidia",

以下是添加的行在 JSON 文件中如何显示的示例。进行此更改时,请勿删除任何预先存在的内容。

{
"default-runtime": "nvidia",
  "runtimes": {
       "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
}

然后,您可以使用 docker run 运行 GPU 加速容器。

$ docker run ...

注意

如果在 nvidia 设置为默认运行时的情况下构建 Docker 镜像,请确保 Dockerfile 执行的构建脚本指定容器将需要的 GPU 架构。否则可能会导致容器仅针对构建它的 GPU 架构进行优化。

指定 GPU 架构的说明取决于应用程序,并且超出了本文档的范围。请查阅特定的应用程序构建过程。

管理 CPU 缓解措施#

DGX OS Server 包括安全更新,以缓解 CPU 推测性旁通道漏洞。这些缓解措施可能会降低深度学习和机器学习工作负载的性能。

如果您的 DGX 系统安装包含其他措施来缓解这些漏洞,例如集群级别的措施,您可以禁用单个 DGX 节点的 CPU 缓解措施,从而提高性能。

确定 DGX 系统的 CPU 缓解状态#

如果您不知道是否启用了 CPU 缓解措施,请发出以下命令。

$ cat /sys/devices/system/cpu/vulnerabilities/*
  • 如果输出包含多行以 Mitigation: 为前缀的行,则表示启用了 CPU 缓解措施。

    示例

    KVM: Mitigation: Split huge pages
    Mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable
    Mitigation: Clear CPU buffers; SMT vulnerable
    Mitigation: PTI
    Mitigation: Speculative Store Bypass disabled via prctl and seccomp
    Mitigation: usercopy/swapgs barriers and __user pointer sanitization
    Mitigation: Full generic retpoline, IBPB: conditional, IBRS_FW, STIBP: conditional, RSB filling
    Mitigation: Clear CPU buffers; SMT vulnerable
    
  • 如果输出包含多行以 Vulnerable 为前缀的行,则表示禁用了 CPU 缓解措施。

    示例

    KVM: Vulnerable
    Mitigation: PTE Inversion; VMX: vulnerable
    Vulnerable; SMT vulnerable
    Vulnerable
    Vulnerable
    Vulnerable: __user pointer sanitization and usercopy barriers only; no swapgs barriers
    Vulnerable, IBPB: disabled, STIBP: disabled
    Vulnerable
    

禁用 CPU 缓解措施#

注意

执行以下说明将禁用 DGX OS Server 软件提供的 CPU 缓解措施。

  1. 安装 nv-mitigations-off 软件包。

    $ sudo apt install nv-mitigations-off -y
    
  2. 重启系统。

  3. 验证 CPU 缓解措施是否已禁用。

    $ cat /sys/devices/system/cpu/vulnerabilities/*
    

    输出应包含多个 Vulnerable 行。有关示例输出,请参阅 确定 DGX 系统的 CPU 缓解状态

重新启用 CPU 缓解措施#

  1. 删除 nv-mitigations-off 软件包。

    $ sudo apt purge nv-mitigations-off
    
  2. 重启系统。

  3. 验证 CPU 缓解措施是否已启用。

    $ cat /sys/devices/system/cpu/vulnerabilities/*
    

    输出应包含多个 Mitigations 行。有关示例输出,请参阅 确定 DGX 系统的 CPU 缓解状态