2. 集群加入指南#

2.1. 简介#

恭喜您获得新的 DGX Cloud 集群!

以下部分将指导您完成加入流程,并概述 DGX Cloud 的功能。有关详细信息,请参阅 DGX Cloud 文档

DGX Cloud 包括以下各项的访问权限

  • NVIDIA DGX Cloud 集群

    • 集群上安装的 Run:ai

  • NVIDIA AI Enterprise

  • NVIDIA GPU Cloud (NGC) 私有注册表

  • NVIDIA 企业支持门户

您的技术客户经理 (TAM) 将安排一次加入会议,以审查这些组件,包括如何访问和使用它们。在会议期间,请使用本指南作为参考。

2.1.1. DGX Cloud 中的角色#

要与 DGX Cloud 交互,通常涉及两种不同的角色

  • 管理员角色:管理用户、资源访问和集群利用率。

  • 用户角色:包括研究人员、ML 工程师以及其他利用 DGX Cloud 组件进行工作的人员。

有关用户角色的更多信息,请参阅 集群用户范围和用户角色

在加入过程中,会议的前半部分将重点介绍管理员级别的任务,以准备集群和资源以供使用,然后是基本用户示例,以开始在集群上运行作业。

2.2. 管理员步骤#

在加入之前,将指定集群管理员来管理 DGX Cloud 中提供的资源。集群管理员具有以下角色

  • 集群和 Run:ai 的应用程序管理员

  • NGC 的 组织所有者(用于私有注册表和 AI Enterprise)

集群管理员和 TAM 在加入之前完成以下步骤

  • 向 NVIDIA 提供公司网络的无类别域间路由 (CIDR) 范围,以确保集群访问

  • 配置到集群和 Run:ai 的单点登录 (SSO)

2.2.1. 访问 DGX Cloud Run:ai 集群#

在集群设置期间,NVIDIA 与您指定的集群管理员一起使用您的 OIDC 提供程序配置 SSO。此设置将允许您的组织使用标准凭据登录到集群。

在加入期间,您的 TAM 将提供以下信息以访问集群

  • 用于访问 Run:ai 云控制平面的 URL

  • 包含集群 DNS/URL 的 kubeconfig 文件

要登录,请导航到 Run:ai URL,输入您的电子邮件,然后选择使用 SSO 继续

我们将在 设置 CLI 部分稍后使用 kubeconfig 文件。

2.2.2. 访问 NGC#

DGX Cloud 包括对 NGC 私有注册表和 NVIDIA AI Enterprise 的访问权限。

组织所有者将收到一封电子邮件邀请,其中包含完成其个人资料并登录 NGC 的说明。

按照电子邮件说明登录 NGC。然后,组织所有者可以邀请用户访问私有注册表和 AI Enterprise。

更多详细信息请参见 NGC 用户指南

2.2.3. 访问 NVIDIA 企业支持门户#

您的 TAM 将帮助启用 NVIDIA 企业支持门户的授权。

启用授权后,使用您的 NGC 凭据登录 NVIDIA 企业支持门户

2.2.4. 在 Run:ai 中创建部门#

接下来,您需要在 Run:ai 中创建一个部门以供使用。可能已经提供了默认部门。

但是,如果需要其他部门,或者需要修改默认部门的配额,请按照 部门 中的说明进行适当的更改。

2.2.5. 在 Run:ai 中创建项目#

设置好部门后,您现在可以创建一个项目来运行用户工作负载。此项目在您刚创建的部门的可用配额内分配了更精细的配额。

应用程序管理员部门管理员都可以在 Run:ai 中创建项目。

有关创建项目的说明,请参阅 创建项目

创建部门和项目后,您可以根据需要将用户分配到特定项目或部门。

2.2.6. 在 Run:ai 中分配用户角色#

注意

此步骤在加入期间是可选的。您可以继续执行后续部分,以在您刚刚创建的部门或项目内运行工作负载。

登录 Run:ai 并设置部门和项目后,您可以授予其他用户访问权限。有关更多信息,请参阅 管理用户

2.3. 用户步骤#

2.3.1. 创建环境#

环境是 Run:ai 的一种构造,用于配置要使用的容器镜像。要运行以下各节中的示例工作负载,请使用 nvcr.io/nvidia/nemo:24.12 基础镜像创建这些环境。

  • 标准 NeMo 环境

  • 分布式 NeMo 环境

有关详细说明,请参阅 创建新环境

2.3.2. 创建数据源#

数据源为数据提供持久挂载点,以便在集群上下载和保存数据。您将需要创建一个数据源来运行后续部分中的示例工作负载。

请按照此处的说明创建 数据源

