共建面向昇腾的高性能算子生态

本页面集中展示 CANN 社区的算子开源资源与参与入口:可从 ops-blas、ops-sparse 获取实现和开发参考,使用 CANNBot 辅助开发,通过 CANNBench 验证正确性与性能,并参与社区悬赏任务,将高校教学与科研成果贡献到真实开源项目中。

一条完整的算子创新路径

从查找开源实现到完成开发、性能评测和社区贡献,为师生参与 CANN 算子项目提供连续、清晰的实践路径。

01

发现

浏览社区算子仓与高校开源成果,找到可复用的接口、实现和实践案例。

02

开发

借助 CANNBot 与标准化工程流程完成算子生成、排障、修复和优化。

03

评测

通过 CANNBench 在真实昇腾 NPU 上验证正确性、性能和优化效果。

04

贡献

认领社区悬赏任务,提交成果、参与评审,让实践进入开源生态。

CANN 社区线性代数算子仓

ops-blas 与 ops-sparse 分别覆盖稠密线性代数和稀疏矩阵计算,仓库中提供接口、源码、测试及贡献指南,可直接用于课程实践、科研验证和算子开发。

ops-blas 算子能力展示

以高校分队参与建设的 ops-blas 为例,展示融合计算、复数运算、特殊格式矩阵及多核流水线等典型优化方向。

融合矩阵乘法

blasLtMatmul 支持 Epilogue 融合后处理(Bias + ReLU),单算子内完成矩阵乘、Bias 加法与激活,无需中间结果落盘。

复数向量化运算

cdot cgemv_batched csrot 等复数算子,采用 GatherMask、虚实分离计算与 Ping-Pong 双缓冲,消除标量循环开销。

特殊格式矩阵直通

spmv symv tbmv tpmv 原生支持压缩存储格式,直接操作 Packed/Banded 格式,节省 50% 内存。

实数向量运算

sasum snrm2 scopy iamax 等,支持 L1/L2 范数、拷贝与最大绝对值索引,多核并行归约。

实数矩阵运算

sger 秩-1 更新基础算子,strsv 三角矩阵求解(支持原地更新),支撑 QR 分解等高级算法。

多核流水线并行

GM-UB 分块搬运策略适配昇腾存储层次,归约类算子支持多核并行计算局部结果,Ping-Pong 隐藏访存延迟。

从计算痛点到算子优化

传统痛点

Epilogue 融合矩阵乘与后处理分步执行
复数向量化标量循环分离实虚部
压缩格式需展开为稠密矩阵
流水线并行搬运与计算串行

ops-blas 方案

Epilogue 融合单算子完成 Matmul+Bias+ReLU
复数向量化vreducev2 / GatherMask 消除标量循环
压缩格式直接操作 Packed/Banded 格式
流水线并行Ping-Pong 双缓冲隐藏访存延迟

效果

Epilogue 融合减少片上内存写回
复数向量化消除标量循环
压缩格式节省 50% 内存
流水线并行隐藏访存延迟

从写出算子到证明算子

CANNBot 为算子开发和优化提供智能辅助,CANNBench 在真实昇腾 NPU 上完成正确性与性能评测。两项工具共同连接开发与验证,让算子成果不仅能够实现,也能够量化比较和持续优化。

智能助手
CANNBot

面向 CANN 开发的多智能体助手

面向 CANN 开发的智能助手,通过可复用 Skills 覆盖 Ascend C、PyPTO、TileLang 等开发流程,支持代码生成、问题排查、闭环修复和性能调优。

01代码生成
02自主排障
03闭环修复
04端到端调优
查看 GitCode 仓库
评测平台
CANNBench

让算子性能可评、可比、可追溯

面向昇腾算子的公开评测平台。参赛实现需通过正确性校验,并在真实昇腾 NPU 上完成性能测试;成绩、日志和评测产物均可追溯。

01任务规格
02提交实现
03NPU 运行
04榜单对比
进入 CANNBench

从实践成果进入源码实现

这里集中展示高校分队参与建设的 ops-blas 算子成果。点击“查看”可直接进入对应源码目录,了解实现方式、复用已有能力或继续参与优化。

类别算子说明操作
融合计算blasLtMatmul融合矩阵乘法,支持 Epilogue(Bias + ReLU)查看
复数运算cdot复数向量共轭点积查看
复数运算csrotGivens 旋转查看
复数运算cgerc复数秩-1 更新查看
复数运算cgemv_batched批量复数矩阵-向量乘法查看
复数运算complex_mat_dot复数逐元素乘法查看
复数运算cdgmm复数矩阵按行或按列缩放查看
实数向量sasumL1 范数查看
实数向量snrm2L2 范数查看
实数向量scopy向量拷贝查看
实数向量iamax最大绝对值索引查看
实数矩阵sger秩-1 更新查看
实数矩阵strsv三角矩阵求解(支持原地更新)查看
特殊格式spmv对称压缩矩阵-向量乘法查看
特殊格式symv对称矩阵-向量乘法查看
特殊格式tbmv三角带状矩阵运算查看
特殊格式tpmv三角压缩矩阵运算查看

把学习成果变成开源贡献

完成学习、开发和评测后,可以进一步参与 CANN 社区悬赏任务,在真实需求中积累实践成果并参与社区共建。

COMMUNITY BOUNTY
CANN 社区悬赏任务

参与社区任务,把算子能力变成真实贡献

进入官方活动页了解最新任务要求、认领方式、提交规范与激励规则,在实战中参与 CANN 开源生态建设。

01 选择任务02 参与开发03 提交成果04 社区评审
查看悬赏任务

从联合开发走向持续共建

深圳河套学院陈教授团队已成为 ops-blas 的 maintainer,已贡献 6 个算子(spmv、tpmv、tbmv、symv、strsv、sger),填补了特殊格式矩阵支持和基础实数矩阵运算方面的重要空白,并计划全年新增 53 个算子。

支持硬件与数据类型

支持 Atlas A2/A3 训练与推理系列,数据类型覆盖 float16 / float32(实数与复数),blasLtMatmul 计算累加采用 float32 确保数值稳定性。

典型应用场景

深度学习框架底层 — Transformer 训练推理、LoRA 微调,blasLtMatmul 融合 Bias+ReLU,sasum/snrm2 高效范数计算。

信号处理与量子计算 — 雷达信号处理、量子态演化模拟,cdot 共轭点积、cgemv_batched 批量复数变换。

科学工程计算 — 有限元分析、计算流体力学,spmv/symv 对称压缩矩阵运算,strsv 三角求解。