CANN/asc-devkit核间同步API文档

发布时间:2026/5/20 18:32:51

CANN/asc-devkit核间同步API文档 CrossCoreWaitFlag(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 推理产品xAtlas 推理系列产品 AI CorexAtlas 推理系列产品 Vector CorexAtlas 训练系列产品x功能说明面向分离模式的核间同步控制接口。该接口和CrossCoreSetFlag.md)接口配合使用。具体使用方法请参考CrossCoreSetFlag.md)。函数原型template uint8_t modeId 0, pipe_t pipe PIPE_S __aicore__ inline void CrossCoreWaitFlag(uint16_t flagId)参数说明表 1模板参数说明参数名描述modeId核间同步的模式取值如下模式0AI Core核间的同步控制。模式1AI Core内部Vector核AIV之间的同步控制。模式2AI Core内部Cube核AIC与Vector核AIV之间的同步控制。模式4AI Core内部AIC与AIV之间的同步控制。AIV0与AIV1可单独触发AIC等待。pipe设置这条指令所在的流水类型流水类型可参考硬件流水类型。特别地PIPE_S流水类型仅Ascend 950PR/Ascend 950DT支持。表 2参数说明参数名输入/输出描述flagId输入核间同步的标记。Atlas A2 训练系列产品 / Atlas A2 推理系列产品取值范围是0-10。Atlas A3 训练系列产品 / Atlas A3 推理系列产品取值范围是0-10。Ascend 950PR/Ascend 950DT取值范围如下AIV0发起的flagId 0-10的CrossCoreSetFlag操作对应AIC CrossCoreWaitFlag中flagId 0-10的操作。AIV1发起的flagId 0-10的CrossCoreSetFlag操作对应AIC CrossCoreWaitFlag中flagId 16-26的操作。AIC发起的flagId 0-10的CrossCoreSetFlag操作对应AIV0 CrossCoreWaitFlag中flagId 0-10的操作。AIC发起的flagId 16-26的CrossCoreSetFlag操作对应AIV1 CrossCoreWaitFlag中flagId 0-10的操作。返回值说明无约束说明使用该同步接口时需要按照如下规则设置Kernel类型在纯Vector/Cube场景下需设置Kernel类型为KERNEL_TYPE_MIX_AIV_1_0或KERNEL_TYPE_MIX_AIC_1_0。对于Vector和Cube混合场景需根据实际情况灵活配置Kernel类型。CrossCoreWaitFlag必须与CrossCoreSetFlag.md)接口配合使用避免计算核一直处于阻塞阶段。如果执行CrossCoreWaitFlag时该flagId的计数器的值为0则CrossCoreWaitFlag之后的所有指令都将被阻塞直到该flagId的计数器的值不为0。同一个flagId的计数器最多设置15次。使用该接口模式0时建议开启batchmode模式使算子独占全部所需核资源否则可能因满足以下条件导致死锁多流并发场景≥2条执行流。≥2个算子并发执行。所有并发算子的核数总和超过物理核数。≥2个并发算子使用了核间同步功能。具体而言在多流场景下某条流的核间同步算子虽分配到n个物理核但可能仅有n-m个核先被调度执行而其余m个核因被其他流的核间同步算子抢占而尚未启动。先启动的n-m个核执行到核间同步时等待剩余m核完成而剩余m核因被其他流的核间同步算子占用而无法释放形成死锁。Kernel直调场景下通过__schedmode__(mode)限定符来设置batchmode模式工程化算子开发场景下通过TilingContext的SetScheduleMode接口来设置batchmode模式具体请参考《基础数据结构和接口》。调用示例请参考调用示例.md#section837496171220)。【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