CANN ops-tensor Blaze引擎

📅 2026/7/7 21:25:23 👁️ 阅读次数 📝 编程学习
CANN ops-tensor Blaze引擎

Blaze

【免费下载链接】ops-tensorops-tensor 是 CANN (Compute Architecture for Neural Networks)算子库中提供张量类计算的基础算子库,采用模块化设计,支持灵活的算子开发和管理。项目地址: https://gitcode.com/cann/ops-tensor

BlazeBasicLinearAlgebraOptimizedEngine)是一套面向昇腾 NPU 的高性能线性代数加速引擎,为矩阵乘类算子的 Kernel 端实现提供分层、可组合的计算组件,header-only即可接入使用。

定位与边界

  • 聚焦 Kernel 端:Blaze 只负责矩阵乘类算子的 Kernel 端计算组件(数据搬运、MMAD、调度等),不涉及 aclnn 入口与 Host 端逻辑。
  • 职责分工:算子的 Tiling 计算、内存规划、解决方案注册等 Host 端工作由各算子自身的<op>_solution.cpp负责,Blaze 与之配合而非替代。
  • 依赖关系:Blaze 依赖include/tensor_api/提供的张量结构抽象(Layout / Shape / Coord 等),并直接对接 AscendC Kernel 接口。
  • 目标算子:服务于使用到矩阵乘计算的相关算子,包括 Matmul、GroupedMatmul、MC2 等。

设计理念

  • 分层抽象:从 Kernel(完整内核)到 Block(基本块计算)再到 Tile(细粒度搬运/计算指令),逐层下沉,关注点分离。
  • 策略驱动:通过DispatchPolicy将算法变体(如全载 / 非全载、量化模式、是否带 scale 等)作为类型参数派发到不同的 Block 实现,编译期完成最优实现的选择。
  • 类型安全的组合:A/B/C/Bias 的 dtype 与 Layout(NDExt / DNExt / NZ / ZN 等)作为类型参数透传,编译期生成最优代码路径。
  • 充分利用 Cube 架构:直接对接 L1 / L0A / L0B / L0C 的存储层级与 MMAD 指令,结合 double-buffer、ND2NZ 自动补零等机制压榨硬件性能。

模块组成

物理结构如下(各子目录下的具体文件随算法扩展而增减,下面仅给出代表性示例):

blaze/ ├── kernel/ # Kernel 层:完整算子内核入口 (示例:kernel_qbmm_mx.h) ├── block/ # Block 层:Block 级矩阵乘抽象与调度 (示例:block_mmad_mx.h、block_scheduler_qbmm.h) ├── tile/ # Tile 层:细粒度搬运与计算原语 (示例:tile_mmad_mx.h、copy_scale_l1_to_l0a.h) ├── epilogue/ # Epilogue 层:后处理策略 (示例:block_epilogue_empty.h) ├── policy/ # Dispatch Policy:派发策略定义 (示例:dispatch_policy.h) └── utils/ # 通用工具与常量 (示例:common_utils.h、layout_utils.h)

各层职责(自上而下):

子目录命名空间职责
kernel/Blaze::Gemm::Kernel完整算子内核入口,组合 Block + Epilogue + Scheduler 形成可启动的 Kernel
block/Blaze::Gemm::BlockBlock 级 Mmad 抽象及其针对不同 Policy 的实现,以及 Block 调度器
epilogue/Blaze::Gemm::Block后处理策略,可按需扩展 Bias / 激活 / 反量化等
tile/Blaze::Gemm::Tile/AscendC::TeTile 级原语:MMAD trait、L1↔L0 搬运、K 方向补零等
policy/Blaze::Gemm::派发策略定义,控制全载模式、量化模式等行为
utils/Blaze::Gemm::通用工具与常量:CeilDiv、Layout 推导、量化模式常量等

【免费下载链接】ops-tensorops-tensor 是 CANN (Compute Architecture for Neural Networks)算子库中提供张量类计算的基础算子库,采用模块化设计,支持灵活的算子开发和管理。项目地址: https://gitcode.com/cann/ops-tensor

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考