下载
中文
注册

参数说明

本节介绍HCCL Test性能测试工具执行时的相关参数说明。

命令格式

  • 安装MPICH的场景
    mpirun [-f hostfile] [-n number] ./bin/<executable_file> [-p npus] [-b minbytes] [-e maxbytes] [-f stepfactor] [-o operator] [-r root] [-d datatype] [-n iters] [-w warmup_iters] [-c <0/1>]
  • 安装Open MPI的场景
    mpirun [-hostfile hostfile] [-n number] [-x environment_variable_name] [--allow-run-as-root] [--mca key value] ./bin/<executable_file> [-p npus] [-b minbytes] [-e maxbytes] [-f stepfactor] [-o operator] [-r root] [-d datatype] [-n iters] [-w warmup_iters] [-c <0/1>]
  • mpirun后跟随的是MPI命令相关参数。
  • ./bin/<executable_file>后跟随的是HCCL Test工具相关参数。

MPICH命令参数

此处仅给出MPICH工具常见参数说明,更多参数介绍可执行“./mpirun --help”命令查看帮助信息。

表1 MPICH命令参数说明

参数名

可选/必选

描述

-f

可选

Hostfile节点列表文件。

单机场景下无需配置此文件;多机场景下,需要配置此文件。

配置示例可参见3

-n

必选

需要启动的NPU总数。

Open MPI命令参数

此处仅给出Open MPI工具常见参数说明,更多可用参数介绍可参见open-mpi官方文档

表2 Open MPI命令参数说明

参数名

可选/必选

描述

-hostfile

可选

指定Hostfile节点列表文件。

单机场景下无需配置此文件;多机场景下,需要配置此文件。

配置示例可参见3

-n

必选

设置需要启动的NPU总数。

-x

必选

指定需要传递给远程节点的环境变量名称,环境变量为执行HCCL Test命令前配置的除PATH外的所有环境变量,环境变量的设置可参见工具执行

开发者可以通过environment_variable_name=value的形式,将环境变量与设置的值一并传递给远程节点。

--allow-run-as-root

可选

允许mpirun使用root用户执行。

--mca

可选

设置mca参数,openmpi的设计以组件架构(MPI Component Architecture, MCA)为中心,可通过运行时在mpirun命令中设置mca参数来加载openmpi的各类组件模块,实现特定功能。

常用的命令有:

  • --mca btl_tcp_if_include <nic_name>

    使用指定的网卡进行节点间通信,例如:

    --mca btl_tcp_if_include eth0
  • --mca opal_set_max_sys_limits 1

    设置openmpi运行时的系统限制(文件描述符数量等)沿用系统的ulimit配置,确保Open MPI进程执行时不会因为资源限制而出现问题。当集群中卡的数量较多时,建议增加此配置。

HCCL Test工具相关参数

表3 HCCL Test工具参数说明

参数名

可选/必选

描述

./bin/<executable_file>

必选

集合通信性能测试工具的执行命令。

其中<executable_file>为集合通信性能测试工具的可执行文件。当前可指定文件有:all_gather_test,all_reduce_test,alltoallv_test,alltoall_test,broadcast_test,reduce_scatter_test,reduce_test,scatter_test。

例如./bin/all_gather_test。

针对Atlas 300I Duo 推理卡,仅支持all_reduce_test与all_gather_test执行命令。

集合通信性能测试命令支持的参数

-p

必选

单个计算节点上参与训练的NPU个数。

默认为当前节点的NPU总数。

说明:集合通信测试工具会按照用户配置的参与训练的NPU个数拉起相应的Device,Device的约束可参见规格约束

-b

可选

定义执行集合通信操作所使用的测试数据大小。
  • -b:测试数据大小的起始值,即最小值。默认值:64M,单位:K、M、G。
  • -e:测试数据大小的结束值,即最大值。默认值:64M,单位:K、M、G。
  • -i/-f:数据增量类型,其中“-i”为增量步长方式,"-f"为乘法因子方式。

    默认开启“-i”增量步长方式,默认步长大小的计算方式为:(测试数据大小的结束值-测试数据大小的起始值)/10。

说明:
  • 当“-b”取值等于“-e”时,即每次迭代按照固定的数据量大小进行测试。
  • 当“-e”的取值大于“-b”时,需要设置数据增量类型,“-i”与“-f”二选一进行配置即可。
  • 当“-i”取值为0时,会按照测试数据大小起始值(即“-b”定义的数据量大小)持续测试。

例如:

假设配置示例为:-b 100M -e 400M -f 2

即测试数据大小起始值为100M,结束值为400M,数据增量乘法因子为2,则每次迭代都会分别取大小为“100M”、“200M”、“400M”的数据进行测试。

-e

可选

-i

可选

-f

可选

集合通信操作参数

-o

可选

Reduce相关执行命令的操作类型,包含:sum、prod、max、min,默认值为sum。

Reduce相关的执行命令有:all_reduce_test、reduce_scatter_test、reduce_test。

-r

可选

执行命令为broadcast_test、reduce_test、scatter_test时,需要通过此参数指定根节点的Device ID。

取值范围:[0,实际Device数量-1]。

默认值为:0。

-d

可选

HCCL执行命令支持的数据类型,默认值为fp32。

  • 针对执行命令all_reduce_test、reduce_scatter_test、reduce_test:
    • Atlas 训练系列产品,支持数据类型int8、int32、int64、fp16、fp32。
    • Atlas 300I Duo 推理卡,支持的数据类型int8、int16、int32、fp16、fp32,其中“prod”、“max”、“min”操作不支持int16数据类型。
    • Atlas A2 训练系列产品,支持数据类型int8、int16、int32、int64、fp16、fp32、bfp16,其中“prod”操作不支持int16、bfp16数据类型。
  • 针对执行命令broadcast_test、all_gather_test、alltoallv_test、alltoall_test、scatter_test,支持的数据类型包括:int8、int16、int32、fp16、fp32、int64、uint64、uint8、uint16、uint32、fp64、bfp16。其中bfp16数据类型仅Atlas A2 训练系列产品支持。

性能测试参数

-n

可选

迭代次数,默认值为20。

-w

可选

预热迭代次数,此参数不参与性能统计,仅影响HCCL Test工具的执行耗时,默认值:5。

说明:由于前几轮迭代可能存在影响性能测试的操作(例如,首轮迭代的socket建链操作等),建议将前几轮迭代设置为预热迭代,不进入性能统计。

结果校验参数

-c

可选

是否开启集合通信操作结果正确性校验。
  • 0:不开启校验,
  • 1:开启校验。

默认值:1。

说明:大规模集群场景下,开启结果校验会使HCCL Test工具的执行耗时增加。