news 2026/7/16 19:19:24

CANN/Ascend C核间同步WaitPreBlock

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/Ascend C核间同步WaitPreBlock

WaitPreBlock

【免费下载链接】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_determine_compute_sync_intf.h"

WaitPreBlock和NotifyNextBlock是核间同步控制接口。NotifyNextBlock通过写全局内存来通知其他核当前核已执行完成,其他核可以继续往下执行;WaitPreBlock通过读取全局内存,判断当前核是否可以继续往下执行。

WaitPreBlock和NotifyNextBlock必须与InitDetermineComputeWorkspace接口配合使用,这三个接口组合使用能够确保多个AIV核严格按照blockIdx的升序执行,适用于要求确定性计算的场景,确定性计算的具体含义请参考原子操作-确定性计算。

函数原型

__aicore__ inline void WaitPreBlock(GlobalTensor<int32_t>& gmWorkspace, LocalTensor<int32_t>& ubWorkspace)

参数说明

表1接口参数说明

参数名称输入/输出含义
gmWorkspace输入临时空间,通过读取gmWorkspace,判断当前核是否可以继续往下执行,类型为GlobalTensor。
ubWorkspace输入临时空间,用于操作gmWorkspace,类型为LocalTensor。

返回值说明

约束说明

  • 要实现确定性计算,需要保证每个核调用NotifyNextBlock/WaitPreBlock接口的次数相同。如果调用了NotifyNextBlock没有与之配对的WaitPreBlock,会导致非确定性计算、输出结果可能不符合预期;如果调用了WaitPreBlock没有与之配对的NotifyNextBlock,会导致程序卡死。
  • 使用接口前,请确保已经调用InitDetermineComputeWorkspace接口,初始化共享内存。
  • gmWorkspace申请的空间最少要求为:GetBlockNum()*32Bytes,ubWorkspace申请的空间最少要求为:GetBlockNum()*32+32Bytes。
  • 使用该接口进行多核同步时,仅对AIV核生效,WaitPreBlock和NotifyNextBlock之间仅支持插入矢量计算相关指令,对矩阵计算相关指令不生效。
  • 使用该接口进行多核控制时,算子调用时指定的逻辑AI Core核数numBlocks必须保证不大于实际运行该算子的AI处理器核数,否则框架进行多轮调度时会插入异常同步,导致Kernel“卡死”现象。

调用示例

完整样例请参考调用示例。

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

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

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

CANN/asc-devkit SIMD核内同步特性说明

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

作者头像 李华
网站建设 2026/7/16 19:17:11

2026新手大提琴选购避坑指南,2款高性价比大提琴推荐

大提琴大概是所有乐器中最贴近人声的存在——这句话&#xff0c;很多人在第一次听到大提琴的声音时就深信不疑。 但你有没有想过&#xff1a;为什么偏偏是大提琴&#xff0c;而不是小提琴、钢琴或长笛&#xff1f;这个问题的答案&#xff0c;藏在这件乐器数百年的演变史里。而…

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

5步掌握:如何快速搭建云安全实战环境,提升攻防能力

5步掌握&#xff1a;如何快速搭建云安全实战环境&#xff0c;提升攻防能力 【免费下载链接】awesome-cloud-security awesome cloud security 收集一些国内外不错的云安全资源&#xff0c;该项目主要面向国内的安全人员 项目地址: https://gitcode.com/gh_mirrors/awe/awesom…

作者头像 李华
网站建设 2026/7/16 19:14:56

GitHub Pages重定向技术实战:5分钟构建FOSSASIA照片分享网站

GitHub Pages重定向技术实战&#xff1a;5分钟构建FOSSASIA照片分享网站 【免费下载链接】photos.fossasia.org FOSSASIA Photo Site https://photos.github.io 项目地址: https://gitcode.com/gh_mirrors/ph/photos.fossasia.org 在当今快速发展的数字时代&#xff0c;…

作者头像 李华