news 2026/6/22 1:11:21

CANN/asc-devkit AllGather通信接口

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/asc-devkit AllGather通信接口

AllGather

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

产品支持情况

产品

是否支持

Ascend 950PR/Ascend 950DT

Atlas A3 训练系列产品 / Atlas A3 推理系列产品

Atlas A2 训练系列产品 / Atlas A2 推理系列产品

Atlas 200I/500 A2 推理产品

x

Atlas 推理系列产品 AI Core

x

Atlas 推理系列产品 Vector Core

x

Atlas 训练系列产品

x

功能说明

集合通信算子AllGather的任务下发接口,返回该任务的标识handleId给用户。AllGather的功能为:将通信域内所有节点的输入按照rank id重新排序,然后拼接起来,再将结果发送到所有节点的输出。

函数原型

template <bool commit = false> __aicore__ inline HcclHandle AllGather(GM_ADDR sendBuf, GM_ADDR recvBuf, uint64_t sendCount, HcclDataType dataType, uint64_t strideCount, uint8_t repeat = 1)

参数说明

表 1模板参数说明

参数名

输入/输出

描述

commit

输入

bool类型。参数取值如下:

  • true:在调用Prepare接口时,Commit同步通知服务端可以执行该通信任务。
  • false:在调用Prepare接口时,不通知服务端执行该通信任务。

表 2接口参数说明

参数名

输入/输出

描述

sendBuf

输入

源数据buffer地址。

recvBuf

输出

目的数据buffer地址,集合通信结果输出到此buffer中。

sendCount

输入

参与AllGather操作的sendBuf的数据个数;recvBuf的数据个数等于sendCount * rank size,即sendCount * 卡数。

dataType

输入

AllGather操作的数据类型,目前支持HcclDataType包含的全部数据类型,HcclDataType详细可参考表1。

strideCount

输入

  • strideCount=0,表示多张卡的数据拼接到一张卡的recvBuf时,相邻数据块保持地址连续。卡rank[i]的数据块将被放在recvBuf中,且偏移数据量为i*sendCount。非多轮切分场景下,推荐用户设置该参数为0。
  • strideCount>0,表示多张卡的数据拼接到一张卡的recvBuf时,相邻数据块在recvBuf中起始地址的偏移数据量为strideCount。卡rank[i]的数据块将被放在recvBuf中,且偏移数据量为i*strideCount。

注意:上述的偏移数据量为数据个数,单位为sizeof(dataType)。

repeat

输入

一次下发的AllGather通信任务个数。repeat取值≥1,默认值为1。当repeat>1时,每个AllGather任务的sendBuf和recvBuf地址由服务端自动算出,计算公式如下:

sendBuf[i] = sendBuf + sendCount* sizeof(datatype) * i, i∈[0, repeat)

recvBuf[i] = recvBuf + sendCount* sizeof(datatype) * i, i∈[0, repeat)

注意:当设置repeat>1时,须与strideCount参数配合使用,规划通信数据地址。

图 1AllGather通信示例
![](https://gitcode.com/cann/asc-devkit/blob/bb4de8edfa8363a842738c29971dd5671b794a6f/docs/api/figures/AllGather通信示例.png "AllGather通信示例"?utm_source=gitcode_repo_files)

返回值说明

返回该任务的标识handleId,handleId大于等于0。调用失败时,返回 -1。

约束说明

  • 调用本接口前确保已调用过InitV2和SetCcTilingV2接口。
  • 若HCCL对象的config模板参数未指定下发通信任务的核,该接口只能在AIC核或者AIV核两者之一上调用。若HCCL对象的config模板参数中指定了下发通信任务的核,则该接口可以在AIC核和AIV核上同时调用,接口内部会根据指定的核的类型,只在AIC核、AIV核二者之一下发该通信任务。
  • 对于Atlas A2 训练系列产品/Atlas A2 推理系列产品,一个通信域内,所有Prepare接口的总调用次数不能超过63。
  • 对于Atlas A3 训练系列产品/Atlas A3 推理系列产品,一个通信域内,所有Prepare接口和InterHcclGroupSync接口的总调用次数不能超过63。
  • 对于Ascend 950PR/Ascend 950DT,一个通信域内,所有Prepare接口的总调用次数不能超过63。
  • 对于Ascend 950PR/Ascend 950DT,通信服务端为CCU时,单次最大通信数据量不能超过256M。

调用示例

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

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

CANN/asc-devkit DeepNorm API 文档

DeepNorm 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: https://gitcode.com/c…

作者头像 李华
网站建设 2026/5/20 12:19:38

当选择动环监控系统时,为何选大榕树科技才能提升机房管理效率?

为何动环监控系统能提升效率 依靠集成多种技术&#xff0c;极大提升了机房管理效率。先看&#xff0c;这一系统实时收集和分析机房内的多种数据指标&#xff0c;依靠精准的数据驱动决策、使运维人员能够迅速识别潜在问题。还有环境检测功能为各类设备提供了持续监测&#xff0c…

作者头像 李华
网站建设 2026/5/20 12:19:22

为 OpenClaw 配置 Taotoken 作为后端提供商实现自动化工作流

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为 OpenClaw 配置 Taotoken 作为后端提供商实现自动化工作流 OpenClaw 是一款功能强大的 AI 智能体开发框架&#xff0c;能够帮助开…

作者头像 李华
网站建设 2026/5/20 12:19:17

嵌入式Linux开发板性能实测:CoreMark、内存带宽与Qt图形性能全解析

1. 项目概述&#xff1a;一次深度拆解国产高性能开发板性能的实战最近拿到了一块米尔电子出品的MYD-YT507H开发板&#xff0c;这是一款基于全志T507-H处理器的国产高性能嵌入式平台。对于从事边缘计算、车载信息娱乐系统或者工业人机界面开发的工程师来说&#xff0c;选型时最头…

作者头像 李华