
(来源:华为计算)
CATLASS(CANN Templates for Linear Algebra Subroutines,昇腾算子模板库)通过模板封装降低了昇腾NPU上矩阵乘法类算子开发难度,但作为进阶算子编程组件,仍需开发者掌握一定的矩阵计算原理。为解决这一难题,现构建了一套完整的CATLASS Skills技能体系,通过标准化的工作流程,帮助开发者快速交付高质量、高性能的矩阵乘法类算子实现。
Skills支持的算子类别
算子类别概览
目前,CATLASS Skills已支持多种矩阵算子的开发,包括基础矩阵乘法、融合算子和量化算子三大类别,生成算子的性能可达原生接口的0.8~1.2倍 。这些算子是深度学习模型的核心计算组成部分,其性能直接影响模型的训练和推理效率。
基础矩阵乘法:
Matmul:通用矩阵乘法(支持FP16、BF16、FP32、INT8等数据类型)。
Grouped Matmul:分组矩阵乘法(支持Slice M、Slice K切分策略)。
融合算子:
Matmul + Bias:矩阵乘法与融合偏置。
Matmul + Add:矩阵乘法与融合加法。
Matmul + ReLU/GELU/Swish:矩阵乘法与融合激活函数。
量化算子:
Quant Matmul:量化矩阵乘法。
Grouped Matmul + Per-Token Dequant:分组矩阵乘法与融合Per-Token反量化。
Skills架构设计
整体架构
CATLASS Skills采用模块化设计,将算子开发流程分解为7个独立的技能模块。每个模块专注于特定的开发阶段,既可独立使用,也可以通过catlass-operator-dev skill串联成完整的开发流程。

各阶段Skills功能详解
阶段1:工程建立(ascendc-operator-project-init)
核心功能:自动初始化算子工程模板
阶段2:算子设计(catlass-operator-design)
核心功能:分析需求,生成包含数学公式、组件选型表格等完整设计文档
阶段3:代码生成(catlass-operator-code-gen)
核心功能:根据设计文档自动生成算子工程代码,包含host、kernel、torch接入源码
阶段4:编译调试(ascendc-operator-compile-debug)
核心功能:自动化编译、安装、运行测试,同时解决过程中遇到的问题
阶段5:文档生成(ascendc-operator-doc-gen,可选)
核心功能:自动生成算子相关文档,包含 产品支持情况、功能说明、计算公式、参数说明和调用示例
阶段6:精度验证(ascendc-operator-precision-eval)
核心功能:与参考实现进行精度比对,输出精度验证报告
阶段7:性能优化(catlass-operator-performance-optim,可选)
核心功能:根据用户需求,自动化性能调优,并输出性能测试报告
当前支持的优化策略:
TileShape配置:L1/L0层大小优化
DispatchPolicy调度策略:MmadAtlasA2Pingpong、MmadAtlasA2Preload等
Swizzle数据搬运策略:优化数据访问模式
Matmul算子开发实战案例
案例背景
矩阵乘法(Matmul)是深度学习中最核心的计算操作之一,广泛应用于全连接层、注意力机制、卷积运算等场景。本案例展示如何运用CATLASS Skills,实现Matmul算子从设计到部署的全流程开发。
开发流程概览
访问代码仓地址:https://gitcode.com/Ascend/agent-skills,下载源码仓,随后基于Agent输入对应提示词,即可全自动完成算子开发。
下面以Cursor + GLM-5为例进行功能演示。
关键阶段详解
阶段1:需求收集、工程建立
用户输入:
Agent开始确认算子名称、功能要点、CANN环境、创建工程并拉取三方组件。
阶段2:算子设计
Agent自动调用catlass-operator-design技能生成设计文档。

阶段3:代码生成
Agent自动调用catlass-operator-code-gen技能进行代码生成。
生成的host代码:

生成的kernel代码:
阶段4:编译调试
Agent自动调用ascendc-operator-compile-debug技能进行编译调试。
Agent发现代码中的问题并自动修复:

阶段5:文档生成
Agent自动调用ascendc-operator-doc-gen技能生成接口的使用文档。

阶段6:精度验证
Agent自动调用ascendc-operator-precision-eval技能进行精度测试。
生成pytest测试脚本:

基于pytest测试脚本扩展用例,进行泛化性的测试并输出精度报告。

阶段7:性能优化
用户可描述所需性能优化的Case。
Agent自动根据catlass-operator-performance-optim skill指令和CATLASS库上文档思考如何优化该类型的Case。
Agent通过修改tiling参数完成性能优化并测试性能数据,输出性能优化总结。
案例总结
通过使用CATLASS Skills,Matmul算子开发实现了以下目标:
指标
目标
实际情况
状态
精度验证
通过
100% 通过
✅ 完成
代码质量
优秀
✅ 完成
文档完整性
完整
✅ 完成
开发效率
高效
1小时完成
✅ 完成
同时提升了开发效率,传统方式需要3-5天完成的矩阵算子开发,使用CATLASS Skills后缩短至1小时,且代码质量有保障。
总结与展望
CATLASS Skills通过模块化的技能体系,将昇腾NPU上CATLASS算子开发的最佳实践固化为一套可复用的工作流程。从需求收集到性能优化,每个阶段都设有明确的输入输出、详细的参考文档和标准化的质量检查。
目前,CATLASS Skills的支持度可以满足大部分矩阵算子的开发需求,未来,将持续扩展支持Flash Attention、MLA等复杂算子。CATLASS Skills不仅是一套工具,更体现了标准化、自动化、高质量的开发理念。随着这套技能体系的不断完善,将有更多的开发者加入到昇腾NPU矩阵算子开发的行列中来,共同推动AI生态的繁荣发展。
开源代码仓地址:















