【昇腾】HCCL性能测试工具:HCCL TEST使用

HCCL TEST简介

HCCL TEST主要是在多机(也可以单机)多卡上面,运行通信算子,验证多机多卡hccl通信功能以及性能。

HCCL_TEST主要是提供一些通信算子的可执行文件,真正要调度到多机多卡上,需要借助MPICH。HCCL TEST路径及内容:

/usr/local/Ascend/ascend-toolkit/latest/toolkit/tools/hccl_test

MPICH介绍

HCCL性能测试工具依赖MPI拉起多个进程,所以需要先安装MPI软件。

MPICH执行效果如下,实际上它在两个服务器的16个卡上并行的调用了hccl test的通信算子命令:./bin/all_reduce_test -p 8 -b 8K -e 64M -f 2 -d fp32 -o sum

  • 执行如下hccl test命令,其中hostfile配置如下:

#训练节点ip:每节点的进程数
192.168.1.10:8
192.168.1.11:8
mpirun -f hostfile -n 16 ./bin/all_reduce_test -p 8 -b 8K -e 64M -f 2 -d fp32 -o sum
  • 执行效果

  • 分别在两台服务器执行top -c,可以看到

 

HCCL TEST安装和使用

这里简单说下流程,详情参考以下链接:hccl性能测试工具介绍

  • MPI安装与配置

    • 编译安装MPI

    • 配置/etc/hosts:主要是方便通过name/域名访问其他服务器

    • 服务器间免密:实现直接ssh其他服务器,不用账号密码认证

  • HCCL TEST编译

  • 工具使用,具体可以参照:工具使用

HCCL_SOCKET_IFNAME环境变量使用

这里主要介绍HCCL_SOCKET_IFNAME环境变量的使用。只解决两个问题:

  1. 到底什么时候需要配置

  2. 怎么配置

什么时候需要配置

在做hccl test的时候发现一个现象,就是有时候不需要配置HCCL_SOCKET_IFNAME环境变量,直接执行hccl_test就能成功,而有的时候不配置HCCL_SOCKET_IFNAME就会报错,到底原因是什么呢?

仔细查看官方文档,会发现有这样一段话:

HCCL_SOCKET_IFNAME中可配置多个网卡,取最先匹配到的网卡作为root网卡。

说明

  • 环境变量网HCCL_IF_IP的优先级高于HCCL_SOCKET_IFNAME。

  • 如果用户未指定HCCL_IF_IP和HCCL_SOCKET_IFNAME,按照如下优先级选择:

  • docer/lo以外网卡(网卡名字典序升序) > docker 网卡 > lo网卡

也就是说如果不配置HCCL_IF_IP和HCCL_SOCKET_IFNAME,按照docer/lo以外网卡(网卡名字典序升序) > docker 网卡 > lo网卡的顺序匹配网卡,匹配时候按照网卡名字典序升序匹配所以:

  1. 如果hostfile中配置的通信ip地址正好是第一个物理网卡的ip地址(linux下使用ifconfig命令查看网络接口,从上到下看),那么这个网卡就用来做通信的root网卡,不需要配置HCCL_SOCKET_IFNAME。

  2. 上面说的这个第一个物理网卡down了,或者没有配置通信ip地址,那么这时候就需要配置HCCL_SOCKET_IFNAME环境变量,具体指定用哪个网卡来通信,否则会报异常。

怎么配置

这里主要对一个特殊场景的配置,做一下说明。

如果两个服务器的通信网卡命名规则不同,如下面情况,一个服务器通信网卡是物理网卡,另一个服务器通信网卡是网桥接口,这时候要怎么配置呢?就需要参照下图这样配置,要把两面服务器的网卡名都写上。

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值