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

发布时间:2026/7/16 21:50:34

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(GlobalTensorint32_t gmWorkspace, LocalTensorint32_t ubWorkspace)参数说明表1接口参数说明参数名称输入/输出含义gmWorkspace输入临时空间初始化核间同步的共享内存类型为GlobalTensor。ubWorkspace输入临时空间用于操作gmWorkspace类型为LocalTensor。返回值说明无约束说明gmWorkspace申请的空间最少要求为GetBlockNum()*32BytesubWorkspace申请的空间最少要求为GetBlockNum()*3232Bytes。与IBSet/SyncAll不同该接口输入参数gmWorkspace缓存的值不需要初始化为0。使用该接口进行多核控制时算子调用时指定的逻辑AI Core核数numBlocks必须保证不大于实际运行该算子的AI处理器核数否则框架进行多轮调度时会插入异常同步导致Kernel“卡死”现象。调用示例// 初始化GM共享内存的同步状态必须在核函数开始时首先调用。 AscendC::InitDetermineComputeWorkspace(gmWorkspace, ubWorkspace); for(int64_t i 0; i tileNum; i) { AscendC::LocalTensorT srcLocal que.AllocTensorT(); AscendC::DataCopy(srcLocal, srcGlobal[i * tileCount], tileCount); // 等待前序核blockIdx-1完成操作。 AscendC::WaitPreBlock(gmWorkspace, ubWorkspace); // 开启原子累加。 AscendC::SetAtomicAddT(); AscendC::DataCopy(dstGlobal[i * tileCount], srcLocal, tileCount); AscendC::DisableDmaAtomic(); // 通知后序核blockIdx1当前核已完成。 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),仅供参考

相关新闻

数据库系统概论核心概念精解与实战习题指南

数据库系统概论核心概念精解与实战习题指南

2026/7/16 21:50:34

1. 数据库系统核心概念精解 数据库系统是现代信息系统的核心组成部分,它不仅仅是存储数据的仓库,更是一个复杂的数据管理生态系统。理解数据库系统的核心概念,就像学习一门新语言的语法规则,只有掌握了这些基础,才能写…

告别Keil,用VSCode+EIDE打造你的跨平台嵌入式开发工作流

告别Keil,用VSCode+EIDE打造你的跨平台嵌入式开发工作流

2026/7/16 21:50:34

1. 为什么选择VSCodeEIDE替代Keil? 如果你还在用Keil开发嵌入式项目,可能会遇到这些痛点:臃肿的界面、缓慢的编译速度、Windows系统限制、高昂的授权费用。我用了8年Keil后转向VSCodeEIDE,开发效率提升了至少30%。VSCode作为代码…

无人机通信链路:双频遥控与卫星导航的协同原理

无人机通信链路:双频遥控与卫星导航的协同原理

2026/7/16 21:50:34

1. 无人机通信链路的基本构成当你手握遥控器操控无人机时,背后其实有两套通信系统在同时工作。一套是负责实时操控的2.4GHz/5.8GHz无线链路,另一套则是确保无人机能精准定位的卫星导航系统。这两套系统就像无人机的"神经系统"和"GPS导航&…

CANN AscendC MakeLayout布局构造

CANN AscendC MakeLayout布局构造

2026/7/16 23:00:54

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

Vue.js and Go example project性能优化:7个提升响应速度的技巧

Vue.js and Go example project性能优化:7个提升响应速度的技巧

2026/7/16 23:00:54

Vue.js and Go example project性能优化:7个提升响应速度的技巧 【免费下载链接】vue-go-example Vue.js and Go example project 项目地址: https://gitcode.com/gh_mirrors/vu/vue-go-example Vue.js and Go example project是一个结合Vue.js前端和Go后端的…

BUUCTF 编码与调制实战:从曼彻斯特到差分曼彻斯特的CTF信号解码

BUUCTF 编码与调制实战:从曼彻斯特到差分曼彻斯特的CTF信号解码

2026/7/16 23:00:54

1. 曼彻斯特编码的CTF实战解码技巧 第一次在BUUCTF遇到曼彻斯特编码的题目时,我盯着那串"5555555595555A65556AA696AA6666666955"的十六进制数据发了半天呆。后来才发现,这类题目其实有规律可循,只要掌握几个关键点就能轻松破解。 …

Golang实现高可靠进程保活:基于Linux文件锁的双进程互保与托孤机制

Golang实现高可靠进程保活:基于Linux文件锁的双进程互保与托孤机制

2026/7/16 23:00:54

1. 项目概述:当渗透测试遇上进程永生在安全研究和软件开发领域,有两个看似不相关,实则底层逻辑相通的技术方向常常让从业者着迷:一个是Metasploit这类强大的渗透测试框架所代表的“攻防艺术”,另一个则是应用层&#x…

小程序集成腾讯智能地址服务:从地址清洗到结构化解析的实战避坑指南

小程序集成腾讯智能地址服务:从地址清洗到结构化解析的实战避坑指南

2026/7/16 23:00:54

1. 为什么需要智能地址服务?在小程序开发中,处理用户输入的地址信息是个常见但棘手的问题。用户填写的地址往往五花八门:有人写"北京市海淀区中关村大街",有人写"中关村大街(海淀区)"&…

AI内容检测技术解析:社交媒体长文超25%为AI生成

AI内容检测技术解析:社交媒体长文超25%为AI生成

2026/7/16 22:50:54

这次我们来看一个关于AI内容检测的重要研究。Pangram Labs最近发布了一份基于100多万条社交媒体帖子的分析报告,揭示了当前网络内容生态的严峻现实:超过四分之一的长文内容完全由AI生成,而LinkedIn成为AI内容泛滥的重灾区。这份研究通过Pangr…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/16 0:35:09

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/16 14:29:31

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/16 14:18:17

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

Python实现跨境电商商品图批量翻译教程

Python实现跨境电商商品图批量翻译教程

2026/7/16 0:09:31

一、问题引入做跨境电商的卖家朋友,你是否遇到过这样的困扰?每次上架新品到亚马逊、Shopee或Lazada等平台,都需要处理大量商品图片的多语言版本。比如上架200款衣服,每款需要翻译成英语、日语、韩语等5种语言,这意味着…

跨境电商多语言商品图翻译方案实现

跨境电商多语言商品图翻译方案实现

2026/7/16 0:09:31

一、问题引入对于做跨境电商的卖家来说,多语言商品图的制作一直是令人头疼的环节。当你准备在亚马逊、Shopee、Lazada等多个平台同步上架新品时,首先遇到的就是图片翻译问题。以一位做家居用品的卖家为例,他需要将200张商品图片中的英文文案全…

Windows系统文件d3dx9_36.dll丢失找不到问题解决

Windows系统文件d3dx9_36.dll丢失找不到问题解决

2026/7/16 0:09:31

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…