news 2026/7/16 20:04:23

CANN/asc-devkit DataSyncBarrier同步屏障API

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/asc-devkit DataSyncBarrier同步屏障API

DataSyncBarrier(ISASI)

【免费下载链接】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 推理产品:支持
  • Atlas 推理系列产品AI Core:不支持
  • Atlas 推理系列产品Vector Core:不支持
  • Atlas 训练系列产品:不支持

功能说明

头文件路径为:"basic_api/kernel_operator_block_sync_intf.h"

阻塞后续的指令执行,直到所有之前的内存访问指令(需要等待的内存位置可通过参数控制)执行结束,用于解决Scalar的内存依赖。

函数原型

template <MemDsbT arg0> __aicore__ inline void DataSyncBarrier()

参数说明

表1模板参数说明

参数名描述
arg0模板参数,表示需要等待的内存位置,类型为MemDsbT,可取值为:
• ALL,等待GM和UB的访问指令(不包括其他内存位置,例如L0C Buffer、L1 Buffer)。
• DDR,等待GM访问指令。
• UB,等待UB访问指令。
• SEQ,等待SEQ访问指令。

返回值说明

约束说明

等待的内存位置取值为ALL时,只能等待GM和UB的访问指令,不包括其他内存位置,例如L0C Buffer、L1 Buffer。

调用示例

if (blockIdx == 0) { // 先写入被依赖数据,再通过DataSyncBarrier等待GM访问完成。 AscendC::WriteGmByPassDCache<T>(reinterpret_cast<__gm__ T *>(srcGm) + 1, DATA_VALUE); // DataSyncBarrier<DDR>阻塞后续GM写,确保上一条GM写对其他核可见。 AscendC::DataSyncBarrier<AscendC::MemDsbT::DDR>(); // 最后写入同步标记,block 1读到该标记后即可安全读取srcGm[1]。 AscendC::WriteGmByPassDCache<T>(reinterpret_cast<__gm__ T *>(srcGm), SYNC_FLAG); } if (blockIdx == 1) { while (true) { __gm__ T *addr = const_cast<__gm__ T *>(srcGlobal.GetPhyAddr()); // 轮询GM第0个元素,等待block 0写入同步标记。 T flagValue = AscendC::ReadGmByPassDCache<T>(addr); if (flagValue == SYNC_FLAG) { // DataSyncBarrier保证同步标记之前的srcGm[1]写入已完成。 T dataValue = AscendC::ReadGmByPassDCache<T>(addr + 1); AscendC::WriteGmByPassDCache<T>(reinterpret_cast<__gm__ T *>(dstGm), 2 * dataValue); return; } } }

完整样例请参考DataSyncBarrier接口样例。

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

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

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

5步掌握Sketch Measure:设计师与开发者的高效协作指南

5步掌握Sketch Measure&#xff1a;设计师与开发者的高效协作指南 【免费下载链接】sketch-measure Make it a fun to create spec for developers and teammates 项目地址: https://gitcode.com/gh_mirrors/sk/sketch-measure Sketch Measure是一款专为Sketch设计的强大…

作者头像 李华
网站建设 2026/7/16 20:02:29

探索PC微信小程序逆向工程:深度解密wxapkg加密机制实战指南

探索PC微信小程序逆向工程&#xff1a;深度解密wxapkg加密机制实战指南 【免费下载链接】pc_wxapkg_decrypt_python PC微信小程序 wxapkg 解密 项目地址: https://gitcode.com/gh_mirrors/pc/pc_wxapkg_decrypt_python 微信小程序逆向工程研究已成为技术开发者深入理解小…

作者头像 李华
网站建设 2026/7/16 20:01:48

如何快速掌握PDF处理技巧:PDF补丁丁终极使用指南

如何快速掌握PDF处理技巧&#xff1a;PDF补丁丁终极使用指南 【免费下载链接】PDFPatcher PDF补丁丁——PDF工具箱&#xff0c;可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档&#xff0c;探查文档结构&#xff0c;提取图片、转成图片等等 项目地址: https://gitcode…

作者头像 李华
网站建设 2026/7/16 20:01:15

yuzu模拟器完整下载指南:如何快速获取最新稳定版本

yuzu模拟器完整下载指南&#xff1a;如何快速获取最新稳定版本 【免费下载链接】yuzu-downloads 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu-downloads 想要体验流畅的Switch游戏模拟&#xff0c;却为寻找可靠的yuzu模拟器下载源而烦恼&#xff1f;yuzu-d…

作者头像 李华
网站建设 2026/7/16 20:00:12

让你的桌面活起来:DyberPet桌面宠物框架完全指南

让你的桌面活起来&#xff1a;DyberPet桌面宠物框架完全指南 【免费下载链接】DyberPet Desktop Cyber Pet Framework based on PySide6 项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet 你是否厌倦了单调的电脑桌面&#xff1f;是否渴望在数字世界中拥有一…

作者头像 李华