昇腾AI CANN训练营〔开源基础系列〕:从语法基础到算子实操,一站式构建 Ascend C 全链路编程能力

昇腾AI CANN训练营〔开源基础系列〕:从语法基础到算子实操,一站式构建 Ascend C 全链路编程能力

昇腾AI CANN训练营〔开源基础系列〕:从语法基础到算子实操,一站式构建 Ascend C 全链路编程能力

Ascend C 算子是什么

在这里插入图片描述
Ascend C 算子是基于 CANN 推出的支持 C/C++ 标准规范的编程语言 Ascend C 所开发的算子,编写的算子程序经编译器编译和运行时调度可在昇腾硬件上运行,助力开发者高效实现自定义创新算法;使用它开发自定义算子具有遵循 C/C++ 编程规范、自动并行调度获得最优执行性能、结构化核函数简化算子开发逻辑、CPU/NPU 孪生调试提升算子调试效率等优势。

Ascend C 编程模型

1、Ascend C 的核函数是算子在设备侧 AI Core 的执行入口,也是连接 CPU 与 NPU 的桥梁,编写核函数定义设备端计算逻辑,编译后可在昇腾硬件并行执行,是自定义算子的核心载体;采用 SPMD 模型,仅需写一份核函数代码,设备会自动分发到多 AI Core,各核心通过内置变量 block_idx 区分身份,独立处理数据分片,实现一份代码、多核心并行处理不同数据

2、核函数开发规则(需添加特定限定符,明确运行载体和类型)global:标识为可被主机端调用的设备函数aicore:明确在昇腾 AI Core 上执行(区别于 CUDA 的核函数)

3、参数与变量规则

入参类型:仅支持指针(需用 gm 标识指向全局内存,如gm float*)或 C/C++ 内置类型(如int32_t)

4、调用流程核函数如何被主机端触发(主机端通过特定语法调用核函数,需指定并行配置)blockDim:指定参与执行的 AI Core 数量l2ctrl:保留参数,暂设为 nullptrstream:任务队列( aclrtStream 类型),用于管理设备端任务的并行、串行执行

5、实践示例HelloWorld 核函数全流程核函数实现(设备侧逻辑)主机端调用(CPU 侧控制流程)

需配合 AscendCL(昇腾计算库)完成初始化、资源管理等步骤

Ascend C 硬件架构抽象与编程范式

Ascend C 基于硬件抽象架构,采用流水线式编程范式,将算子拆分为多个流水任务,通过 Queue 实现任务通信同步、Pipe 统一管理内存资源;其中 Vector 编程范式明确 CopyIn、Compute、CopyOut 三阶段流程,结合逻辑存储位置 TPosition 和张量对象 Global/LocalTensor 管理数据,并通过 Pipe、TBuf 分别完成常规与临时变量的内存分配回收,以此支撑算子在昇腾硬件上的高效开发执行基于硬件抽象架构屏蔽底层差异,采用流水线式编程范式,将算子拆分为流水任务并通过 Queue 实现任务通信同步,依托 Pipe 统一管理设备侧资源核心的 Vector 编程范式明确 CopyIn(数据搬入)、Compute(向量计算)、CopyOut(数据搬出)三阶段流程,结合 TPosition及GlobalTensor/LocalTensor实现精细化数据管理通过 Pipe 分配回收常规内存、TBuf 管理临时变量内存,保障内存高效利用,支撑算子在昇腾硬件上的高效开发与执行

Ascend C API 体系:基础与高层 API 的分层赋能

在这里插入图片描述
Ascend C 的 API 体系分为基础 API和高层 API,分别支撑底层功能灵活组合与上层算法快速落地的开发需求
基础 API:底层能力的灵活拼接
1、计算类 API:分为标量(Scalar 单元)、向量(Vector 单元)、矩阵(Cube 单元)三类,适配不同粒度的计算场景

2、数据搬运 API:以DataCopy为核心,实现Global Memory与Local Memory间的数据迁移

3、内存管理 API:通过AllocTensor/FreeTensor管理内存生命周期