2.3.3. 运行示例工作负载#

注意

以下说明描述了如何在 DGX Cloud 上运行单节点和多节点 NCCL 测试,这些测试旨在测量 GPU 之间直接通信的总体总线带宽。重要的是要注意,存在理论带宽速度,然后是测试测量的有效速率。有效速率将因每个 CSP 提供的<强>高速网络互连而异。此外,NCCL 可能会根据测试中使用的等级(GPU 进程)数量,在 all-reduce 测试中以不同方式应用树和环算法。在某些情况下,2 节点 H100(总共 16 个 GPU)NCCL all-reduce 测试可能会显示比 4 节点、8 节点或更高节点测试高两倍的 GB/s 性能,因为 NCCL 可以单独应用树算法。有关 NCCL 如何在其测试中计算总线带宽性能的更多信息,请参阅 这些注释。如果您对从 DGX Cloud 集群观察到的性能指标有疑问,请联系您的 TAM。

2.3.3.1. 运行单节点 NCCL 测试#

以下是运行单节点 NCCL 测试的先决条件和步骤。

2.3.3.1.1. 先决条件#
  • 具有 8 个 GPU 配额的部门

  • 上述部门中具有 8 个 GPU 配额的项目

  • 具有运行工作负载角色的用户

  • 8-GPU 计算资源

  • 具有镜像基础 nvcr.io/nvidia/nemo:24.12标准环境

2.3.3.1.2. 说明#
  1. 导航到“工作负载”菜单。

  2. 单击+新建工作负载,然后选择训练

  3. 选择正确的项目。

  4. 选择标准工作负载架构。

  5. 将您的训练命名为“nccl-test”。

  6. 选择使用上述镜像的环境。

  7. 运行时设置下,单击+命令和参数

  8. 按如下方式设置变量

    • 命令:all_reduce_perf_mpi

    • 参数:-b 1G -e 16G -f 2 -g 8

  9. 选择正确的计算资源(可能是 h100-8g)。

  10. 单击创建训练

  11. 查看日志以查看输出

    # out-of-place in-place
    # size count type redop root time algbw busbw #wrong time algbw busbw #wrong
    # (B) (elements) (us) (GB/s) (GB/s) (us) (GB/s) (GB/s)
    1073741824  268435456  float sum -1 XXXXX  XXX.XX  XXX.XX    N/A   XXXXXX  XXX.XX  XXX.XX    N/A
    2147483648  536870912  float sum -1 XXXXX  XXX.XX  XXX.XX    N/A   XXXXXX  XXX.XX  XXX.XX    N/A
    4294967296  1073741824 float sum -1 XXXXX  XXX.XX  XXX.XX    N/A   XXXXXX  XXX.XX  XXX.XX    N/A
    8589934592  2147483648 float sum -1 XXXXX  XXX.XX  XXX.XX    N/A   XXXXXX  XXX.XX  XXX.XX    N/A
    17179869184 4294967296 float sum -1 XXXXX  XXX.XX  XXX.XX    N/A   XXXXXX  XXX.XX  XXX.XX    N/A
    # Out of bounds values : 0 OK
    # Avg bus bandwidth : XXX.XX
    

2.3.3.2. 运行多节点 NCCL 测试#

2.3.3.2.1. 先决条件#
  • 具有 32 个 GPU 配额的部门

  • 上述部门中具有 32 个 GPU 配额的项目

  • 具有运行工作负载角色的用户

  • 8-GPU 计算资源

  • 具有镜像基础 nvcr.io/nvidia/nemo:24.12分布式环境

