news 2026/5/9 20:47:34

CANN/pyasc核间同步ib_set函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/pyasc核间同步ib_set函数

asc.language.basic.ib_set

【免费下载链接】pyasc本项目为Python用户提供算子编程接口,支持在昇腾AI处理器上加速计算,接口与Ascend C一一对应并遵守Python原生语法。项目地址: https://gitcode.com/cann/pyasc

asc.language.basic.ib_set(gm_workspace: GlobalTensor, ub_workspace: LocalTensor, block_idx: int, event_id: int, is_aiv_only: bool = True) → None

当不同核之间操作同一块全局内存且可能存在读后写、写后读以及写后写等数据依赖问题时,通过调用该函数来插入同步语句来避免上述数据依赖时可能出现的数据读写错误问题。 调用ib_set设置某一个核的标志位,与ib_wait成对出现配合使用,表示核之间的同步等待指令,等待某一个核操作完成。

对应的Ascend C函数原型

template <bool isAIVOnly = true> __aicore__ inline void IBSet( const GlobalTensor<int32_t>& gmWorkspace, const LocalTensor<int32_t>& ubWorkspace, int32_t blockIdx, int32_t eventID)

参数说明

  • gmWorkspace: 外部存储核状态的公共缓存,类型为GlobalTensor。
  • ubWorkspace: 存储当前核状态的公共缓存。类型为LocalTensor,支持的TPosition为VECIN/VECCALC/VECOUT。
  • blockIdx: 表示等待核的idx号,取值范围:[0, 核数-1]。
  • eventID: 用来控制当前核的set、wait事件。
  • isAIVOnly:控制是否为AIVOnly模式,默认为true。

约束说明

  • gmWorkspace申请的空间最少要求为:核数 * 32Bytes * eventID_max + blockIdx_max * 32Bytes + 32Bytes。(eventID_max和blockIdx_max分别指eventID、blockIdx的最大值 );
  • 注意:如果是AIVOnly模式,核数 = GetBlockNum();如果是MIX模式,核数 = GetBlockNum() * 2;
  • ubWorkspace申请的空间最少要求为:32Bytes;
  • gmWorkspace缓存的值需要初始化为0。
  • 使用该接口进行多核控制时,算子调用时指定的逻辑blockNum必须保证不大于实际运行该算子的AI处理器核数,否则框架进行多轮调度时会插入异常同步,导致Kernel“卡死”现象。

调用示例

gm = asc.GlobalTensor() gm.set_global_buffer(x) ub = asc.LocalTensor(dtype=asc.int32, pos=asc.TPosition.VECIN, addr=0, tile_size=32) asc.ib_set(gm, ub, block_idx=0, event_id=0)

【免费下载链接】pyasc本项目为Python用户提供算子编程接口,支持在昇腾AI处理器上加速计算,接口与Ascend C一一对应并遵守Python原生语法。项目地址: https://gitcode.com/cann/pyasc

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

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

Node-Redis Lua脚本调试终极指南:5个简单有效的调试技巧

Node-Redis Lua脚本调试终极指南&#xff1a;5个简单有效的调试技巧 【免费下载链接】node-redis Redis Node.js client 项目地址: https://gitcode.com/gh_mirrors/no/node-redis Redis作为高性能的内存数据库&#xff0c;其Lua脚本功能为开发者提供了强大的原子操作能…

作者头像 李华
网站建设 2026/5/9 20:43:24

XAI 2.0:从通用解释到目标导向的可解释人工智能实践

1. 项目概述&#xff1a;从“黑盒”到“白盒”的进化之路 在人工智能领域&#xff0c;我们正处在一个关键的十字路口。模型变得越来越强大&#xff0c;从精准的医疗诊断到复杂的金融风控&#xff0c;AI的触角无处不在。然而&#xff0c;一个日益尖锐的矛盾也随之浮现&#xff1…

作者头像 李华
网站建设 2026/5/9 20:39:33

Python整数有上限吗?揭秘动态大整数的原理与工程边界

1. 这个问题比你想象的更根本&#xff1a;Python整数到底有没有“最大值”&#xff1f;很多人第一次听说“Python最大整数”时&#xff0c;下意识会去查sys.maxint或sys.maxsize&#xff0c;然后发现结果要么报错&#xff0c;要么是个看起来很奇怪的数字&#xff08;比如 92233…

作者头像 李华
网站建设 2026/5/9 20:37:07

JAVA基础教学计划【欢迎指点】

学习JAVA&#xff0c;首先要了解Java语言的第一个特性——面向对象。编程语言就像我们现实生活中面对种种情景是一样的&#xff0c;可以说这是属于计算机的世界&#xff0c;我们人来到计算机世界自然要熟悉这个世界构成方式。在现实中&#xff0c;我们认识一件事物&#xff0c;…

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

【亲测免费】MUI:高性能移动端开发框架安装与配置完全指南

【亲测免费】MUI&#xff1a;高性能移动端开发框架安装与配置完全指南 【免费下载链接】mui 最接近原生APP体验的高性能框架 项目地址: https://gitcode.com/gh_mirrors/mu/mui MUI是一款致力于提供最接近原生APP体验的高性能移动端开发框架&#xff0c;让开发者能够快速…

作者头像 李华