news 2026/7/16 21:49:44

cann/asc-devkit核间同步初始化接口

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
cann/asc-devkit核间同步初始化接口

InitDetermineComputeWorkspace

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

InitDetermineComputeWorkspace是基于核间顺序执行的确定性计算的初始化配置接口,能够初始化GM共享内存的值,完成初始化后才可以调用WaitPreBlock和NotifyNextBlock。以上三个接口共同完成基于核间顺序执行的确定性计算,确定性计算的具体含义请参考确定性计算。

函数原型

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

参数说明

表1接口参数说明

参数名称输入/输出含义
gmWorkspace输入临时空间,初始化核间同步的共享内存,类型为GlobalTensor。
ubWorkspace输入临时空间,用于操作gmWorkspace,类型为LocalTensor。

返回值说明

约束说明

  • gmWorkspace申请的空间最少要求为:GetBlockNum()*32Bytes,ubWorkspace申请的空间最少要求为:GetBlockNum()*32+32Bytes。
  • 与IBSet/SyncAll不同,该接口输入参数gmWorkspace缓存的值不需要初始化为0。
  • 使用该接口进行多核控制时,算子调用时指定的逻辑AI Core核数numBlocks必须保证不大于实际运行该算子的AI处理器核数,否则框架进行多轮调度时会插入异常同步,导致Kernel“卡死”现象。

调用示例

// 初始化GM共享内存的同步状态,必须在核函数开始时首先调用。 AscendC::InitDetermineComputeWorkspace(gmWorkspace, ubWorkspace); for(int64_t i = 0; i < tileNum; i++) { AscendC::LocalTensor<T> srcLocal = que.AllocTensor<T>(); AscendC::DataCopy(srcLocal, srcGlobal[i * tileCount], tileCount); // 等待前序核(blockIdx-1)完成操作。 AscendC::WaitPreBlock(gmWorkspace, ubWorkspace); // 开启原子累加。 AscendC::SetAtomicAdd<T>(); AscendC::DataCopy(dstGlobal[i * tileCount], srcLocal, tileCount); AscendC::DisableDmaAtomic(); // 通知后序核(blockIdx+1)当前核已完成。 AscendC::NotifyNextBlock(gmWorkspace, ubWorkspace); que.FreeTensor(srcLocal); }

完整样例请参考sequential_block_sync示例。

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

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

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

CANN/asc-devkit WaitPreTaskEnd任务间同步接口文档

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

作者头像 李华
网站建设 2026/7/16 21:47:08

VRChat模型OSC面部捕捉集成指南:从原理到实践

1. 项目概述&#xff1a;为什么你的VRChat模型需要OSC面捕&#xff1f;如果你在VRChat里见过那些表情生动、眉毛会挑、嘴角会撇的玩家&#xff0c;心里肯定痒痒的&#xff0c;琢磨着“这到底是怎么做到的&#xff1f;”。答案&#xff0c;很大程度上就藏在OSC&#xff08;Open …

作者头像 李华
网站建设 2026/7/16 21:46:22

邻位连接技术(PLA)原位验证蛋白互作及亚细胞形态分析技术方案

摘要蛋白 - 蛋白相互作用是细胞信号转导、物质代谢与细胞器功能调控的核心分子基础。邻位连接技术&#xff08;Proximity Ligation Assay, PLA&#xff09;作为一种超高灵敏度的原位互作检测技术&#xff0c;突破了传统共定位实验 “仅能证明空间重合、无法直接验证互作” 的局…

作者头像 李华
网站建设 2026/7/16 21:44:08

告别B站观看限制:你的私人视频库搭建指南

告别B站观看限制&#xff1a;你的私人视频库搭建指南 【免费下载链接】BiliTools 本项目已停止维护。 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools 你是否曾遇到过这样的困扰&#xff1f;喜欢的B站UP主更新了精彩视频&#xff0c;但网络不稳定无法流…

作者头像 李华
网站建设 2026/7/16 21:44:04

音乐采样库的智能检索:用向量搜索替代关键词匹配找音色

音乐采样库的智能检索&#xff1a;用向量搜索替代关键词匹配找音色 一、"找一个温暖但有颗粒感的 Pad 音色"——关键词搜索&#xff1a;返回 374 个结果&#xff0c;全是标签里带"warm"或"pad"的&#xff0c;听都听不过来 传统音乐采样库&#x…

作者头像 李华
网站建设 2026/7/16 21:41:54

第四十二课——Android Monkey压力测试:从原理到避坑

文章目录 引言 一、Monkey测试:是什么与为什么 1.1 Monkey测试的本质 1.2 Monkey与iOS Monkey的区别 二、Monkey命令全参数精解 2.1 基础命令结构 2.2 关键参数详解 2.2.1 包名控制:-p 2.2.2 异常处理参数 2.2.3 随机种子:-s 2.2.4 事件延迟:--throttle 2.2.5 日志详细度:…

作者头像 李华