
在 Agent 技术日益普及的当下,为了提升开发体验,我们推出了基于智能体平台 CANNBot 与高性能编程框架 PyPTO 的 CANNBot PyPTO Agent。通过将**实践固化为 7 个标准化 Skill,并由 4 个专业 Agent 进行协同调度,成功构建了从需求分析到算子交付的端到端自动化闭环,旨在帮助开发者大幅降低开发门槛,快速完成高质量融合算子的开发与交付。
依赖
版本要求
昇腾硬件
Atlas A2 / A3 系列
CANN 工具链
≥ 8.0
Python
≥ 3.9
PyTorch + torch_npu
≥ 2.6
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 架构图
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 与流水线策略迭代。
为了实现从需求到交付的自动化,我们将专家经验固化为 7 项核心技能。这些技能按流水线串联,各阶段输入输出清晰,确保开发过程标准化。

核心流程介绍
以 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× 6×
依托 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、优化现有功能或分享实践经验

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/270842.html