news 2026/5/9 15:35:35

CANN/oam-tools HCCL测试工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/oam-tools HCCL测试工具

HCCL Test

【免费下载链接】oam-tools本项目为开发者提供故障定位工具,包含故障信息收集,软硬件信息展示,AI core error报错分析等能力,提升故障问题定位效率,文档可在昇腾社区搜索“故障处理简介”(选择社区版)。项目地址: https://gitcode.com/cann/oam-tools

HCCL Test提供HCCL通信性能与正确性测试

环境准备

  • 安装CANN Toolkit包

    运行HCCL Test工具依赖CANN Toolkit开发套件包和CANN算子包,请根据操作系统架构,下载对应版本的CANN软件包,参考昇腾文档中心-CANN软件安装指南进行安装。

  • 设置CANN软件环境变量

    # 默认路径,root用户安装 source /usr/local/Ascend/cann/set_env.sh # 默认路径,非root用户安装 source $HOME/Ascend/cann/set_env.sh
  • 安装并配置MPI环境变量

    MPI的安装请参见HCCL性能测试工具用户指南的"MPI安装与配置"章节。

    环境变量配置示例如下:

    export PATH=/path/to/mpi/bin:$PATH export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/mpi/lib
  • 多机集群训练时,需配置环境变量指定host网卡:(HCCL_SOCKET_IFNAME)

    # 配置HCCL的初始化root通信网卡名,HCCL可通过该网卡名获取Host IP,完成通信域创建。 # 支持以下格式配置:(4种规格自行选择1种即可) # 精确匹配网卡 export HCCL_SOCKET_IFNAME==eth0,enp0 # 使用指定的eth0或enp0网卡 export HCCL_SOCKET_IFNAME=^=eth0,enp0 # 不使用eth0与enp0网卡 # 模糊匹配网卡 export HCCL_SOCKET_IFNAME=eth,enp # 使用所有以eth或enp为前缀的网卡 export HCCL_SOCKET_IFNAME=^eth,enp # 不使用任何以eth或enp为前缀的网卡

    注:网卡名仅为举例说明,并不只对eth,enp网卡生效

  • 多机集群训练时,需统计所有节点使用的host网卡信息

    编辑hostfile文件:

    vim hostfile

    将全部参与训练的节点信息写入hostfile文件,格式如下:

    # 全部参与训练的节点ip:每节点的进程数 192.168.1.1:8 192.168.1.2:8 ...

构建

  • 构建HCCL Test

    其中MPI_HOME为MPI安装路径,ASCEND_DIR为CANN Toolkit开发套件包的安装路径。

    make MPI_HOME=/path/to/mpi ASCEND_DIR=${ASCEND_HOME_PATH}

执行

  • 单节点运行:

    mpirun -n 8 ./bin/all_reduce_test -b 8K -e 64M -f 2 -d fp32 -o sum -p 8
  • 多节点运行:(两节点为例)

    mpirun -f hostfile -n 16 ./bin/all_reduce_test -b 8K -e 64M -f 2 -d fp32 -o sum -p 8

参数

