logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

F1赛车的诞生:从模型子图到终极Mega-Kernel的极限优化之旅

在CANN训练营的这段旅程中,我仿佛经历了一场从学徒到工匠的蜕变。我学会了倾听硬件的低语,学会了为数据流铺设最优路径,甚至学会了指挥一支由数百个AI Core组成的交响乐团。我自信满满地将这些技艺应用到模型中的每一个算子上,将它们逐一打磨成了闪亮的、高性能的零件。

文章图片
#人工智能
CANN开发者炼成之路:从“胶水代码”到“炼金术”——我的第一个高性能融合算子诞生记

在CANN训练营的征途上,我们一路打怪升级,从掌握CPU与NPU的思维差异,到精通Tiling的排兵布阵,再到手持Profiler这把利器洞察性能的蛛丝马迹。我曾一度认为,只要将模型中的每一个算子都优化到极致,就能触及性能的“天花板”。

文章图片
#人工智能
Ascend C算子开发心得:告别CPU思维,拥抱Cube核心的并行计算之美

参加2025昇腾CANN训练营,对我而言,不只是一次学习,更是一场思维的“格式化”。作为一名习惯了在CPU上用for循环解决一切问题的开发者,我曾以为AI算子开发不过是换个平台写代码。然而,当我第一个算子的性能数字出来时,我被深深刺痛了——我用着最先进的NPU,却写出了比CPU还慢的代码。这篇心得,就是记录我如何从“CPU思维”的牢笼中挣脱,真正理解并拥抱昇腾Cube核心并行计算之美的过程。

文章图片
#c语言#人工智能#开发语言
CANN码力全开特辑:不只是切分——我的Tiling策略“进化史”与性能调优实录

在完成上一篇关于“告别CPU思维”的心得总结后,我满怀信心地投入到了一个更复杂的算子开发任务中——实现一个高性能的矩阵乘法(MatMul)。我熟练地运用了Ascend C的API,逻辑严谨,编译一次通过,功能验证完美无误。然而,当我用性能分析工具(Profiler)查看结果时,一盆冷水从头浇到脚:算子的执行时间长得离谱,GFLOPS(每秒十亿次浮点运算)低得可怜。我的代码是“正确”的,但它距离“高

文章图片
#服务器#运维
指挥家的权杖:掌控Ascend C多核同步与负载均衡的艺术

我在CANN昇腾C语言领域的探索之旅,充满了持续的顿悟。我学会了并行思考,学会了用Tiling排兵布阵,学会了像大师级铁匠一样融合算子。我曾一度以为,自己已经驯服了多核并行这头猛兽。我的策略很简单,也自认为很有效:将问题分解成相等的几份,每一份指派给NPU众多的AI Core中的一个,然后让它们自由驰骋。对许多问题而言,这套方法效果卓著。Profiler性能分析器上,AI Core矩阵整齐划一地启

文章图片
#c语言#负载均衡#开发语言
深入解析 PTO-ISA:CANN 架构下的算力基石与指令集范式

这意味着,一条简单的 PTO-ISA 算术指令,在硬件层面可能触发数千次并行的乘加运算,极大地降低了指令解码的带宽压力,让控制流不再成为计算流的瓶颈。通过特定的指令编排,可以在 Cube 进行矩阵乘法的同时,Vector 单元正在处理上一轮数据的 Bias Add 或 Quantization,从而实现算力单元的全负荷运转。CANN 架构的算力核心在于其专用的矩阵计算单元(Cube Unit)和向

#c语言#开发语言
深度解码 CANN GE:计算图编译与执行引擎的架构逻辑

在人工智能计算堆栈中,扮演着“指挥官”的关键角色。它连接了上层的深度学习框架(如 TensorFlow, PyTorch)与底层的 NPU 硬件资源。作为 CANN 的核心组件,GE 负责将上层定义的计算图进行一系列复杂的图优化、算子融合、内存规划和流分配,最终生成可在 AI 处理器上高效执行的离线模型或实时任务流。

#人工智能
CANN 图引擎(GE)深度解析:计算图的优化、算子调度与硬件资源的静态分配

图引擎(GE)是 CANN 软件栈的“编译器大脑”,它通过深度集成ops-nn的高性能算子、自动应用融合和布局优化,并精确管理 Tiling 策略,将高层模型的描述转化为硬件可执行的最优指令序列。GE 的优化能力直接决定了模型在 NPU 上的最终性能表现。

#c语言#开发语言
极致互联:深入解析 CANN SHMEM 的 PGAS 通信架构与性能原语

在超大规模分布式深度学习训练中,节点间数据交换的效率是决定模型扩展性的关键瓶颈。SHMEM 库作为 CANN 计算平台的核心通信基础,通过引入分区全局地址空间(PGAS)模型和对底层硬件的直接控制,实现了 PE-to-PE 的零拷贝、微秒级延迟通信。它为从模型并行到数据并行的高级通信原语提供了最底层的加速通道,是支撑万亿级参数模型高效训练的基石。

#java#网络#服务器
算子融合的艺术:基于 CANN ops-nn 构建高性能 Flash Attention 级内核

我们需要定义一个 C++ 类来管理内存张量(Tensor)和通信管道(Pipe)。public:// 初始化全局内存地址// 初始化流水线与队列// 双缓冲// 核心:初始化用于 Cube 和 Vector 计算的临时 Bufferprivate:TPipe pipe;// 中间结果存储。

#c语言#开发语言
    共 25 条
  • 1
  • 2
  • 3
  • 请选择