CANN/asc-devkit HCCL v1 TilingData接口

发布时间:2026/10/28 20:50:43

CANN/asc-devkit HCCL v1 TilingData接口 v1版本TilingData废弃【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit[!NOTE]说明 该结构体废弃并将在后续版本移除请不要使用该结构体。无需直接对该结构体中的成员进行设置统一使用HCCL Tiling提供的接口设置即可。 对于本节介绍的TilingData结构体当构建通信计算融合算子时通算融合算子的TilingData结构体中计算Tiling结构体部分必须在本节的通信Tiling结构体后追加。 对于v1和v2两个版本的TilingDataTiling结构体的第一个uint32_t字段用于区分两个版本即v1版本的preparePosition字段v2版本的version字段。若使用v2版本的Tiling结构体则必须设置version2若使用v1版本的Tiling结构体则设置preparePosition1。用户使用任意版本的TilingData时都必须严格按照对应版本的Tiling结构体将其作为算子TilingData结构体的组成部分。功能说明AI CPU启动下发通信任务前需获取固定的通信配置Mc2Msg。在算子实现中由Tiling组装通信配置项通过配置固定参数和固定参数顺序的Tiling Data将通信配置信息在调用AI CPU通信接口时传递给AI CPU。参数说明表1Mc2Msg参数说明| 参数名 | 描述 | | --- | --- | | preparePosition | 设置服务端组装任务的方式用户需要在Tiling中显式赋值uint32_t类型当前支持的取值如下1AI CPU与AI Core通过通信任务机制实现消息传递和任务下发由AI Core侧通过消息通知时设置为1即算子中使用HCCL时设置为1。 | | sendOff | 预留参数不可配置。 | | recvOff | 预留参数不可配置。 | | tailSendOff | 预留参数不可配置。 | | tailRecvOff | 预留参数不可配置。 | | sendCnt | 预留参数不可配置。 | | recvCnt | 预留参数不可配置。 | | tailSendCnt | 预留参数不可配置。 | | tailRecvCnt | 预留参数不可配置。 | | totalCnt | 预留参数不可配置。 | | turnNum | 预留参数不可配置。 | | tailNum | 预留参数不可配置。 | | stride | 预留参数不可配置。 | | workspaceOff | 预留参数不可配置。 | | notifyOff | 预留参数不可配置。 | | notifyBeginCnt | 预留参数不可配置。 | | notifyEndCnt | 预留参数不可配置。 | | useBufferType | 设置通信算法获取输入数据的位置uint8_t类型参数取值如下0默认值默认通信输入不放在windows中其中windows为其他卡可访问的共享缓冲区。1通信输入不放在windows中当前该参数取值1与取值0的功能一致。2通信输入放在windows中仅适用于AllReduce算法。 | | funID | 预留参数不可配置。 | | dataType | 预留参数不可配置。 | | groupNum | 预留参数不可配置。 | | reuseMode | 预留参数不可配置。 | | commType | 预留参数不可配置。 | | reduceOp | 预留参数不可配置。 | | commOrder | 预留参数不可配置。 | | waitPolicy | 预留参数不可配置。 | | rspPolicy | 预留参数不可配置。 | | exitPolicy | 预留参数不可配置。 | | commAlg | 设置具体通信算法用户需要在Tiling中显式赋值uint8_t类型当前支持的取值如下1FullMesh算法即NPU之间的全连接任意两个NPU之间可以直接进行数据收发。 | | taskType | 预留参数不可配置。 | | debugMode | 预留参数不可配置。 | | stepSize | 预留参数不可配置。 | | sendArgIndex | 预留参数不可配置。 | | recvArgIndex | 预留参数不可配置。 | | commOutArgIndex | 预留参数不可配置。 | | hasCommOut | 本卡的通信算法的计算结果是否输出到recvBuf目的数据buffer地址。仅AllGather算法与AlltoAll算法支持配置该参数。uint8_t类型参数取值如下0不输出本卡通信算法的计算结果。在无需输出通信结果时配置参数值为0此时不会拷贝本卡的通信结果数据可提升算子性能。例如在8卡场景下本卡只取其他卡的部分数据这时可配置本参数为0。1输出本卡通信算法的计算结果。 | | reserve | 保留字段。 | | reserve2 | 保留字段。 |约束说明算子的Tiling Data结构需要按顺序完整包含Mc2Msg参数。AI CPU需获取固定数据结构的通信配置算子注册Tiling Data时保持该结构的一致性。Atlas A3 训练系列产品/Atlas A3 推理系列产品暂不支持该版本TilingData。调用示例以自定义算子AllGatherMatmulCustom为例如下为该算子的算子原型gather_out为通信任务AllGather的输出。[ { op: AllGatherMatmulCustom, input_desc: [ { name: x1, param_type: required, format: [ ND, ND ], type: [ float16, bfloat16 ] }, { name: x2, param_type: required, format: [ ND, ND ], type: [ float16, bfloat16 ] }, { name: bias, param_type: optional, format: [ ND, ND ], type: [ float16, bfloat16 ] } ], output_desc:[ { name: y, param_type: required, format: [ ND, ND ], type: [ float16, bfloat16 ] }, { name: gather_out, param_type: required, format: [ ND, ND ], type: [ float16, bfloat16 ] } ], attr: [ { name: group, type: string, default_value:, param_type:required }, { name: rank_size, type: int, default_value:0, param_type:optional }, { name: is_gather_out, type: bool, default_value:true, param_type:optional } ] } ]算子的Tiling Data结构需要按顺序完整包含Mc2Msg参数如下为算子Tiling Data代码示例。// 声明Mc2Msg结构 BEGIN_TILING_DATA_DEF(Mc2Msg) TILING_DATA_FIELD_DEF(uint32_t, preparePosition); TILING_DATA_FIELD_DEF(uint32_t, sendOff); TILING_DATA_FIELD_DEF(uint32_t, recvOff); TILING_DATA_FIELD_DEF(uint32_t, tailSendOff); TILING_DATA_FIELD_DEF(uint32_t, tailRecvOff); TILING_DATA_FIELD_DEF(uint64_t, sendCnt); TILING_DATA_FIELD_DEF(uint32_t, recvCnt); TILING_DATA_FIELD_DEF(uint32_t, tailSendCnt); TILING_DATA_FIELD_DEF(uint32_t, tailRecvCnt); TILING_DATA_FIELD_DEF(uint32_t, totalCnt); TILING_DATA_FIELD_DEF(uint32_t, turnNum); TILING_DATA_FIELD_DEF(uint32_t, tailNum); TILING_DATA_FIELD_DEF(uint32_t, stride); TILING_DATA_FIELD_DEF(uint32_t, workspaceOff); TILING_DATA_FIELD_DEF(uint32_t, notifyOff); TILING_DATA_FIELD_DEF(uint16_t, notifyBeginCnt); TILING_DATA_FIELD_DEF(uint16_t, notifyEndCnt); TILING_DATA_FIELD_DEF(uint8_t, useBufferType); TILING_DATA_FIELD_DEF(uint8_t, funID); TILING_DATA_FIELD_DEF(uint8_t, dataType); TILING_DATA_FIELD_DEF(uint8_t, groupNum); TILING_DATA_FIELD_DEF(uint8_t, reuseMode); TILING_DATA_FIELD_DEF(uint8_t, commType); TILING_DATA_FIELD_DEF(uint8_t, reduceOp); TILING_DATA_FIELD_DEF(uint8_t, commOrder); TILING_DATA_FIELD_DEF(uint8_t, waitPolicy); TILING_DATA_FIELD_DEF(uint8_t, rspPolicy); TILING_DATA_FIELD_DEF(uint8_t, exitPolicy); TILING_DATA_FIELD_DEF(uint8_t, commAlg); TILING_DATA_FIELD_DEF(uint8_t, taskType); TILING_DATA_FIELD_DEF(uint8_t, debugMode); TILING_DATA_FIELD_DEF(uint8_t, stepSize); TILING_DATA_FIELD_DEF(uint8_t, sendArgIndex); TILING_DATA_FIELD_DEF(uint8_t, recvArgIndex); TILING_DATA_FIELD_DEF(uint8_t, commOutArgIndex); TILING_DATA_FIELD_DEF(uint8_t, hasCommOut); TILING_DATA_FIELD_DEF(uint8_t, reserve); TILING_DATA_FIELD_DEF(uint32_t, reserve2); END_TILING_DATA_DEF; REGISTER_TILING_DATA_CLASS(Mc2MsgOp, Mc2Msg) BEGIN_TILING_DATA_DEF(AllGatherMatmulCustomTilingData) TILING_DATA_FIELD_DEF_STRUCT(Mc2Msg, msg); END_TILING_DATA_DEF;// 配置Mc2Msg AllGatherMatmulCustomTilingData tiling; tiling.msg.set_preparePosition(1); tiling.msg.set_commAlg(1); tiling.msg.set_useBufferType(1); tiling.msg.set_hasCommOut(1);【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/28 7:54:34

