环境变量#
为了在您的 DGX Cloud 集群上成功运行和优化作业(例如,通过 sbatch
或 srun
),应在作业中设置特定的环境变量。这对于多节点作业和集群的大规模使用尤其重要且是必需的。
在本用户指南的作业示例中,例如在 运行示例作业 部分中找到的示例,每个脚本示例中都引用了 source env-vars.sh
。
此脚本的内容以及创建此文件的说明在以下各节中介绍。
所需的环境变量和指定的值将因您的 DGX Cloud 集群运行的位置而异。如果您不知道您的 DGX Cloud 集群在哪个云服务提供商上运行,请联系您的集群管理员或 NVIDIA 技术客户经理以获取更多详细信息。
对于在 Azure 中使用 A100 GPU 运行的 DGX Cloud 集群,下面提供了一个环境变量脚本示例。您可以在共享位置(例如 /lustrefs/fs0/scratch)创建此脚本,以便集群的所有用户都可以访问它。
要创建脚本,首先请确保您打算保存此脚本的目录已存在,然后使用您选择的文本编辑器在该目录中创建一个名为 env-vars.sh
的文件。
将以下内容粘贴到文件中,然后保存并退出编辑器。
1#!/bin/bash
2export OMPI_MCA_coll_hcoll_enable=0
3export UCX_TLS=rc
4export UCX_NET_DEVICES=mlx5_0:1,mlx5_1:1,mlx5_2:1,mlx5_3:1,mlx5_4:1,mlx5_5:1,mlx5_6:1,mlx5_7:1
5export CUDA_DEVICE_ORDER=PCI_BUS_ID
6export NCCL_SOCKET_IFNAME=eth0
7export NCCL_IB_PCI_RELAXED_ORDERING=1
8export NCCL_TOPO_FILE=/cm/shared/etc/ndv4-topo.xml
9export NCCL_DEBUG=INFO
10export NCCL_PROTO=LL,LL128,Simple
11export NCCL_ALGO=Tree,Ring,CollnetDirect,CollnetChain,NVLS
12export MELLANOX_VISIBLE_DEVICES=all
13export PMIX_MCA_gds=hash
14export PMIX_MCA_psec=native
作为这些环境变量的一部分,拓扑文件通过 NCCL_TOPO_FILE
指定。当给定部署存在时,拓扑文件将在 /cm/shared/etc/
路径中可用。带有 /cm/shared
值的 container-mounts 参数使此路径在生成的作业中可见。
对于在 OCI 中使用 A100 GPU 运行的 DGX Cloud 集群,下面提供了一个环境变量脚本示例。您可以在共享位置(例如 /lustrefs/fs0/scratch)创建此脚本,以便集群的所有用户都可以访问它。
要创建脚本,首先请确保您打算保存此脚本的目录已存在,然后使用您选择的文本编辑器在该目录中创建一个名为 env-vars.sh
的文件。
将以下内容粘贴到文件中,然后保存并退出编辑器。
1#!/bin/bash
2export NVIDIA_DRIVER_CAPABILITIES=all
3export MELLANOX_VISIBLE_DEVICES=all
4export MEM_AFFINITY="0:0:0:0:1:1:1:1"
5export GPU_AFFINITY="0:0:0:0:1:1:1:1"
6export CPU_AFFINITY="0-13:14-27:28-41:42-55:56-69:70-83:84-97:98-111"
7export OMPI_MCA_pml="ucx"
8export OMPI_MCA_coll="^hcoll"
9export OMPI_MCA_coll_hcoll_enable=0
10export HCOLL_ENABLE_MCAST_ALL=0
11export NCCL_IB_TIMEOUT=18
12export NCCL_IB_SL=0
13export NCCL_IB_TC=41
14export NCCL_IGNORE_CPU_AFFINITY=0
15export NCCL_IB_GID_INDEX=3
16export NCCL_IB_QPS_PER_CONNECTION=4
17export NCCL_CROSS_NIC=0
18export NCCL_IB_HCA="^=mlx5_0,mlx5_13"
19export RX_QUEUE_LEN=8192
20export IB_RX_QUEUE_LEN=8192
对于在 OCI 中使用 H100 GPU 运行的 DGX Cloud 集群,下面提供了一个环境变量脚本示例。您可以在共享位置(例如 /lustrefs/fs0/scratch)创建此脚本,以便集群的所有用户都可以访问它。
要创建脚本,首先请确保您打算保存此脚本的目录已存在,然后使用您选择的文本编辑器在该目录中创建一个名为 env-vars.sh
的文件。
将以下内容粘贴到文件中,然后保存并退出编辑器。
1#!/bin/bash
2export NVIDIA_DRIVER_CAPABILITIES=all
3export MELLANOX_VISIBLE_DEVICES=all
4export MEM_AFFINITY="0:0:0:0:1:1:1:1"
5export GPU_AFFINITY="0:0:0:0:1:1:1:1"
6export CPU_AFFINITY="0-13:14-27:28-41:42-55:56-69:70-83:84-97:98-111"
7export OMPI_MCA_pml="ucx"
8export OMPI_MCA_coll="^hcoll"
9export OMPI_MCA_coll_hcoll_enable=0
10export HCOLL_ENABLE_MCAST_ALL=0
11export NCCL_IB_TIMEOUT=18
12export NCCL_IB_SL=0
13export NCCL_IB_TC=41
14export NCCL_IGNORE_CPU_AFFINITY=0
15export NCCL_IB_GID_INDEX=3
16export NCCL_IB_QPS_PER_CONNECTION=4
17export NCCL_CROSS_NIC=0
18export NCCL_IB_HCA="^mlx5_2,mlx5_11"
19export RX_QUEUE_LEN=8192
20export IB_RX_QUEUE_LEN=8192