参数说明
本节介绍HCCL Test性能测试工具执行时的相关参数说明。
命令格式
- 安装MPICH的场景
mpirun [-f <hostfile>] -n <number> ./bin/<executable_file> [-p <npus>] [-b <minbytes>] [-e <maxbytes>] [-f <incfactor>] [-o <operator>] [-r <root>] [-d <datatype>] [-n <iterscount>] [-w <warmup_iterscount>] [-c <0/1>]
- 安装Open MPI的场景
mpirun [-hostfile <hostfile>] -n <number> -x <env> [--allow-run-as-root] [--mca <key value>] ./bin/<executable_file> [-p <npus>] [-b <minbytes>] [-e <maxbytes>] [-f <incfactor>] [-o <operator>] [-r <root>] [-d <datatype>] [-n <iterscount>] [-w <warmup_iterscount>] [-c <0/1>]
- mpirun后跟随的是MPI命令相关参数,MPI命令相关参数说明请参见MPICH命令参数与Open MPI命令参数。
- ./bin/<executable_file>后跟随的是HCCL Test工具相关参数,HCCL Test工具相关参数说明请参见HCCL Test工具相关参数。
MPICH命令参数
此处仅给出MPICH工具常见参数说明,更多参数介绍可参见MPICH官方文档。
参数名 |
可选/必选 |
描述 |
---|---|---|
-f <hostfile> |
可选 |
Hostfile节点列表文件。 单机场景下无需配置此文件;多机场景下,需要配置此文件。 配置示例可参见3。 |
-n <number> |
必选 |
需要启动的NPU总数,即节点数量 * 每个节点上参与训练的NPU个数。 |
Open MPI命令参数
此处仅给出Open MPI工具常见参数说明,更多可用参数介绍可参见open-mpi官方文档。
参数名 |
可选/必选 |
描述 |
---|---|---|
-hostfile <hostfile> |
可选 |
指定Hostfile节点列表文件。 单机场景下无需配置此文件;多机场景下,需要配置此文件。 配置示例可参见3。 |
-n <number> |
必选 |
设置需要启动的NPU总数,即节点数量 * 每个节点上参与训练的NPU个数。 |
-x <env> |
必选 |
指定需要传递给远程节点的环境变量名称,环境变量为执行HCCL Test命令前配置的除PATH外的所有环境变量,环境变量的设置可参见工具执行。 |
--allow-run-as-root |
可选 |
允许mpirun使用root用户执行。 |
--mca <key value> |
可选 |
设置mca参数,openmpi的设计以组件架构(MPI Component Architecture, MCA)为中心,可通过运行时在mpirun命令中设置mca参数来加载openmpi的各类组件模块,实现特定功能。 常用的命令有: |
HCCL Test工具相关参数
参数名 |
可选/必选 |
描述 |
---|---|---|
./bin/<executable_file> |
必选 |
集合通信性能测试工具的执行命令。 其中<executable_file>为集合通信性能测试工具的可执行文件。当前可指定文件有:all_gather_test,all_gatherv_test,all_reduce_test,alltoall_test,alltoallv_test,broadcast_test,reduce_scatter_test,reduce_scatterv_test,reduce_test,scatter_test。 例如./bin/all_gather_test。 针对all_gatherv_test与reduce_scatterv_test命令,仅支持
针对Atlas 300I Duo 推理卡,仅支持all_reduce_test、all_gather_test、all_gatherv_test、reduce_scatterv_test执行命令。 |
集合通信性能测试命令支持的参数 |
||
-p <npus> 或--npus <npus> |
可选 |
单个计算节点上参与训练的NPU个数。 默认为当前节点的NPU总数。若单个计算节点上参与训练的NPU个数小于当前节点的NPU总数,此参数为必填项。 说明:集合通信测试工具会按照用户配置的参与训练的NPU个数拉起相应的Device,Device的约束可参见规格约束。 |
-b <minbytes> 或--minbytes <minbytes> |
可选 |
定义执行集合通信操作所使用的测试数据大小。
说明:
例如:
|
-e <maxbytes> 或--maxbytes <maxbytes> |
可选 |
|
-i <incsize> 或--stepbytes <incsize> |
可选 |
|
-f <incfactor> 或--stepfactor <incfactor> |
可选 |
|
-o <operator> 或 --op <operator> |
可选 |
Reduce相关执行命令的操作类型,包含:sum、prod、max、min,默认值为sum。 Reduce相关的执行命令有:all_reduce_test、reduce_scatter_test、reduce_scatterv_test、reduce_test。 对于执行命令reduce_scatterv_test:
|
-r <root> 或--root <root> |
可选 |
执行命令为broadcast_test、reduce_test、scatter_test时,需要通过此参数指定根节点的Device ID。 取值范围:[0,实际Device数量-1]。 默认值为:0。 |
-d <datatype> 或--datatype <datatype> |
可选 |
HCCL执行命令支持的数据类型,默认值为fp32。
|
性能测试参数 |
||
-n <iterscount> 或--iters <iterscount> |
可选 |
迭代次数,默认值为20。 |
-w <warmup_iterscount> 或--warmup_iters <warmup_iterscount> |
可选 |
预热迭代次数,此参数不参与性能统计,仅影响HCCL Test工具的执行耗时,默认值:5。 说明:由于前几轮迭代可能存在影响性能测试的操作(例如,首轮迭代的socket建链操作等),建议将前几轮迭代设置为预热迭代,不进入性能统计。 |
结果校验参数 |
||
-c <0/1> 或--check <0/1> |
可选 |
是否开启集合通信操作结果正确性校验。
默认值:1。 说明:大规模集群场景下,开启结果校验会使HCCL Test工具的执行耗时增加。 |