参数说明
本节介绍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>] [-z <0/1>] [-n <iters_count>] [-w <warmup_iters_count>] [-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>] [-z <0/1>] [-n <iters_count>] [-w <warmup_iters_count>] [-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参数,Open MPI的设计以组件架构(MPI Component Architecture, MCA)为中心,可通过运行时在mpirun命令中设置mca参数来加载openmpi的各类组件模块,实现特定功能。 常用的命令有: |
HCCL Test工具相关参数
参数名 |
可选/必选 |
描述 |
---|---|---|
./bin/<executable_file> |
必选 |
集合通信性能测试工具的执行命令。 其中<executable_file>为集合通信性能测试工具的可执行文件,即支持的测试命令。
|
集合通信性能测试命令支持的参数 |
||
-p <npus> 或--npus <npus> |
可选 |
单个计算节点上参与训练的NPU个数。 默认为当前节点的NPU总数。若单个计算节点上参与训练的NPU个数小于当前节点的NPU总数,此参数为必填项。 说明:集合通信测试工具会按照用户配置的参与训练的NPU个数拉起相应的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。
|
-z <0/1> 或--zero_copy <0/1> |
可选 |
是否开启零拷贝功能。 单算子模式下由于输入输出buffer动态变化,所以HCCL会使用中间buffer进行中转完成集合通信,但会引入额外的内存拷贝开销。零拷贝功能就是降低内存拷贝开销,直接对业务传入的内存进行操作,从而进行性能提升。
此参数支持如下取值:
零拷贝功能生效有如下约束条件: |
性能测试参数 |
||
-n <iters_count> 或--iters <iters_count> |
可选 |
迭代次数,默认值为20。 |
-w <warmup_iters_count> 或--warmup_iters <warmup_iters_count> |
可选 |
预热迭代次数,此参数不参与性能统计,仅影响HCCL Test工具的执行耗时,默认值:5。 说明:由于前几轮迭代可能存在影响性能测试的操作(例如,首轮迭代的socket建链操作等),建议将前几轮迭代设置为预热迭代,不进入性能统计。 |
结果校验参数 |
||
-c <0/1> 或--check <0/1> |
可选 |
是否开启集合通信操作结果正确性校验。
默认值:1。 说明:大规模集群场景下,开启结果校验会使HCCL Test工具的执行耗时增加。 |