当前位置: 首页 > news >正文

PyPTO Agent 实操:1天开发自定义融合算子

一、PyPTO Agent背景

在 Agent 技术日益普及的当下,为了提升开发体验,我们推出了基于智能体平台CANNBot与高性能编程框架PyPTOCANNBot PyPTO Agent。通过将最佳实践固化为 7 个标准化 Skill,并由 4 个专业 Agent 进行协同调度,成功构建了从需求分析到算子交付的端到端自动化闭环,旨在帮助开发者大幅降低开发门槛,快速完成高质量融合算子的开发与交付。

二、快速上手

环境要求

依赖

版本要求

昇腾硬件

Atlas A2 / A3 系列

CANN 工具链

≥ 8.0

Python

≥ 3.9

PyTorch + torch_npu

≥ 2.6

PyPTO Agent使用方式

git clone https://gitcode.com/cann/skills.gitcd skills/teams/pypto-op-orchestratorbash init.sh project opencode # OpenCode 用户(默认)bash init.sh project claude # Claude Code 用户

打开 opencode / claude code 后输入算子开发提示词即可:

简易示例提示词:

帮我开发一个 QAT Symmetric Per-Tensor 量化算子,支持 per-tensor 对称量化,FP16 输入,包含 forward 和 backward。

Agent 将自动依次执行:需求解析 → API 探索 → 方案设计 → Golden 生成 → Kernel 开发 → 精度验证 → 性能调优

三、核心架构与技能详解

整体架构

PyPTO Agent 采用"Agent 编排 + Skill 执行"的分层架构,将算子开发拆解为 7 个标准化阶段。每个阶段由专属 Skill 负责,4 个 Agent 按职责分工协作调度,既可串联执行完整流程,也可单独调用某个 Skill 完成特定任务。

PyPTO Agent 架构图

3.1 专家 Agent 团队

PyPTO Agent 基于CANNBot 平台构建,采用多智能体协同架构。团队由 4 位各司其职的虚拟专家组成,共同驱动算子开发的全生命周期。

Agent 角色

核心职责

关键能力

编排师pypto-op-orchestrator全流程总控

负责任务拆解、状态管理与上下文传递;通过状态持久化机制(.orchestrator_state.json)支持断点续跑与异常恢复。

分析师pypto-op-analyst设计与分析

负责需求理解、Golden 方案设计及精度分析;在隔离上下文中完成数学逻辑到计算图的转化。

开发者pypto-op-developer代码实现

负责 Kernel 源码生成、编译构建与调试;具备错误自动捕获、代码回退与局部重试能力。

调优师pypto-op-perf-tuner性能调优

负责性能 Profiling 与参数寻优;输出量化分析报告,指导 Tiling 与流水线策略迭代。

3.2 核心技能图谱

为了实现从需求到交付的自动化,我们将专家经验固化为7 项核心技能。这些技能按流水线串联,各阶段输入输出清晰,确保开发过程标准化。

核心流程介绍

四、QAT 算子开发实操案例

案例背景

QAT Symmetric Per-Tensor为例,展示融合算子从零到交付的全流程。

算子介绍

QAT(Quantization-Aware Training,量化感知训练)是一种在训练过程中模拟量化误差的技术,使模型能够适应低精度推理。该算子包含正向与反向两个子 Kernel:

  • Forward:对输入执行 scale → round → clamp → de-scale,模拟推理时的量化误差

  • Backward:基于 STE(Straight-Through Estimator)回传梯度,量化范围外梯度置零

关键阶段详解

用户输入

用户通过提示词描述算子开发需求,支持多轮对话进行需求澄清,或一次性输入完整规格。示例如下:

阶段1:需求理解

Agent 接收自然语言需求后,自动解析算子语义,提取 shape、dtype 约束与计算逻辑,生成结构化规格文档SPEC.md(含 ASCII 数据流图)。

阶段2:API 探索

检索 PyPTO API 库,完成公式到 API 的映射,输出可行性报告与 Tiling 建议。

阶段3:Golden 生成

基于 PyTorch 生成参考实现与测试数据集,作为精度验证基准。

阶段4:方案设计

Agent 首先基于SPEC.md进行测试用例设计,涵盖了典型场景和极端场景;随后基于测试需求分析算子特征,规划 Tiling 策略、Loop 结构与内存布局,产出设计文档。

阶段5:代码实现

自动生成 Kernel 源码与测试用例,编译通过后进入精度验证。

阶段6、7:精度调试与性能调优

精度通过则跳过精度调试阶段,进入性能调优

小结

完整执行流程如下:

结果分析

Forward

小算子方案:6 个独立 Op 串行执行,每步产生中间 Tensor 并落盘 Global Memory。

PyPTO 方案:融合为单个 Kernel,数据一次加载至片上 UB,全部中间结果就地复用,完全消除中间内存访问。

Backward

小算子方案:反向传播需多个独立算子串行执行,产生大量中间 Tensor。

