ops-blas 是 CANN 算子库中专注于高性能线性代数计算与轻量化 GEMM 调用的算子库,针对昇腾 AI 处理器深度优化,首批 17 个算子已全量开源就绪。
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 隐藏访存延迟。
| 类别 | 算子 | 说明 | 操作 |
|---|---|---|---|
| 融合计算 | blasLtMatmul | 融合矩阵乘法,支持 Epilogue(Bias + ReLU) | |
| 复数运算 | cdot | 复数向量共轭点积 | |
| 复数运算 | csrot | Givens 旋转 | |
| 复数运算 | cgerc | 复数秩-1 更新 | |
| 复数运算 | cgemv_batched | 批量复数矩阵-向量乘法 | |
| 复数运算 | complex_mat_dot | 复数逐元素乘法 | |
| 复数运算 | colwise_mul | 列方向乘法 | |
| 实数向量 | sasum | L1 范数 | |
| 实数向量 | snrm2 | L2 范数 | |
| 实数向量 | scopy | 向量拷贝 | |
| 实数向量 | iamax | 最大绝对值索引 | |
| 实数矩阵 | sger | 秩-1 更新 | |
| 实数矩阵 | strsv | 三角矩阵求解(支持原地更新) | |
| 特殊格式 | spmv | 对称压缩矩阵-向量乘法 | |
| 特殊格式 | symv | 对称压缩矩阵运算 | |
| 特殊格式 | tbmv | 三角带状矩阵运算 | |
| 特殊格式 | tpmv | 三角压缩矩阵运算 |
深圳河套学院陈子忠教授团队已成为 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 三角求解。