所有测试都支持相同的参数集:

  • NPU数量

    • [-p,--npus <npus used for one node>]每个计算节点上参与训练的npu个数,默认值:当前节点的npu总数
  • 数据量

    • -b,--minbytes <min size in bytes>数据量起始值,默认值:64M
    • -e,--maxbytes <max size in bytes>数据量结束值,默认值:64M
    • 数据增量通过增量步长或乘法因子参数设置
      • -i,--stepbytes <increment size>增量步长,默认值:(max-min)/10

        注:当输入增量步长(-i)为0时,会持续对数据量起始值(-b)进行测试。

      • -f,--stepfactor <increment factor>乘法因子,默认值:不开启

  • HCCL操作参数

    • -o,--op <sum/prod/max/min>集合通信操作归约类型,默认值:sum

    • -r,--root <root>root节点,broadcast,reduce和scatter操作生效,默认值:0

    • -d,--datatype <int8/int16/int32/fp16/fp32/int64/uint64/uint8/uint16/uint32/fp64>数据类型,默认值:fp32(即float32)

    • -z,--zero_copy <0/1>开启0拷贝,allgather, reduce_scatter, broadcast, allreduce操作符合约束条件生效,默认值:0

    • -m,--symmetric_memory <0/1>开启对称内存,allgather, reduce_scatter, allreduce操作符合约束条件生效,默认值:0 注:不支持零拷贝和对称内存同时开启。

  • 性能

    • -n,--iters <iteration count>迭代次数,默认值:20
    • -w,--warmup_iters <warmup iteration count>预热迭代次数(不参与性能统计,仅影响HCCL Test执行耗时),默认值:10
    • -t,--onlydevicetime <0/1>将通信算子host侧软件耗时与kernel加载耗时排除在通信执行耗时之外,只统计device执行时间(影响HCCL TEST执行耗时),默认值:0 注: 1、当启动 -t 参数时,-w-n参数配置不大于100轮次 2、当启动 -t 参数时,不支持aicpu_ts模式 3、当启动 -t 参数时,并且HCCL_BUFFSIZE配置小于等于100MB时,-t 参数不生效
  • 结果校验

    • -c,--check <0/1>校验集合通信操作结果正确性(大规模集群场景下,开启结果校验会使HCCL Test执行耗时增加),默认值:1(开启)

执行示例

  • allreduce

    # 单节点8个NPU mpirun -n 8 ./bin/all_reduce_test -b 8K -e 64M -f 2 -p 8
    # 双节点16个NPU mpirun -f hostfile -n 16 ./bin/all_reduce_test -b 8K -e 64M -f 2 -p 8
  • broadcast

    # 单节点8个NPU mpirun -n 8 ./bin/broadcast_test -b 8K -e 64M -f 2 -p 8 -r 1
    # 双节点16个NPU mpirun -f hostfile -n 16 ./bin/broadcast_test -b 8K -e 64M -f 2 -p 8 -r 1
  • allgather

    # 单节点8个NPU mpirun -n 8 ./bin/all_gather_test -b 8K -e 64M -f 2 -p 8
    # 双节点16个NPU mpirun -f hostfile -n 16 ./bin/all_gather_test -b 8K -e 64M -f 2 -p 8
  • alltoallv

    # 单节点8个NPU mpirun -n 8 ./bin/alltoallv_test -b 8K -e 64M -f 2 -p 8
    # 双节点16个NPU mpirun -f hostfile -n 16 ./bin/alltoallv_test -b 8K -e 64M -f 2 -p 8
  • alltoall

    # 单节点8个NPU mpirun -n 8 ./bin/alltoall_test -b 8K -e 64M -f 2 -p 8
    # 双节点16个NPU mpirun -f hostfile -n 16 ./bin/alltoall_test -b 8K -e 64M -f 2 -p 8
  • reducescatter

    # 单节点8个NPU mpirun -n 8 ./bin/reduce_scatter_test -b 8K -e 64M -f 2 -p 8
    # 双节点16个NPU mpirun -f hostfile -n 16 ./bin/reduce_scatter_test -b 8K -e 64M -f 2 -p 8
  • reduce

    # 单节点8个NPU mpirun -n 8 ./bin/reduce_test -b 8K -e 64M -f 2 -p 8 -r 1
    # 双节点16个NPU mpirun -f hostfile -n 16 ./bin/reduce_test -b 8K -e 64M -f 2 -p 8 -r 1

指定deviceId执行用例

执行HCCL Test工具前,开启如下环境变量,即可指定需要启动的device。

