Please enable Javascript to view the contents

Ascend 环境变量配置

 ·  ☕ 3 分钟

HCCL_IF_IP

配置 HCCL 的初始化 root 通信网卡 IP 。

环境变量 HCCL_IF_IP > 环境变量 HCCL_SOCKET_IFNAME > docker/lo 以外网卡(网卡名字典序升序) > docker 网卡 > lo 网卡。

1
export HCCL_IF_IP=10.10.10.1

HCCL_IF_BASE_PORT

指定 Host 网卡起始端口号,配置后系统默认占用以该端口起始的 16 个端口进行集群信息收集,取值范围为[1024,65520] 。

1
export HCCL_IF_BASE_PORT=50000

HCCL_SOCKET_IFNAME

HCCL 可通过该网卡名获取 Host IP

支持以下格式

  • export HCCL_SOCKET_IFNAME=eth,enp,表示使用所有以 eth 或 enp 为前缀的网卡。
  • export HCCL_SOCKET_IFNAME=^eth,enp,表示不使用任何以 eth 或 enp 为前缀的网卡。
  • export HCCL_SOCKET_IFNAME==eth0,enp0,表示使用 eth0 网卡或 enp0 网卡。
  • export HCCL_SOCKET_IFNAME=^=eth0,enp0,表示不使用 eht0 与 enp0 网卡。

HCCL_SOCKET_FAMILY

量指定通信网卡使用的 IP 协议

1
2
export HCCL_SOCKET_FAMILY=AF_INET       #IPv4
export HCCL_SOCKET_FAMILY=AF_INET6      #IPv6

HCCL_CONNECT_TIMEOUT

用于限制不同设备之间 socket 建链过程的超时等待时间,取值范围[120,7200],默认值 120s。

1
export HCCL_CONNECT_TIMEOUT=200

HCCL_EXEC_TIMEOUT

控制设备间执行时同步等待的时间,取值范围不同设备有差异,默认值为 1836s。

1
export HCCL_EXEC_TIMEOUT=1800

HCCL_INTRA_PCIE_ENABLE

配置 Server 内是否使用 PCIe 环路进行多卡间的通信

1
export HCCL_INTRA_PCIE_ENABLE=1

HCCL_INTRA_ROCE_ENABLE

配置 Server 内是否使用 RoCE 环路进行多卡间的通信

1
export HCCL_INTRA_ROCE_ENABLE=1

HCCL_WHITELIST_FILE

当已通过 HCCL_WHITELIST_DISABLE 开启了通信白名单校验功能时,需要通过此环境变量配置指向 HCCL 通信白名单配置文件的路径,只有在通信白名单中的 IP 地址才允许进行集合通信

1
export HCCL_WHITELIST_FILE=/home/test/whitelist

文件格式 { "host_ip": ["ip1", "ip2"], "device_ip": ["ip1", "ip2"] }

HCCL_WHITELIST_DISABLE

配置在使用 HCCL 时是否关闭通信白名单,1 表示关闭白名单,0 表示开启,默认值为 1。

1
export HCCL_WHITELIST_DISABLE=1

HCCL_RDMA_TC

配置 RDMA 网卡的 traffic class,默认值为 132。

1
export HCCL_RDMA_TC=100

HCCL_RDMA_SL

配置 RDMA 网卡的 service level,该值需要和网卡配置的 PFC 优先级保持一致,若配置不一致可能导致性能劣化,取值范围[0,7],默认值 4。

1
export HCCL_RDMA_SL=3

HCCL_BUFFSIZE

HCCL 通信缓存的大小。

通过在计算节点上预分配一定数量的内存空间,用于存储通信数据,避免频繁的内存分配和释放操作,从而提高了通信效率。HCCL_BUFFSIZE 默认值为 100 MB。

1
export HCCL_BUFFSIZE=200

HCCL_RDMA_TIMEOUT

配置 RDMA 网卡重传超时时间的系数 timeout,默认值为 20

1
export HCCL_RDMA_TIMEOUT=6

HCCL_RDMA_RETRY_CNT

配置 RDMA 网卡的重传次数,需要配置为整数,取值范围为[1,7],默认值为 7。

1
export HCCL_RDMA_RETRY_CNT=5

HCCL_BUFFSIZE

控制两个 NPU 之间共享数据的缓存区大小。单位为 M,需要配置为整数,取值大于等于 1,默认值是 200M。

计算公式: (MircobatchSize _ SequenceLength _ hiddenSize * sizeOf (DataType) )/(1024*1024),向上取整。

1
export HCCL_BUFFSIZE=200

HCCL_ALGO

配置集合通信 Server 间跨机通信算法,支持全局配置算法类型与按算子配置算法类型两种配置方式

  • 全局配置
1
export HCCL_ALGO="level0:NA;level1:<algo>"

algo 取值范围 ringH-D_RNHRNHR_V1NBpipelinepairwise

  • 按算子配置
1
export HCCL_ALGO="<op0>=level0:NA;level1:<algo0>/<op1>=level0:NA;level1:<algo1>"

algo 取值范围 opalgo

HCCL_DIAGNOSE_ENABLE

配置集合通信是否缓存部分任务的详细信息,以便任务执行失败时,打印详细日志,用于问题定位,1 表示开启,0 表示关闭,默认值为 0。

1
export HCCL_DIAGNOSE_ENABLE=1

HCCL_ENTRY_LOG_ENABLE

控制集合通信算子调用行为日志的打印方式,1 为调用一次打印一次,0 为统一打印,默认值为 0。

1
export HCCL_ENTRY_LOG_ENABLE=1

HCCL_OP_EXPANSION_MODE

配置通信算法的编排展开位置,取值范围:

  • AI_CPU,代表通信算法的编排展开位置在 Device 侧的 AI CPU 计算单元
  • AIV,代表通信算法的编排展开位置在 Device 的 AI Vector Core 计算单元
  • 默认为空,保持原有算法编排位置
1
export HCCL_OP_EXPANSION_MODE="AI_CPU"

HCCL_DETERMINISTIC

配置是否开启归约类通信算子的确定性计算,其中归约类通信算子包括 AllReduce、ReduceScatter、Reduce,默认值 false,不开启。

1
export HCCL_DETERMINISTIC=true

微信公众号
作者
微信公众号