PyPTO 方案:融合为单个 Kernel,仅需 3 次 Global Memory 访问(输入、权重、输出),显著降低带宽开销与 Kernel Launch 次数。

基于 PyPTO 框架,已完成多个关键融合算子的开发与交付,与 PyTorch 实现的 Golden 相比性能提升如下:

指标

QAT 对称正向

QAT 对称反向

QAT 非对称正向

QAT 非对称反向

mome_mla_prolog

sink_mome

当前性能

4.2×2.6×4.1×3.1×4.8×

五、总结与展望

依托 CANNBot 智能体平台,成功将PyPTO Agent通过 7 个标准化 Skill 的模块化编排,将昇腾 NPU 融合算子开发的专家经验沉淀为一套可复用的自动化工作流。从需求理解到性能调优,每个阶段都有明确的输入输出与质量标准,开发者只需提供自然语言描述即可驱动全流程。在 QAT 等实操案例中,开发效率得到显著提升,所有算子均通过严格的精度验证。

目前,PyPTO Agent 已支持多种融合算子的端到端开发。未来,我们将持续提升复杂算子的自动生成能力,增强对复杂控制流、动态 shape 等场景的支持,提升生成成功率与代码质量;同时引入 Profiling 驱动的自动调优能力,进一步释放硬件性能潜力。借助 CANNBot 平台的可扩展性,我们将持续演进 PyPTO Agent 的能力边界——我们期待与更多开发者一起,共同推动昇腾 AI 生态的繁荣发展。

我们诚挚欢迎社区开发者试用并参与共建:

  • PyPTO 代码仓:https://gitcode.com/cann/pypto

  • CANNBot Skills 仓:https://gitcode.com/cann/skills

  • 问题反馈:https://gitcode.com/cann/pypto/issues/create/choose

  • 贡献指南:欢迎提交 PR,贡献新 Skill、优化现有功能或分享实践经验

http://www.jsqmd.com/news/661969/

相关文章:

  • 2026年洗盐设备厂家推荐:寿光市鸿宇化工机械有限公司,螺旋式/搅拌式洗盐机及水洗盐设备等全系供应 - 品牌推荐官
  • 企业级vscode-drawio离线部署方案:安全高效的内网架构图解决方案
  • 【2026年最新600套毕设项目分享】微信小程序的南宁周边乡村游(30093)
  • Kandinsky-5.0-I2V-Lite-5s多场景落地指南:短视频运营、在线教育、数字营销三大方向
  • MATLAB圆形图可视化:3分钟掌握复杂网络关系分析终极指南
  • Cesium地图开发小技巧:快速实现经纬度网格线标注与美化
  • golang如何实现契约测试_golang契约测试实现方案
  • 革命性华硕笔记本性能调控工具GHelper:轻量高效,释放硬件潜能
  • 杭州六小龙第一股诞生:群核科技港股上市 市值超320亿港元 顺为与IDG资本加持
  • 2026年肉类滚揉设备厂家推荐:诸城市瑞恒食品机械厂,供应滚揉腌制机、鸡翅滚揉机等全系产品 - 品牌推荐官
  • 终极指南:在电脑上免费畅玩Switch游戏 - Ryujinx模拟器完全教程
  • 终极免费CAD软件本地化指南:30+语言界面快速切换全攻略
  • SQL如何对比当前记录与整体均值_窗口函数AVG的应用实践
  • 【2026年最新600套毕设项目分享】图书馆自习室座位预约管理微信小程序(30094)
  • 别再瞎试了!用Fluent模拟教室通风,这样设置边界条件才靠谱(附冬夏两季配置)
  • 2026年厦门附近桶装水配送/景田桶装水批发公司推荐:厦门水之露商贸有限公司,娃哈哈、景田等多品牌供应 - 品牌推荐官
  • 推荐一款CLAUDE CODE面板工具
  • 群核科技“三剑客“敲钟上市,IDG资本早期押注空间智能赛道
  • 经典排序算法解析:归并与堆排序实战
  • SITS2026发布在即:3大颠覆性AGI演进路径、5项硬性技术阈值与2026落地倒计时
  • 保姆级教程:手把手教你为Exynos 4412开发板移植U-Boot(附完整源码修改清单)
  • c++怎么将程序的私有配置信息加密保存为带头校验的加密二进制dat【详解】
  • Spring AI记忆持久化避坑指南:MySQL表设计优化与性能调优
  • 前端工程:CI/CD 的最佳实践
  • Multisim仿真:从74LS47译码器到数码管动态数显
  • Pixel Aurora Engine 构建数字人素材库:快速生成多样化人物肖像与表情
  • 有赞转港主板上市 白鸦:我终于意识到敲钟是很有意义的事
  • 系统恢复利器Rescuezilla:从数据灾难中拯救你的电脑
  • 重庆力冠衡器:大安地磅批发厂家 - LYL仔仔
  • 终极QtScrcpy键鼠映射配置指南:从零到精通的完整教程