Deemix WebUI详细教程:打造云端音乐下载管理平台

Deemix WebUI详细教程:打造云端音乐下载管理平台 【免费下载链接】deemix 项目地址: https://gitcode.com/gh_mirrors/de/deemix 想要打造一个属于自己的云端音乐下载管理平台吗?Deemix WebUI就是你的终极解决方案!🚀 这款…

2026/10/27 21:12:01

Linux包管理神器yum:从基础使用到高级技巧

1. yum命令概述 在Linux系统管理中,yum(Yellowdog Updater Modified)是最常用的包管理工具之一,特别是在基于RPM的发行版如CentOS、RHEL和Fedora中。它简化了软件包的安装、更新和删除过程,自动处理依赖关系&#xff0…

2026/10/28 20:50:04

极简风效果图工具挑选与材质灯光设计全攻略

1. 极简风效果图工具的核心挑选逻辑十年前我刚入行时,第一次接触极简风效果图就被那种"少即是多"的视觉冲击震撼到了。但真正自己上手才发现,用普通设计工具做极简风格就像用菜刀雕玉——工具不对,怎么折腾都出不来那种高级感。这些…

2026/10/28 20:50:04

给Claude加记忆:从手动文档到自动召回,我踩过的五个坑

1. 从"聊完就忘"说起:claude-mem 到底想解决什么如果你用 Claude 这类对话式 AI 做过稍微长期一点的事情,比如连续几天跟进一个项目、反复迭代一份方案、或者让它在同一个代码库里帮你改东西,你大概率遇到过这种尴尬:昨…

