一天一个昇腾 Agent-Skills 小技巧:1 小时内完成 Ascend C Vector 算子开发
背景介绍
Ascend C 作为昇腾推出的高性能算子开发语言,凭借其接近硬件的编程模型和卓越的性能表现,成为了昇腾算子开发的关键技术支撑。为了降低在昇腾上开发 Ascend C 算子的门槛,提高开发效率和代码质量,我们构建了一套全面的 Ascend C Skills 技能体系,该体系涵盖了算子开发的全流程,助力开发者迅速交付高质量、高性能的算子实现。
Ascend C Skills 支持的生成算子类别与生成结果
Ascend C Skills 现已基本支持 Vector 类算子,当前已完成测试的算子清单如下:
| 算子类别 | 算子名 | 精度通过率 | 性能情况(x 倍手写) |
|---|---|---|---|
| 激活函数类 | Gelu | 100% | 1.2 |
| GeluGrad | 100% | 0.8 | |
| Relu | 100% | 0.9 | |
| SoftmaxV2 | 100% | 0.5 | |
| Sigmoid | 100% | 1 | |
| 正则类 | Layernorm | 100% | 1 |
| Rmsnorm | 100% | 1 | |
| 数学计算 | Acosh | 100% | 1 |
| Atanh | 100% | 1 | |
| 池化类 | AvgPool3D | 100% | 0.3 |
| VV 融合 | MRope | 100% | 0.5 |
Ascend C Skills 架构设计
整体架构
Ascend C Skills 采用模块化设计,将算子开发流程细分为环境配置、工程初始化、需求设计、代码生成、编译调试、精度验证、性能评估、文档生成和性能优化 9 个技能模块。每个模块专注于特定的开发阶段,既可独立使用,也可串联成完整的开发流程。

各阶段 Skills 功能详解
阶段 1:ascendc-operator-project-init(工程初始化)
核心功能:初始化 Ascend C 算子工程目录结构。
阶段 2:ascendc-operator-design(需求设计)
核心功能:生成适用于昇腾的 Ascend C 算子需求文档,用于指导后续的代码生成。
阶段 3:ascendc-operator-testcase-gen(测试用例生成)
核心功能:根据设计文档生成测试用例设计文档。
阶段 4:ascendc-operator-code-gen(代码生成)
核心功能:根据设计文档生成高性能 Ascend C kernel 代码。
阶段 5:ascendc-operator-compile-debug(编译调试)
核心功能:编译安装 Ascend C 算子并执行精度测试。
阶段 6:ascendc-operator-precision-eval(精度验证)
核心功能:对已编译安装的算子生成全面的精度测试用例集(≥30 例),运行并生成精度验证报告。
阶段 7:ascendc-operator-performance-eval(性能评估)
核心功能:Benchmark 算子性能,与 PyTorch 原生 / small-op-composed baseline 对比。
阶段 8:ascendc-operator-doc-gen(文档生成)
核心功能:为 Ascend C 算子生成 README.md 和 torchAPI 文档,描述算子接口及功能。
阶段 9:ascendc-operator-performance-optim(性能优化)
核心功能:排查并优化 Ascend C 算子性能,形成排查 → 修改 → 验证闭环。
LayerNorm 算子开发实战案例
案例背景
LayerNorm 是深度学习中广泛使用的归一化算子之一,在 Transformer、BERT 等模型频繁使用。本案例将展示如何使用 Ascend C Skills 完成 LayerNorm 算子的全流程开发。
开发流程概览
访问代码仓地址:https://gitcode.com/Ascend/agent-skills,下载源码仓。随后,基于 Agent 输入对应的提示词,即可全自动完成算子开发。
下面以 Cursor + Opus4.6 为例进行功能演示。
关键阶段详解
阶段 1:开发环境检测、需求收集
用户输入需求后,Agent 开始检测开发环境:

阶段 2:工程初始化
使用 ascendc-operator-project-init 技能创建工程:

阶段 3:需求设计
使用 ascendc-operator-design 技能确认需求并生成设计文档:


阶段 4:测试用例生成
使用 ascendc-operator-testcase-gen 技能生成测试用例:

阶段 5:代码生成与检视
使用 ascendc-operator-code-gen 技能生成 kernel 代码:

阶段 6:编译调试
使用 ascendc-operator-compile-debug 技能编译安装:

阶段 7:文档生成
使用 ascendc-operator-doc-gen 技能生成标准化接口文档:

阶段 8:精度验证
使用 ascendc-operator-precision-eval 技能进行精度验证:


阶段 9:性能评估
使用 ascendc-operator-performance-eval 技能进行性能评估:

总结与展望
Ascend C Skills 通过模块化的技能体系,将昇腾上 Ascend C 算子开发的最佳实践固化为一套可复用的工作流程。从环境配置到性能优化,每个阶段都设有明确的输入输出、详细的参考文档和标准化的质量检查。
目前,Ascend C Skills 已支持多种算子的开发,覆盖 Vector 算子类别,且精度验证均已通过。未来,我们将继续扩展算子支持范围,优化性能表现,为昇腾生态建设贡献力量。Ascend C Skills 不仅是一套工具,更体现了标准化、自动化、高质量的开发理念。随着这套技能体系的不断完善,将有越来越多的开发者加入到算子开发的行列,共同推动 AI 芯片生态的繁荣发展。
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐

所有评论(0)