发布时间:2026/7/16 15:11:41
CANN/asc-devkit核间同步能力概述 核间同步能力概述【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit核间同步的使用场景通常是一个核计算所依赖的数据需要等待其他相关核的计算全部完成后才能获取。以图1为例AIC需要依赖于AIV的ReduceSum计算结果。由于整体矢量较大必须拆分为多个部分由每个AIV分别完成部分计算。每个AIV将其部分计算结果通过原子累加写入GM。AIC需要读取的必须是所有AIV均完成累加后的最终结果因此需要通过核间同步来保证AIC读取ReduceSum结果时的时序正确性。图1核间同步业务场景示例图AIC:AIV为1 : 2![](https://raw.gitcode.com/cann/asc-devkit/raw/fca368efb52629b09a323752901d0e77214b266d/docs/zh/api/figures/inter_core_sync_scenario_example.png 核间同步业务场景示例图AIC-AIV为1-2?utm_sourcegitcode_repo_files)AIC/AIV多核结构如下图2所示AIC/AIV按group划分。一个group内细分block及subblockblock与subblock比例为1:NN1block表示多少个“主核”subblock表示一个“主核”带多少个“从核”。算子按计算特征可分为三类Cube算子矩阵计算、Vector算子矢量计算和Mix算子同时包含矩阵和矢量计算。如表1所示算子类型决定了其所需的核间同步方式和可选的group配置模式。其中Mix算子通过函数修饰符指定AIC与AIV的block/subblock关系Cube算子和Vector算子为单类核执行不涉及block/subblock划分。AIV为block且AIC为subblock的配置即Vector核为主、Cube核为辅的模式当前不支持。表2总结了核间同步接口及其支持的同步场景。图2block和subblock之间关系灰色部分表示一个group即1个block和N个subblock ![](https://raw.gitcode.com/cann/asc-devkit/raw/fca368efb52629b09a323752901d0e77214b266d/docs/zh/api/figures/block_subblock_relationship_3510.png NPU架构版本3510block和subblock之间关系灰色部分表示一个group即1个block和N个subblock?utm_sourcegitcode_repo_files)表1group配置算子类型函数修饰符Kernel类型block/subblock1 NCube算子__cube__KERNEL_TYPE_AIC_ONLYAIC为block无subblock不涉及Vector算子__vector__KERNEL_TYPE_AIV_ONLYAIV为block无subblock不涉及Mix算子__mix__(1, 0)KERNEL_TYPE_MIX_AIC_1_0AIC为block无subblock不涉及Mix算子__mix__(0, 1)KERNEL_TYPE_MIX_AIV_1_0AIV为block无subblock不涉及Mix算子__mix__(1, 1)KERNEL_TYPE_MIX_AIC_1_1AIC为blockAIV为subblock11Mix算子__mix__(1, 2)KERNEL_TYPE_MIX_AIC_1_2AIC为blockAIV为subblock12表2支持的核间同步场景接口名称核间同步场景概述同步类别CrossCoreSetFlag.md)/CrossCoreWaitFlag.md)多个AIC或AIV之间的同步控制。CrossCoreSetFlag负责发送通知CrossCoreWaitFlag负责阻塞直到CrossCoreSetFlag发送通知。支持以下同步场景•模式0同步等待全部AIC或者同步等待全部AIV执行结束。•模式1单个AI Core内全部AIV之间的同步。•模式2单个AI Core内AIC与全部AIV之间的同步。•模式4单个AI Core内AIC核与单个AIV之间同步。硬件同步IBSet/IBWaitIBSet和IBWait配合使用用于一对AIV间的同步等待核调用IBWait阻塞本核后续指令的执行被等待核调用IBSet通知等待核解除阻塞。上述同步过程的原理如下被等待核中调用IBSet通过将值1写入全局内存中某块地址来通知等待核而等待核中调用IBWait持续读取全局内存中相应地址块的值直到其值变为1。软件同步SyncAll用于多个核之间的同步控制支持以下同步场景•纯Vector算子的全核同步可参考CrossCoreSetFlag的模式0。•融合算子的全核同步一次性实现三个核间同步能力参考CrossCoreSetFlag的关键特性说明首先完成单个AI Core内AIC与全部AIV之间的同步AIC等AIV接着完成多个AI Core间所有AIC的同步最后完成单个AI Core内所有AIV与AIC同步AIV等AIC。硬件同步SyncAll仅支持纯Vector算子的多核参与同步的核数可通过入参指定同步。每一个AIV都向全局内存对应位置写入信号值1接着每一个AIV都持续轮询全局内存中所有AIV对应的信号值直到所有AIV核对应的信号值都变为1。软件同步InitDetermineComputeWorkspace/NotifyNextBlock/WaitPreBlock• InitDetermineComputeWorkspace、NotifyNextBlock和WaitPreBlock三个接口必须组合使用能够确保多个AIV核严格按照blockIdx的升序执行适用于要求确定性计算的场景。• InitDetermineComputeWorkspace初始化GM共享内存的值完成初始化后才可以调用NotifyNextBlock和WaitPreBlock。• NotifyNextBlock通过写全局内存来通知其他核当前核已执行完成其他核可以继续往下执行WaitPreBlock通过读取全局内存判断当前核是否可以继续往下执行。软件同步【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/7/16 15:11:41

JetBrains Air:多Agent协同的IDE运行时架构解析

1. 项目概述:Air 不是“又一个 AI 插件”,而是 IDE 架构的范式迁移 JetBrains 官方在 2024 年中正式发布 Air,这个命名本身就很耐人寻味——它不叫 “AI Assistant Pro” 或 “CodeGen X”,而是一个轻、透、无感的词。我第一时间下…

2026/7/16 15:11:41

正弦波交流电路:原理、参数与工程实践

1. 正弦波交流电路的基本概念正弦波交流电路是电力系统和电子技术中最基础也最重要的电路形式之一。我们日常生活中使用的220V市电、各种电子设备内部的信号传输、无线通信中的载波信号,本质上都是正弦波交流电的具体应用。正弦波之所以如此重要,是因为它…

2026/7/16 16:06:47

Dropify版本迁移指南:从旧版本升级到最新版本的无缝迁移

Dropify版本迁移指南:从旧版本升级到最新版本的无缝迁移 【免费下载链接】dropify Override your input files with style — Demo here : http://jeremyfagis.github.io/dropify 项目地址: https://gitcode.com/gh_mirrors/dr/dropify Dropify是一个功能强大…

2026/7/16 16:06:47

如何快速掌握Mi-Create:小米手表表盘设计的完整实践指南

如何快速掌握Mi-Create:小米手表表盘设计的完整实践指南 【免费下载链接】Mi-Create Unofficial watchface creator for Xiaomi wearables ~2021 and above 项目地址: https://gitcode.com/gh_mirrors/mi/Mi-Create 你是否厌倦了千篇一律的官方表盘&#xff…

2026/7/16 16:06:47

如何快速掌握3DS存档管理:JKSM完整使用指南与技巧

如何快速掌握3DS存档管理:JKSM完整使用指南与技巧 【免费下载链接】JKSM JKs Save Manager for 3DS 项目地址: https://gitcode.com/gh_mirrors/jk/JKSM JKSM(JKs Save Manager) 是专为任天堂3DS游戏机设计的开源存档管理工具&#xf…

2026/7/16 16:01:46

魔兽世界字体补全终极方案:3分钟解决游戏乱码问题

魔兽世界字体补全终极方案:3分钟解决游戏乱码问题 【免费下载链接】Warcraft-Font-Merger Warcraft Font Merger,魔兽世界字体合并/补全工具。 项目地址: https://gitcode.com/gh_mirrors/wa/Warcraft-Font-Merger 还在为《魔兽世界》游戏中的方块…

2026/7/15 17:04:06

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/15 22:21:34

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/15 23:18:22

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/16 0:04:06

AD9215BRUZRL7-105是一款工业 10bit 流水线模数转换器

型号介绍AD9215BRUZRL7-105 是一款10 位单通道高速流水线模数转换器,它采用模拟单电源独立供电 数字驱动分离供电双电源架构,模拟电源 AVDD 额定 3V,允许工作区间 2.7V~3.3V;数字驱动电源 DRV 独立设计,支持 2.25V~3.…

2026/7/16 0:04:06

LTC4418IUF#TRPBF是一款工业级双通道控制器

型号介绍LTC4418IUF#TRPBF 是一款工业级双通道电源路径控制器,它芯片采用 20 引脚 4mm4mm QFN 封装,底部附带外露散热焊盘作为 21 号 GND 引脚,热阻 θJA 为 47℃/W、θJC 仅 4.5℃/W,散热性能适配大功率切换场景;温区…

2026/7/16 0:04:06

uos-exporter核心组件解析:10个关键监控导出器功能详解

uos-exporter核心组件解析:10个关键监控导出器功能详解 【免费下载链接】uos-exporter uos-exporter collects metrics from os 项目地址: https://gitcode.com/openeuler/uos-exporter 前往项目官网免费下载:https://ar.openeuler.org/ar/ uos-…

2026/7/16 13:58:36

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…