4、任务同步 API:通过EnQue/DeQue实现任务间通信
高层 API:上层算法的高效封装
高层 API 封装了 Matmul、Softmax 等常用算法逻辑,借助 “对象化封装 + 流程化调用” 模式,将复杂算法逻辑转化为简洁的 API 调用,既减少了重复开发工作,又大幅提升了开发效率

基于 Kernel 直调工程的算子开发

核函数定义
用 global__ __aicore 限定符定义设备侧入口,调用算子类的初始化与处理函数
算子类实现
通过CopyIn(数据从 Global 搬入 Local)、Compute(向量加法)、CopyOut(结果搬出至 Global)三个流水任务实现逻辑,结合Queue做任务同步、Pipe做内存管理
init实现
KernelAdd 类的 Init 方法主要做两件事:通过 block_idx 给当前 AI Core 划分全局内存数据,把 xGM、yGM、zGM 绑定到当前核心的处理区域,实现多核并行;用 pipe 初始化输入输出队列的双缓冲内存,按 TILE_LENGTH 分配内存块,队列深度设为 BUFFER_NUM,支撑流水线并行
Process() 实现
KernelAdd 类的 Process () 方法通过循环调度 CopyIn、Compute、CopyOut 三个阶段,结合双缓冲实现流水线并行

流程中,CopyIn 将全局内存数据搬入本地并通过队列同步,Compute 执行向量加法并将结果入队,CopyOut 将结果搬回全局内存,借助双缓冲和流水线机制让数据搬运与计算并行,提升昇腾 AI Core 的 Vector 单元利用率
ddCustom算子的主机侧 main.cpp
CPU 模式逻辑(用于算法逻辑快速验证,不依赖昇腾硬件,直接在 CPU 上执行计算)NPU 模式主机侧逻辑(用于在昇腾 NPU 硬件上执行算子,充分利用硬件加速能力)
数据生成脚本gen_data.py
基于 NumPy 编写,用于生成 AddCustom 算子的输入数据和真值数据,为算子的功能验证提供标准化的输入与预期结果参考

实现逻辑:生成两个形状为(8, 2048)的 float16 随机输入数据input_x 和 input_y(数值范围 1-100)计算加法算子的真值数据 golden(即 input_x + input_y)将输入数据和真值数据以二进制格式分别保存到指定路径,供后续算子调用、验证时使用

用途

为 AddCustom 算子的开发、调试和测试提供一致的输入源与真值基准,确保算子计算结果的准确性
简单工程执行
在这里插入图片描述
Ascend C 算子的简易工程执行方式:将编译和执行命令封装到run.sh脚本中,可通过不同参数实现 CPU 和 NPU 模式下的算子运行调试CPU 模式:执行 bash run.sh -v Ascend910x -r cpu ,通过 md5 校验 output_z.bin 与 golden.bin 一致性验证执行成功;架构依赖 Host APP、CPU 调用库、算子 kernel 程序和 AscendC 类库NPU 模式:执行 bash run.sh -v Ascend910x -r npu,通过 md5 校验验证编译、执行成功;架构依赖 Host APP、AscendCL API 库及设备侧算子 kernel 程序、AscendC 类库,实现主机 - 设备交互与功能验证

Read more

万字长文:重点区域低空安全防御系统(反无人机)深度实战方案 | 从0到1构建立体安防体系(WORD)

万字长文:重点区域低空安全防御系统(反无人机)深度实战方案 | 从0到1构建立体安防体系(WORD)

摘要:随着低空经济爆发式增长,无人机"黑飞"已成为国家重点区域安防的重大威胁。本文基于真实政务项目案例,深度解析一套覆盖"探测-识别-定位-反制-溯源"全链条的低空安全防御系统建设方案。全文8000+字,涵盖TDOA无源定位、相控阵雷达、导航诱骗等核心技术,以及等保2.0合规、电磁频谱安全等实施细节,为安防系统集成商、智慧城市建设者提供保姆级技术参考。 一、项目背景与战略价值:低空经济背后的安全缺口 1.1 低空经济崛起的"双刃剑"效应 近年来,随着《"十四五"数字经济发展规划》的深入推进,低空经济已被纳入国家战略性新兴产业序列。无人机在物流配送、电力巡检、应急救援、城市测绘等领域的应用呈现爆发式增长。据统计,截至2025年初,我国民用无人机保有量已突破500万架,年飞行时长超过数千万小时。 然而,

