accl_perf是ACCL提供的简易集合操作测试工具,便于进行基础的性能测试或问题验证。其使用方法与PyTorch相近,需指定“主”IP地址与端口,以及每个进程的Rank号、使用的设备数目、Rank总数等。本文为您介绍如何使用ACCL测试工具。

ACCL测试工具使用方法

下文以手动运行2机16卡的ACCL AllReduce测试为例,假设:
  • 两节点分别为节点A与节点B,每个节点配备8个GPU设备。
  • 令节点A作为“主”节点,使用的管理网络IP地址为10.18.18.18,4221是该节点的可用空闲端口。
于节点A运行:
accl_perf --masterId 10.18.18.18:4221 --nranks 2 --rank 0 --device 0 --ngpus 8 -lAllReduce
于节点B运行:
accl_perf --masterId 10.18.18.18:4221 --nranks 2 --rank 1 --device 0 --ngpus 8 -lAllReduce
相关选项说明如下:
选项名称 选项说明
--masterId 由“主”节点的IP地址(暂不支持主机名的方式)与端口组成,所有节点必须使用相同的“Master ID”
--nranks 2 --rank ? 结合本例,节点Rank总数为2,节点A分配的Rank号为0,节点B为1
--device 0 --ngpus 8 本例中指使用自0号GPU设备起的8个设备
-l <collective type> 指定需测试的集合操作,如AllReduce、AllToAllV等。
对测试的进一步控制选项包括:
选项名称 选项说明
-i <iteration number> 指定用于计时的迭代次数
-o <reduce type> 指定AllReduce的规约计算类型,默认为sum,支持:
  • prod
  • min
  • max
-t <data type> 指定数据类型,默认为float32,支持:
  • float16
  • float64
  • int8
  • uint8
  • int32
  • uint32
  • int64
  • uint64
--absmode 该选项需与--mincnt=<min> --maxcnt=<max> --cnt_stride=<stride>组合使用,其含义为从mincnt个元素数目开始测试至max元素数目,其间每步递增stride个元素数目
--minlogcnt=<min> 与--maxlogcnt=<max>组合使用,即从2min数目的元素到2max数目的元素进行测试