2.3.3.2.2. 说明#
  1. 导航到“工作负载”菜单。

  2. 单击+新建工作负载,然后选择训练

  3. 选择正确的项目。

  4. 选择分布式工作负载架构。

  5. 为工作负载选择 MPI 框架。

  6. 将您的训练命名为“nccl-test”。

  7. 单击继续

  8. 选择您已配置的分布式环境。

  9. 确保工作进程的运行时设置为

    • 命令:/usr/sbin/sshd

    • 参数:-De

  10. 配置为使用四个工作进程。

  11. 为工作进程选择正确的环境(8 GPU H100 配置)。

  12. 选择继续

  13. 确保允许主节点的不同设置已切换为开启状态。

  14. 选择与工作进程使用的环境相同的环境。

  15. 运行时设置下,单击+命令和参数。在与您的集群所在的 CSP 对应的选项卡中设置值(即,如果在 AWS 上运行,请选择 AWS 选项卡)

    • 命令:/opt/amazon-efa-ofi/openmpi/bin/mpirun

    • 参数

      --allow-run-as-root -np 32 -x LD_LIBRARY_PATH -x OPAL_PREFIX -x FI_EFA_USE_DEVICE_RDMA -x NCCL_PROTO=simple all_reduce_perf_mpi -b 1g -e 16g -f2 -g1
      
    • 命令:mpirun

    • 参数

      --allow-run-as-root -np 32 -x LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu:/usr/local/nvidia/lib64" -x NCCL_ALGO="Ring,Tree" -x NCCL_BUFFSIZE="8388608" -x NCCL_CROSS_NIC="0" -x NCCL_DYNAMIC_CHUNK_SIZE="524288" -x NCCL_FASTRAK_CTRL_DEV="eth0" -x NCCL_FASTRAK_ENABLE_CONTROL_CHANNEL="0" -x NCCL_FASTRAK_ENABLE_HOTPATH_LOGGING="0" -x NCCL_FASTRAK_IFNAME="eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8" -x NCCL_FASTRAK_LLCM_DEVICE_DIRECTORY="/dev/aperture_devices" -x NCCL_FASTRAK_NUM_FLOWS="2" -x NCCL_FASTRAK_PLUGIN_ACCEPT_TIMEOUT_MS="600000" -x NCCL_FASTRAK_USE_LLCM="1" -x NCCL_FASTRAK_USE_SNAP="1" -x NCCL_MIN_NCHANNELS="4" -x NCCL_NET_GDR_LEVEL="PIX" -x NCCL_NVLS_ENABLE="0" -x NCCL_P2P_NET_CHUNKSIZE="524288" -x NCCL_P2P_NVL_CHUNKSIZE="1048576" -x NCCL_P2P_PCI_CHUNKSIZE="524288" -x NCCL_PROTO="Simple" -x NCCL_SHIMNET_GUEST_CONFIG_CHECKER_CONFIG_FILE="/usr/local/nvidia/lib64/a3plus_guest_config.textproto" -x NCCL_SOCKET_IFNAME="eth0" -x NCCL_TUNER_CONFIG_PATH="/usr/local/nvidia/lib64/a3plus_tuner_config.textproto" -x NCCL_TUNER_PLUGIN="libnccl-tuner.so" all_reduce_perf_mpi  -b 1G -e 16G -f 2 -g 1
      
  16. 选择正确的计算资源(为启动器选择 cpu 或备用仅 cpu 计算资源)。

  17. 单击创建训练

  18. 查看日志以查看输出。

    # out-of-place in-place
    # size count type redop root time algbw busbw #wrong time algbw busbw #wrong
    # (B) (elements) (us) (GB/s) (GB/s) (us) (GB/s) (GB/s)
    1073741824     268435456     float     sum      -1    XXXXX  XXX.XX  XXX.XX    N/A   XXXXXX  XXX.XX  XXX.XX    N/A
    2147483648     536870912     float     sum      -1    XXXXX  XXX.XX  XXX.XX    N/A   XXXXXX  XXX.XX  XXX.XX    N/A
    4294967296    1073741824     float     sum      -1    XXXXX  XXX.XX  XXX.XX    N/A   XXXXXX  XXX.XX  XXX.XX    N/A
    8589934592    2147483648     float     sum      -1    XXXXX  XXX.XX  XXX.XX    N/A   XXXXXX  XXX.XX  XXX.XX    N/A
    17179869184   4294967296     float     sum      -1    XXXXX  XXX.XX  XXX.XX    N/A   XXXXXX  XXX.XX  XXX.XX    N/A
    # Out of bounds values : 0 OK
    # Avg bus bandwidth : XXX.XX
    

2.3.3.3. (可选)运行单节点 NeMo 交互式工作负载#

如果需要,您现在还可以按照说明设置和运行 使用 NeMo 的交互式工作负载

2.3.3.4. (可选)将数据下载到数据源中#

您还可以使用相同的交互式 Jupyter 环境在容器中安装其他 CLI 工具,并将数据从对象存储下载到已创建并挂载的数据源中。

2.3.4. 设置 CLI#

您的 DGX Cloud Run:ai 集群包括对 Run:ai CLI 和 Kubernetes 集群和 CLI 的访问权限。

您的 TAM 将提供 kubeconfig 文件以设置 CLI。

使用此 kubeconfig 并按照 访问 Run:ai CLI 说明设置您的 CLI。

2.4. (可选)私有访问#

2.5. 结论#

就是这样!您现在可以访问 DGX Cloud 并成功在集群上运行工作负载。

您可以继续自定义和配置您的集群,将您的数据下载到集群上,并开始运行您的工作负载。

如有任何问题或需要帮助,请联系您的 NVIDIA TAM。