2026/10/28 20:50:04

前端响应式适配:视口单位与弹性布局实战指南

1. 前端适配的核心方法论解析在现代前端开发中,适配问题一直是困扰开发者的难题。我经历过从早期固定布局到如今响应式设计的完整演进过程,深刻理解不同适配方案背后的技术原理和适用场景。当前主流的前端适配方法主要围绕视口单位、弹性布局和媒体查询三…

2026/10/28 20:50:04

Agent-Reach 架构:解决 AI Agent 工具调用失控与边界问题

先说个我最近经常被问到的问题:搞 AI Agent 的时候,模型本身能力已经够强了,为什么做出来的智能体还是经常“不听话”、动不动就把流程跑偏?很多人的第一反应是换更强的模型,或者多堆几个提示词模板,但实测…

2026/10/28 20:34:16

Qwen2.5-27B推理Baseline实测:Flash Attention与KV Cache调优指南

1. 项目概述:为什么一个“Baseline”值得花两周时间重跑?最近在模型推理优化圈子里,Qwen 3.8 27B 这个名字出现频率高得有点反常——不是因为它突然开源了新权重,而是因为一批人在反复验证同一个东西:它到底能不能在消…

2026/10/28 14:42:12

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/28 15:28:56

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/28 3:32:29

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/28 0:02:13

Python股票自动交易系统源码解析:从行情获取到风控的完整链路

简介:这份资源是面向高校计算机、金融相关专业毕业设计场景的完整项目源码包,主题为基于Python的股票自动交易系统,适合需要完成毕设选题、课程设计或自学金融量化交易开发的学生与开发者参考。压缩包共收录687个文件,整体约14.93…

2026/10/28 0:02:13

视酷酷信IM源码部署指南:Java 17+MySQL 8.0.33实战配置

简介:这是一套2024年亲测可部署的视酷酷信IM即时通讯系统源码,面向具备Java、OC、C#及Vue开发能力的技术人员,解决私有化即时通讯平台快速搭建与二次定制需求,尤其适用于需集成商城、保障数据主权的中小型企业或独立开发者。资源共…

2026/10/28 0:02:13

Python爬取百度迁徙数据:接口解析、批量采集与避坑指南

简介:这份资源是一个用Python爬取百度迁徙数据的脚本压缩包,面向具备Python基础、希望入门网络爬虫与数据解析的开发者,解决按日期获取全国热门城市人口迁徙数据的问题。包内共1个文件,为单个py脚本,压缩包约1KB&#…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