ops-tensor 是 CANN (Compute Architecture for Neural Networks)算子库中提供张量类计算的基础算子库,采用模块化设计,支持灵活的算子开发和管理。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
action上线适配 Co-authored-by: cui_jiahao<cuijiahao5@h-partners.com> # message auto-generated for no-merge-commit merge: !226 merge master into master action上线适配 Created-by: cui_jiahao Commit-by: cui_jiahao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!226 | 21 天前 | |
【blaze】 资料优化 + 非include目录(src/scripts/lib/cmake)和文件删除 Co-authored-by: 林旭<linxu5@huawei.com> # message auto-generated for no-merge-commit merge: !97 merge fix-doc-0627 into master 【blaze】 资料优化 + 非include目录(src/scripts/lib/cmake)和文件删除 Created-by: LINxu233 Commit-by: 林旭 Merged-by: cann-robot Description: ## 描述 1、blaze资料优化,补充原理图和tensor layout等架构介绍 2、修改最外层README.md 精简内容, UT\ST详细步骤待补充 3、去掉无用的文档(Add相关的编译打包构建) 4、修正部分描述不准确的文档 ## 关联的Issue https://gitcode.com/cann/ops-tensor/issues/56 https://gitcode.com/cann/ops-tensor/issues/83 ## 测试 1、蓝区CI通过 2、黄区CI编包正常,验证正常 ## 文档更新 已更新 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!97 | 1 个月前 | |
新增fusedmatmul可缩放的add场景kernel和后处理 Co-authored-by: szhexin<shangzhexin@huawei.com> # message auto-generated for no-merge-commit merge: !236 merge fmm_muon into master 新增fusedmatmul可缩放的add场景kernel和后处理 Created-by: szhexin Commit-by: szhexin Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。-->在 FusedMatMul 的 Add 融合场景中,当前接口仅支持将矩阵乘结果与 Add 输入直接相加,无法对两路输入分别进行缩放。为满足 alpha、beta 系数参与计算的需求,需要增加 torch.ops.cann_ops_nn.fused_matmul 接口,新增可选的 alpha 和 beta Tensor 输入,新增add的epilogue模板和kernel模板。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。-->https://gitcode.com/cann/ops-tensor/issues/186 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。-->本地测试通过冒烟通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/API/epilogue/README.md docs/API/epilogue/block/block_epilogue_fmm_with_scale_add.md docs/API/gemm/kernel/README.md docs/API/gemm/kernel/kernel_matmul_with_scale_add.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!236 | 8 天前 | |
移除 transpose_batch_mat_mul 示例中不再支持的 bias(偏置)功能 Co-authored-by: huangkejie1647<huangkejie3@huawei.com> # message auto-generated for no-merge-commit merge: !275 merge fix_issue187 into master 移除 transpose_batch_mat_mul 示例中不再支持的 bias(偏置)功能 Created-by: huangkejie1647 Commit-by: huangkejie1647 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 该 PR(fix issue 187)主要是移除 transpose_batch_mat_mul 示例中不再支持的 bias(偏置)功能,涉及数据生成、结果校验、配置文件与主机端运行代码的全链路清理:删除 bias 相关的参数解析、bias 文件读取与设备端内存分配/释放,以及带 bias 的 golden 数据生成逻辑(torch.baddbmm 路径),使示例回归纯矩阵乘流程。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> [#187](https://gitcode.com/cann/ops-tensor/issues/187) <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 本地验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> examples/transpose_batch_mat_mul/transpose_batch_mat_mul_basic/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [.] 其他,请描述: See merge request: cann/ops-tensor!275 | 8 天前 | |
fix: infer scale nz from layout | 6 天前 | |
新增fusedmatmul可缩放的add场景kernel和后处理 Co-authored-by: szhexin<shangzhexin@huawei.com> # message auto-generated for no-merge-commit merge: !236 merge fmm_muon into master 新增fusedmatmul可缩放的add场景kernel和后处理 Created-by: szhexin Commit-by: szhexin Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。-->在 FusedMatMul 的 Add 融合场景中,当前接口仅支持将矩阵乘结果与 Add 输入直接相加,无法对两路输入分别进行缩放。为满足 alpha、beta 系数参与计算的需求,需要增加 torch.ops.cann_ops_nn.fused_matmul 接口,新增可选的 alpha 和 beta Tensor 输入,新增add的epilogue模板和kernel模板。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。-->https://gitcode.com/cann/ops-tensor/issues/186 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。-->本地测试通过冒烟通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/API/epilogue/README.md docs/API/epilogue/block/block_epilogue_fmm_with_scale_add.md docs/API/gemm/kernel/README.md docs/API/gemm/kernel/kernel_matmul_with_scale_add.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!236 | 8 天前 | |
add pre_commit check Co-authored-by: l00569907<linxu5@huawei.com> # message auto-generated for no-merge-commit merge: !197 merge add_precommit into master add pre_commit check Created-by: LINxu233 Commit-by: l00569907 Merged-by: cann-robot Description: ## 描述 增加pre_commit检查代码提交格式和规范, 修改.clang-format和ops-nn项目相同。 ## 关联的Issue https://gitcode.com/cann/ops-tensor/issues/126 ## 测试 提交代码若格式有问题会提示修改格式,需要本地安装pre-commit,后续每次commit会自动检测格式是否合规。 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!197 | 1 个月前 | |
QuantBatchMatmul伪量化MXA8W4算子迁移blaze框架 Co-authored-by: sunduiyang<sunduiyang@huawei.com> # message auto-generated for no-merge-commit merge: !187 merge qbmm_mxa8w4_migration_by_blaze into master QuantBatchMatmul伪量化MXA8W4算子迁移blaze框架 Created-by: sunduiyang Commit-by: sunduiyang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> QuantBatchMatmul伪量化MXA8W4算子从cmct迁移到blaze,主要新增内容如下: - 新增MatmulWithWeightQuantMx的policy tag; - 新增KernelMatmulMixWeightPrologue的kernel,支持weight的前处理的kernel; - 新增BlockSchedulerMatmulSwatWithTailSplit的scheduler,支持SWAT分核策略; - 新增BlockMmadWeightPrologueMx的block mmad,支持weight通过AIV反量化的MXA8W4伪量化数据流。 Continuation of #178 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [增加伪量化mm场景支持](https://gitcode.com/cann/ops-tensor/issues/97) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 相关组件在ops-nn仓中使用,quant_batch_matmul_v4 mxa8w4数据流将使用本PR新增组件,代码迁移PR请看 [ops-nn PR#7921](https://gitcode.com/cann/ops-nn/pull/7921),已通过白盒验证、UT验证、泛化验证和二级冒烟。 本PR新增了UT及样例程序: - tests/ut/op_kernel/weight_quant_batch_matmul_mx - examples/quant_batch_matmul_mx/weight_quant_batch_matmul_mx ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 新增组件说明文档: - docs/API/gemm/block/block_mmad_weight_prologue_mx.md - docs/API/gemm/block/block_scheduler_matmul_swat_with_tail_split.md - docs/API/gemm/kernel/kernel_matmul_mix_weight_prologue.md - docs/API/gemm/tile/tile_weight_quant_mx_preprocess.md 更新组件文档索引: - docs/API/README.md - docs/API/gemm/block/README.md - docs/API/gemm/tile/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!187 | 1 个月前 | |
include asc-devkit/feature/tensor_api_from_9.0.0 as submodule Co-authored-by: liuyufan<liuyufan9@huawei.com> # message auto-generated for no-merge-commit merge: !145 merge submodule into master include asc-devkit/feature/tensor_api_from_9.0.0 as submodule Created-by: liuyufan0725 Commit-by: liuyufan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 引入ascendc特性分支作为ops-tensor的submodule ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联Issue [#94](https://gitcode.com/cann/ops-tensor/issues/94) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 编包正常,算子功能正常 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!145 | 1 个月前 | |
gemm blaze模板 TT量化场景支持StreamK性能优化 Co-authored-by: guiruoyu<guiruoyu@h-partners.com> # message auto-generated for no-merge-commit merge: !142 merge streamK_TT into master gemm blaze模板 TT量化场景支持StreamK性能优化 Created-by: chen-shuai Commit-by: guiruoyu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 在 Blaze TensorApi 中新增 QuantBatchMatmulV3 非 per-tensor 量化场景的 StreamK Device 实现,与 ops-nn Host Tiling 配合,在 M/N 较小、K 较大的场景下通过切分 K 维提高核利用率。 配套 Host PR: https://gitcode.com/cann/ops-nn/pull/7449 ### 整体流程 Device 侧按照以下模块组织: text Policy -> Kernel -> BlockScheduler -> BlockMmad -> BlockEpilogue - Policy 选择 QBMM per-tensor StreamK 调度类型。 - Kernel 负责组装各模块,并完成 AIC/AIV 分流和同步。 - BlockScheduler 复用已有 StreamK block 映射和 K 维切分逻辑。 - BlockMmad 在 AIC 上完成各个 K 分片的矩阵计算。 - BlockEpilogue 在 AIV 上归约 workspace partial,并在 UB 上完成 Vector 反量化和后处理。 ### Policy 新增 KernelQbmmPertensorMultiBlockStreamK 调度类型,并为 MatmulWithScaleFixpipeQuant 增加可配置的 ScheduleType。 通过独立 ScheduleType 将普通 Fixpipe QBMM、MX StreamK 和 per-tensor StreamK 的模板实例区分开,防止 Kernel、MMAD 和 Epilogue 发生错误组合。 ### Kernel 新增 kernel_qbmm_pertensor_streamk.h,实现 QBMM per-tensor StreamK 对应的 GemmUniversal 特化。 Kernel 主要完成: - 组装 BlockMmad、BlockEpilogue 和 BlockScheduler。 - AIC 根据 Scheduler 返回的 block 信息执行 DP tile 或 StreamK K 分片。 - DP block 通过 Fixpipe 反量化并直接写入最终输出。 - StreamK block 将未反量化的 raw accumulator partial 写入 workspace。 - AIC 完成后通过 CrossCore 同步通知 AIV。 - AIV 等待 AIC 完成后,执行 workspace reduce 和 Vector 后处理。 ### BlockScheduler 直接复用已有 BlockSchedulerMatmulStreamK,不修改原有 StreamK 切块策略。 Scheduler 负责: - M/N tile 划分。 - DP block 和 StreamK block 映射。 - K 分片编号和当前分片长度计算。 - 尾块 StreamK 调度。 ### BlockMmad 扩展 block_mmad_a8w8_fixpipe_quant.h,使已有 QBMM BlockMmad 支持 per-tensor StreamK ScheduleType。 主要修改包括: - 根据当前 StreamK 分片长度更新 K 循环。 - DP block 保留原有 Fixpipe 反量化输出路径。 - StreamK block 不进行 Fixpipe 反量化,将 raw partial 写入 workspace。 - 根据量化组合决定 bias 在 MMAD 中累加,还是交给 AIV Epilogue 处理。 - 同一个输出 tile 的 bias 只在第一个 K 分片中累加,避免重复累加。 int32 bias,以及 FP8 整数编码 scale 对应的 fp32 bias,在 MMAD 累加域处理。 ### BlockEpilogue 新增 block_epilogue_qbmm_pertensor_streamk.h,实现专用 AIV 后处理: 1. 从 workspace 读取同一输出 tile 的多个 K 分片 partial。 2. 在 UB 中完成 split-K reduce。 3. 应用 X2 per-tensor scale。 4. 根据量化模式应用可选 X1 per-tensor scale。 5. 累加需要在反量化后处理的 bias。 6. 转换为 fp16、bf16 或 fp32,并写回最终输出。 反量化全部在 UB 上由 Vector 完成,不使用 Fixpipe 随路反量化处理 StreamK partial。 ### Scale 和 Bias 顺序 支持两类 bias 处理顺序: text 反量化前 bias: (raw accumulator + bias) * scale text 反量化后 bias: raw accumulator * x2Scale * optional x1Scale + bias 对于反量化后 bias,Host Tiling 仅允许全 StreamK 调度,确保所有输出 tile 都经过 AIV Epilogue。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-tensor/issues/136 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 已有用例的精度和性能 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/API/README.md docs/API/epilogue/README.md docs/API/epilogue/block/block_epilogue_qbmm_pertensor_streamk.md docs/API/gemm/block/README.md docs/API/gemm/block/block_mmad_a8w8_fixpipe_quant.md docs/API/gemm/kernel/README.md docs/API/gemm/kernel/kernel_qbmm_pertensor_streamk.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!142 | 26 天前 | |
【blaze】 资料优化 + 非include目录(src/scripts/lib/cmake)和文件删除 Co-authored-by: 林旭<linxu5@huawei.com> # message auto-generated for no-merge-commit merge: !97 merge fix-doc-0627 into master 【blaze】 资料优化 + 非include目录(src/scripts/lib/cmake)和文件删除 Created-by: LINxu233 Commit-by: 林旭 Merged-by: cann-robot Description: ## 描述 1、blaze资料优化,补充原理图和tensor layout等架构介绍 2、修改最外层README.md 精简内容, UT\ST详细步骤待补充 3、去掉无用的文档(Add相关的编译打包构建) 4、修正部分描述不准确的文档 ## 关联的Issue https://gitcode.com/cann/ops-tensor/issues/56 https://gitcode.com/cann/ops-tensor/issues/83 ## 测试 1、蓝区CI通过 2、黄区CI编包正常,验证正常 ## 文档更新 已更新 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!97 | 1 个月前 | |
修改编码标准 Co-authored-by: sxb154714<shangxiaobo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !261 merge update_doc into master 修改编码标准 Created-by: sxb154714 Commit-by: sxb154714 Merged-by: cann-robot Description: ## 描述 修订 CODING_CONVENTIONS.md 中文件命名规范,使编码标准与仓库当前实际文件命名保持一致。具体改动如下: ### 1. "任务类型"字段重命名为"类型(可选)" - 原"任务类型"字段重命名为"类型",并标注为**可选字段**(默认不填表示 cube) - 消除"任务类型"语义歧义,统一为模板类型描述 ### 2. 类型取值重新定义  ### 3. 命名规范速查表同步更新 底部命名风格表格中的文件名示例同步更新为 层级_算子_类型_策略 格式。 ## 关联的Issue #179 ## 测试 - 纯文档变更,不涉及代码逻辑,无需编译/精度测试 - CI 流水线全量通过(Compile_Ascend_X86 / ARM / ubuntu24、SCA、UT_Test、codecheck_codestyle 均 SUCCESS) ## 文档更新 本次变更即为文档更新,修订文件为 CODING_CONVENTIONS.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!261 | 13 天前 | |
kernel ut support coverage Co-authored-by: zhangtianrong<zhangtianrong@h-partners.com> # message auto-generated for no-merge-commit merge: !270 merge kernel_ut_cov into master kernel ut support coverage Created-by: zhangtianrong Commit-by: zhangtianrong Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为tensor仓kernel ut补充覆盖率选项--cov,可分析当前kernel ut已覆盖的语句/函数/文件 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-tensor/issues/163 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!270 | 8 天前 | |
添加项目配置文件 Co-authored-by: liulinxiang<liulinxiang1@huawei.com> # message auto-generated for no-merge-commit merge: !11 merge docs/md-format-normalize into master 添加项目配置文件 Created-by: liulinxiang Commit-by: liulinxiang Merged-by: songkai111 Description: ## 描述 从 ops-rand 移植标准项目配置文件: - .clang-format - 代码格式化配置 - LICENSE - CANN 许可证 - OAT.xml - 开源合规检查配置 - Third_Party_Open_Source_Software_List.yaml - 第三方开源软件列表 - classify_rule.yaml - 分类规则 - install_deps.sh - 依赖安装脚本 - requirements.txt - Python 依赖 ## 关联的Issue 暂无 ## 测试 配置文件语法检查通过 ## 文档更新 无需更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:项目配置 See merge request: cann/ops-tensor!11 | 5 个月前 | |
sync newest tensor_api Co-authored-by: zhangtianrong<zhangtianrong@h-partners.com> # message auto-generated for no-merge-commit merge: !31 merge tensor_api into master sync newest tensor_api Created-by: zhangtianrong Commit-by: zhangtianrong Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 同步最新版本tensor_api至ops-tensor ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!31 | 4 个月前 | |
QuantBatchMatmul伪量化MXA8W4算子迁移blaze框架 Co-authored-by: sunduiyang<sunduiyang@huawei.com> # message auto-generated for no-merge-commit merge: !187 merge qbmm_mxa8w4_migration_by_blaze into master QuantBatchMatmul伪量化MXA8W4算子迁移blaze框架 Created-by: sunduiyang Commit-by: sunduiyang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> QuantBatchMatmul伪量化MXA8W4算子从cmct迁移到blaze,主要新增内容如下: - 新增MatmulWithWeightQuantMx的policy tag; - 新增KernelMatmulMixWeightPrologue的kernel,支持weight的前处理的kernel; - 新增BlockSchedulerMatmulSwatWithTailSplit的scheduler,支持SWAT分核策略; - 新增BlockMmadWeightPrologueMx的block mmad,支持weight通过AIV反量化的MXA8W4伪量化数据流。 Continuation of #178 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [增加伪量化mm场景支持](https://gitcode.com/cann/ops-tensor/issues/97) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 相关组件在ops-nn仓中使用,quant_batch_matmul_v4 mxa8w4数据流将使用本PR新增组件,代码迁移PR请看 [ops-nn PR#7921](https://gitcode.com/cann/ops-nn/pull/7921),已通过白盒验证、UT验证、泛化验证和二级冒烟。 本PR新增了UT及样例程序: - tests/ut/op_kernel/weight_quant_batch_matmul_mx - examples/quant_batch_matmul_mx/weight_quant_batch_matmul_mx ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 新增组件说明文档: - docs/API/gemm/block/block_mmad_weight_prologue_mx.md - docs/API/gemm/block/block_scheduler_matmul_swat_with_tail_split.md - docs/API/gemm/kernel/kernel_matmul_mix_weight_prologue.md - docs/API/gemm/tile/tile_weight_quant_mx_preprocess.md 更新组件文档索引: - docs/API/README.md - docs/API/gemm/block/README.md - docs/API/gemm/tile/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!187 | 1 个月前 | |
【blaze】 资料优化 + 非include目录(src/scripts/lib/cmake)和文件删除 Co-authored-by: 林旭<linxu5@huawei.com> # message auto-generated for no-merge-commit merge: !97 merge fix-doc-0627 into master 【blaze】 资料优化 + 非include目录(src/scripts/lib/cmake)和文件删除 Created-by: LINxu233 Commit-by: 林旭 Merged-by: cann-robot Description: ## 描述 1、blaze资料优化,补充原理图和tensor layout等架构介绍 2、修改最外层README.md 精简内容, UT\ST详细步骤待补充 3、去掉无用的文档(Add相关的编译打包构建) 4、修正部分描述不准确的文档 ## 关联的Issue https://gitcode.com/cann/ops-tensor/issues/56 https://gitcode.com/cann/ops-tensor/issues/83 ## 测试 1、蓝区CI通过 2、黄区CI编包正常,验证正常 ## 文档更新 已更新 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!97 | 1 个月前 | |
kernel ut support coverage Co-authored-by: zhangtianrong<zhangtianrong@h-partners.com> # message auto-generated for no-merge-commit merge: !270 merge kernel_ut_cov into master kernel ut support coverage Created-by: zhangtianrong Commit-by: zhangtianrong Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为tensor仓kernel ut补充覆盖率选项--cov,可分析当前kernel ut已覆盖的语句/函数/文件 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-tensor/issues/163 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!270 | 8 天前 | |
blaze 代码重构 -- 编程规范和Epilogue命名空间整改 Co-authored-by: 林旭<linxu5@huawei.com> # message auto-generated for no-merge-commit merge: !115 merge fix-code-0702 into master blaze 代码重构 -- 编程规范和Epilogue命名空间整改 Created-by: LINxu233 Commit-by: 林旭 Merged-by: cann-robot Description: ## 描述 1、模板参数和常量重命名整改,按照最新blaze编码规范 2、blockScheduler和blockMMad整改,删减无用成员变量。 3、blockScheduler GetBlockShape整改,tileXXX -> blockXXX 4、Epilogue namespace整改,后续nn切换到Epilogue::Block::,然后下线Gemm::Block的代码 ## 关联的Issue https://gitcode.com/cann/ops-tensor/issues/71 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 mm/bmm 全模板 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!115 | 1 个月前 | |
添加项目配置文件 Co-authored-by: liulinxiang<liulinxiang1@huawei.com> # message auto-generated for no-merge-commit merge: !11 merge docs/md-format-normalize into master 添加项目配置文件 Created-by: liulinxiang Commit-by: liulinxiang Merged-by: songkai111 Description: ## 描述 从 ops-rand 移植标准项目配置文件: - .clang-format - 代码格式化配置 - LICENSE - CANN 许可证 - OAT.xml - 开源合规检查配置 - Third_Party_Open_Source_Software_List.yaml - 第三方开源软件列表 - classify_rule.yaml - 分类规则 - install_deps.sh - 依赖安装脚本 - requirements.txt - Python 依赖 ## 关联的Issue 暂无 ## 测试 配置文件语法检查通过 ## 文档更新 无需更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:项目配置 See merge request: cann/ops-tensor!11 | 5 个月前 | |
添加项目配置文件 Co-authored-by: liulinxiang<liulinxiang1@huawei.com> # message auto-generated for no-merge-commit merge: !11 merge docs/md-format-normalize into master 添加项目配置文件 Created-by: liulinxiang Commit-by: liulinxiang Merged-by: songkai111 Description: ## 描述 从 ops-rand 移植标准项目配置文件: - .clang-format - 代码格式化配置 - LICENSE - CANN 许可证 - OAT.xml - 开源合规检查配置 - Third_Party_Open_Source_Software_List.yaml - 第三方开源软件列表 - classify_rule.yaml - 分类规则 - install_deps.sh - 依赖安装脚本 - requirements.txt - Python 依赖 ## 关联的Issue 暂无 ## 测试 配置文件语法检查通过 ## 文档更新 无需更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:项目配置 See merge request: cann/ops-tensor!11 | 5 个月前 | |
kernel ut support coverage Co-authored-by: zhangtianrong<zhangtianrong@h-partners.com> # message auto-generated for no-merge-commit merge: !270 merge kernel_ut_cov into master kernel ut support coverage Created-by: zhangtianrong Commit-by: zhangtianrong Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为tensor仓kernel ut补充覆盖率选项--cov,可分析当前kernel ut已覆盖的语句/函数/文件 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-tensor/issues/163 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!270 | 8 天前 | |
update classify_rule.yaml Co-authored-by: zhangtianrong<zhangtianrong@h-partners.com> # message auto-generated for no-merge-commit merge: !265 merge classify_rule into master update classify_rule.yaml Created-by: zhangtianrong Commit-by: zhangtianrong Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1、更新classify_rule,分发责任田 当前未完成命名整改,通过文件进行分发,待完成后会根据文件命名进行关键词识别进行责任田分发 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-tensor/issues/180 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:责任田分发 See merge request: cann/ops-tensor!265 | 12 天前 | |
添加项目配置文件 Co-authored-by: liulinxiang<liulinxiang1@huawei.com> # message auto-generated for no-merge-commit merge: !11 merge docs/md-format-normalize into master 添加项目配置文件 Created-by: liulinxiang Commit-by: liulinxiang Merged-by: songkai111 Description: ## 描述 从 ops-rand 移植标准项目配置文件: - .clang-format - 代码格式化配置 - LICENSE - CANN 许可证 - OAT.xml - 开源合规检查配置 - Third_Party_Open_Source_Software_List.yaml - 第三方开源软件列表 - classify_rule.yaml - 分类规则 - install_deps.sh - 依赖安装脚本 - requirements.txt - Python 依赖 ## 关联的Issue 暂无 ## 测试 配置文件语法检查通过 ## 文档更新 无需更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:项目配置 See merge request: cann/ops-tensor!11 | 5 个月前 | |
feat: 添加打包安装支持 Co-authored-by: liulinxiang<liulinxiang1@huawei.com> # message auto-generated for no-merge-commit merge: !6 merge support_pkg into master feat: 添加打包安装支持 Created-by: liulinxiang Commit-by: liulinxiang Merged-by: songkai111 Description: feat: 添加打包安装支持 See merge request: cann/ops-tensor!6 | 5 个月前 | |
blaze 代码重构 -- 编程规范和Epilogue命名空间整改 Co-authored-by: 林旭<linxu5@huawei.com> # message auto-generated for no-merge-commit merge: !115 merge fix-code-0702 into master blaze 代码重构 -- 编程规范和Epilogue命名空间整改 Created-by: LINxu233 Commit-by: 林旭 Merged-by: cann-robot Description: ## 描述 1、模板参数和常量重命名整改,按照最新blaze编码规范 2、blockScheduler和blockMMad整改,删减无用成员变量。 3、blockScheduler GetBlockShape整改,tileXXX -> blockXXX 4、Epilogue namespace整改,后续nn切换到Epilogue::Block::,然后下线Gemm::Block的代码 ## 关联的Issue https://gitcode.com/cann/ops-tensor/issues/71 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 mm/bmm 全模板 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!115 | 1 个月前 |
ops-tensor
🔥Latest News
- [2026/06] 支持
GroupedMatmul算子。 - [2026/05] 支持
MatMul、BatchMatMul算子。 - [2026/04]
Blaze为算子开发提供基础线性代数加速能力,支持QuantBatchMatMul。
🚀概述
ops-tensor 内置了 Blaze(Basic Linear Algebra optimiZed Engine)基础线性代数加速引擎,构建 NPU 高性能 CUBE 底座, 为算子开发提供 CUBE 公共能力。
🔍目录结构
ops-tensor 代码目录结构如下:
ops-tensor/
├── cmake/ # 项目工程编译目录
├── CMakeLists.txt # 编译配置文件
├── docs/ # 项目文档介绍
│ └ API/ # API文档
├── examples/ # Samples 测试
├── include/ # 项目公共头文件
│ ├── blaze/ # Blaze 高性能线性代数引擎
│ └ tensor_api/ # Tensor 抽象(Layout/Shape/Coord)
├── tests/ # UT/ST 测试工程目录
│ └ ut/op_kernel/ # Kernel UT 测试
├── build.sh # 编译脚本
├── README.md # 项目说明
├── QUICKSTART.md # 快速入门
├── QUICK_OP_INVOCATION.md # 算子开发指南
🔧支持的算子
| 算子名称 | 描述 | 状态 |
|---|---|---|
| MatMul | 矩阵乘运算 | ✅ 已实现 |
| BatchMatMul | 批量矩阵乘运算 | ✅ 已实现 |
| QuantBatchMatMul | 量化批量矩阵乘运算 | ✅ 已实现 |
| GroupedMatmul | 分组矩阵乘运算 | ✅ 已实现 |
💻SoC 支持
Ascend 950PR / Ascend 950DT
⚡️快速入门
若您希望快速体验项目,请访问快速入门获取简易教程,包括环境搭建、编译执行、本地验证等操作。
- 环境准备:安装软件包之前,需要完成搭建基础环境,包括第三方依赖等;基础环境搭建后需要完成社区版CANN软件包安装、环境变量配置等。
- 源码下载:本项目源码下载。
- 编译执行:环境准备好后,可对源码修改编译生成可执行的文件。
- Kernel UT 测试:基于项目根目录的 build.sh 脚本,可执行 Kernel UT 用例,快速验证编译能力。
- Samples 测试:基于项目根目录的 build.sh 脚本,可执行 Samples 用例,快速验证功能。
📖文档介绍
| 文档 | 说明 |
|---|---|
| 快速入门 | 快速体验项目的简易教程。 |
| 算子开发指南 | 使用 ops-tensor 实现算子开发的教程。 |
| Blaze 模块 | Blaze 高性能线性代数引擎介绍。 |
| API 文档 | API 详细说明。 |