大公博创DGB收官2026WDS沙特世界防务展 签约卡塔尔Dynasty Group和沙特DTI深化中东布局,全频段反无人机技术引发海外行业关注

利雅得,沙特阿拉伯 2 月12日–2026年沙特防务展圆满落幕,全球电磁空间安全解决方案领军企业、低空空域安全领域先锋大公博创DGB (DG.Broadtrum) 在本届展会上迎来多重突破:不仅携“全频段、全时域、全地域”要地安防综合解决方案及三款旗舰产品重磅亮相,凭借军工级技术实力成为低空安防领域的关注焦点,更在展会期间接连斩获重磅合作——2月10日与卡塔尔本土标杆企业Dynasty Group签署战略合作备忘录(MoU),2月12日展会收官之际,再与沙特本土先进无人机技术领军企业Drone Tech International(DTI)正式达成战略合作。凭借亮眼的技术展示与深度的本地化合作布局,大公博创DGB获得沙特本土及众多海外主流媒体的现场采访与高度关注,成为本届展会中中国高端安防技术出海的典型代表。此举标志着大公博创DGB在中东市场的布局实现跨越式深化,以“技术输出+本地化协同”的双轮驱动模式,持续为海湾国家防务自主建设与基础设施安全升级注入中国力量,也为中东海湾地区低空空域安全生态构建奠定了重要合作基础。 亮相沙特防务展:全频段反无人机技术成焦点,引全球媒体聚焦 在本届

Enterprise Architect 16 下载、安装与无限30天操作

Enterprise Architect 16 下载、安装与无限30天操作

文章目录 * Enterprise Architect 16 简介 * (一)支持多种建模语言和标准 * (二)强大的版本控制、协作和文档管理功能 * (三)增强的技术和用户体验 * (四)高级功能和扩展性 * 一,下载软件 * (一)官网 * (二)阿里云盘 * (三)百度网盘 * (四)迅雷 * 二,安装软件 * 三,无限30天设置 * (一)删除`fkey.dat`文件 * (二)删除注册表Kane文件夹 * (三)查看效果 Enterprise Architect 16 简介 Enterprise Architect 16是一款功能强大的企业级建模工具,它为企业和机构在系统设计、业务流程建模、数据建模以及软件开发等方面提供了全面的支持。以下是对Enterprise Architect 16的详细介绍:

2026软体机器人动作捕捉系统权威榜单:6大主流方案深度测评与选型指南

核心提示:软体机器人(Soft Robotics)作为新一代柔性自动化技术,其研发对动作捕捉系统提出了亚毫米级精度与非侵入式测量的双重挑战。本文基于真实技术参数与应用案例,客观评测6大主流方案,助您精准选型。 一、行业背景:为什么软体机器人需要专业动作捕捉? 软体机器人采用硅胶、气动肌肉等柔性材料,具有无限自由度和连续变形特性。与传统刚性机器人不同,其运动轨迹呈非线性、高弹性特点,传统编码器难以精准测量。 核心痛点: * 🎯 精度要求苛刻:软体手指抓取鸡蛋时,形变误差需控制在0.1mm以内,否则易碎或滑落 * 🌊 环境适应性差:水下软体机器人需抵抗水流干扰,常规视觉方案失效 * 🏥 非侵入式刚需:医疗手术机器人不能粘贴标记点,避免污染风险 二、2026年度6大动作捕捉系统深度评测 🥇 第一推荐:NOKOV度量动作捕捉系统(Mars系列 + Astra无标记点) 核心技术指标: 参数项Mars系列Astra无标记点定位精度亚毫米级 (典型精度 ±0.1mm,最高可达 ±0.03mm,各型号不同)≤0.1mm(厘米级)系统延迟极低延迟