当前位置: 首页 > news >正文

CANN/pyasc核间同步接口文档

asc.language.basic.cross_core_set_flag

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

asc.language.basic.cross_core_set_flag(flag_id: int, mode_id: int, pipe: PipeID) → None

面向分离架构的核间同步控制接口。 该接口和cross_core_wait_flag接口配合使用。使用时需传入核间同步的标记ID(flagId),每个ID对应一个初始值为0的计数器。执行cross_core_set_flag后ID对应的计数器增加1;执行cross_core_wait_flag时如果对应的计数器数值为0则阻塞不执行;如果对应的计数器大于0,则计数器减一,同时后续指令开始执行。 同步控制分为以下几种模式:

  • 模式0:AI Core核间的同步控制。对于AIC场景,同步所有的AIC核,直到所有的AIC核都执行到cross_core_set_flag时,cross_core_wait_flag后续的指令才会执行;对于AIV场景,同步所有的AIV核,直到所有的AIV核都执行到cross_core_set_flag时,cross_core_wait_flag后续的指令才会执行。
  • 模式1:AI Core内部,AIV核之间的同步控制。如果两个AIV核都运行了cross_core_set_flag,cross_core_wait_flag后续的指令才会执行。
  • 模式2:AI Core内部,AIC与AIV之间的同步控制。在AIC核执行cross_core_set_flag之后,两个AIV上cross_core_wait_flag后续的指令才会继续执行;两个AIV都执行cross_core_set_flag后,AIC上cross_core_wait_flag后续的指令才能执行。

对应的Ascend C函数原型

template <uint8_t modeId, pipe_t pipe> __aicore__ inline void CrossCoreSetFlag(uint16_t flagId)

参数说明

  • modeId: 核间同步的模式,取值如下:
    • 模式0:AI Core核间的同步控制。
    • 模式1:AI Core内部,Vector核(AIV)之间的同步控制。
    • 模式2:AI Core内部,Cube核(AIC)与Vector核(AIV)之间的同步控制。
  • pipe: 设置这条指令所在的流水类型。
  • flagId: 核间同步的标记,取值范围是0-10。

约束说明

  • 使用该同步接口时,需要按照如下规则设置Kernel类型:
    • 在纯Vector/Cube场景下,需设置Kernel类型为KERNEL_TYPE_MIX_AIV_1_0或KERNEL_TYPE_MIX_AIC_1_0。
    • 对于Vector和Cube混合场景,需根据实际情况灵活配置Kernel类型。
  • 因为Matmul高阶API内部实现中使用了本接口进行核间同步控制,所以不建议开发者同时使用该接口和Matmul高阶API,否则会有flagID冲突的风险。
  • 同一flagId的计数器最多设置15次。

调用示例

asc.cross_core_set_flag(flag_id=0, mode_id=0, pipe=asc.PipeID.PIPE_V)

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

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

http://www.jsqmd.com/news/785269/

相关文章:

  • 开源3D模型实战:从GitHub资源到Unity/Blender高效应用与优化
  • pywencai:从自然语言到金融数据的智能桥梁
  • CANN/ops-nn贡献指南
  • Web 3.0技术融合:区块链、AI与边缘计算的协同架构与实践
  • 2026年降AI工具万方实测对比:主流五款工具万方AIGC检测通过率与价格完整分析
  • OpenClaw交易框架的智能进化:脉冲神经网络与智能体编排实战
  • GCC编译器智能增强:基于LLM的编译错误自然语言解释工具chatgcc
  • 开源芯片设计实践指南:从RISC-V到GDSII的完整流程解析
  • 终极轻量级Alienware性能优化方案:500KB工具完全替代AWCC
  • 在go-kratos中使用服务注册和发现
  • 我打开Prime Video是为了看剧,它却先让我刷一会儿
  • 那个被裁掉的35岁程序员,后来成了AI训练师
  • 从零搭建GitHub Pages静态博客:Hugo实战与自动化部署指南
  • 手把手教你配置SSH密钥:从本地生成到GitHub、服务器免密登录完整流程
  • AI公平性中的蝴蝶效应:微小偏差如何引发系统性歧视
  • ESP芯片烧录神器esptool:5分钟掌握固件刷写终极指南
  • go语言 mysql DB 使用方法
  • 零基础自建知识图谱网站——数据编辑页面
  • R语言线性回归实战:从lm函数到模型诊断与业务解读
  • Python 开发者如何通过 OpenAI 兼容协议快速调用多模型
  • OpenClaw会话审计插件:为AI代理打造透明化操作日志与安全监控
  • 2026年杭州美发培训机构选型:欧曼谛美发学校好不好深度解析 - 产业观察网
  • XAI评估新框架:从信息质量到社会价值的全面度量
  • TMS320DM6467引导模式详解与配置指南
  • STM32 SysTick定时器保姆级教程:从9分频到72M主频,彻底搞懂delay_us()底层原理
  • 祝睿融
  • 钢套铜套核心技术突破:中浮动力领航精密传动部件行业新标杆 - 品牌策略师
  • 多语言开发依赖加速:智能代理multicodex-proxy原理与部署指南
  • AI工具搭建自动化视频生成自动创建工单
  • 英语阅读_post-exam economy