需要在当前计算节点的hccl_test目录下,创建一个可执行文件,例:run.sh。

  • 单server场景(启动4,5,6,7卡)

    • 创建可执行文件:

      run.sh文件内容如下:

      #HCCL_TEST_USE_DEVS后的数字为需要启动的deviceId export HCCL_TEST_USE_DEVS="4,5,6,7" $1
    • 用例执行:

      mpirun -n 4 ./run.sh "./all_reduce_test -b 8K -e 64M -f 2 -p 4"
  • 多server场景(计算节点1启动0,1,2,3卡,计算节点2启动4,5,6,7卡)

    • 计算节点1:

      • 创建可执行文件:

        run.sh文件内容如下:

        export HCCL_TEST_USE_DEVS="0,1,2,3" $1
    • 计算节点2:

      • 创建可执行文件:

        run.sh文件内容如下:

        export HCCL_TEST_USE_DEVS="4,5,6,7" $1
    • 用例执行:

      mpirun -n 8 -f hostfile ./run.sh "./all_reduce_test -b 8K -e 64M -f 2 -p 4"

开启性能数据采集

执行HCCL Test工具前,设置如下环境变量,即可开启性能数据采集功能。

# “1”代表开启profiling,“0”代表关闭profiling,默认值为“0”,开启时,执行HCCL Test时采集性能数据 export HCCL_TEST_PROFILING=1 # 指定profiling数据存放路径,默认为“/var/log/npu/profiling” export HCCL_TEST_PROFILING_PATH=/home/profiling

HCCL Test工具执行完成后会在HCCL_TEST_PROFILING_PATH指定目录下生成profiling数据。

【免费下载链接】oam-tools本项目为开发者提供故障定位工具,包含故障信息收集,软硬件信息展示,AI core error报错分析等能力,提升故障问题定位效率,文档可在昇腾社区搜索“故障处理简介”(选择社区版)。项目地址: https://gitcode.com/cann/oam-tools

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 15:35:29

医疗AI可解释性实践:基于影像的生物年龄预测与XAI技术解析

1. 项目概述&#xff1a;当AI预测你的年龄&#xff0c;我们如何相信它&#xff1f;最近几年&#xff0c;AI在医疗健康领域的应用越来越火&#xff0c;从辅助诊断到药物研发&#xff0c;似乎无所不能。但有一个问题始终困扰着医生和研究者&#xff1a;AI模型很多时候像个“黑箱”…

作者头像 李华
网站建设 2026/5/9 15:34:59

CANN基础算子贡献指南

贡献指南 【免费下载链接】community 本项目是CANN开源社区的核心管理仓库&#xff0c;包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息 项目地址: https://gitcode.com/cann/community 本项目欢迎广大开发者体验并参与贡献&#xff0c;在参与社区贡献…

作者头像 李华
网站建设 2026/5/9 15:34:35

从工具到伙伴:通用人工智能的技术原理、瓶颈与风险治理

1. 从“工具”到“伙伴”&#xff1a;我们离真正的通用智能还有多远&#xff1f;作为一名在科技行业摸爬滚打了十几年的从业者&#xff0c;我亲眼见证了人工智能从实验室里的数学游戏&#xff0c;一步步变成我们手机里的语音助手、推荐算法和自动驾驶系统。今天&#xff0c;我想…

作者头像 李华
网站建设 2026/5/9 15:31:51

AI设计圣经:用规则引擎提升UI/UX设计效率与一致性

1. 项目概述&#xff1a;为AI设计助手打造的UI/UX设计规则圣经如果你和我一样&#xff0c;既是开发者&#xff0c;又经常需要和设计师协作&#xff0c;或者干脆自己上手用Figma画界面&#xff0c;那你肯定遇到过这样的场景&#xff1a;脑子里有个不错的想法&#xff0c;打开Fig…

作者头像 李华
网站建设 2026/5/9 15:31:42

本地优先Markdown编辑器:构建私有知识库的技术实现与应用

1. 项目概述&#xff1a;一个为本地化写作而生的智能工具最近在折腾个人知识管理和内容创作时&#xff0c;我一直在寻找一个能让我完全掌控数据、又能提供流畅写作体验的工具。市面上的在线文档和笔记软件虽然方便&#xff0c;但数据安全、格式锁定和网络依赖始终是心里的疙瘩。…

作者头像 李华