本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
编译任务机器规格调整以及冒烟脚本调整 Co-authored-by: chenyajie<chenyajie6@huawei.com> # message auto-generated for no-merge-commit merge: !8787 merge master into master 编译任务机器规格调整以及冒烟脚本调整 Created-by: yajie_caroline Commit-by: chenyajie Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8787 | 14 天前 | |
rename: MicroAPI namespace to Reg for arch35 kernels | 10 天前 | |
Revert "AntiquantAddMulMatMul图融合迁移" Co-authored-by: zhangquanxin<zhangquanxin7@h-partners.com> # message auto-generated for no-merge-commit merge: !9240 merge revert_graph into master Revert "AntiquantAddMulMatMul图融合迁移" Created-by: zhangquanxin Commit-by: zhangquanxin Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 为回滚(Revert)变更,撤销此前提交的 "AntiquantAddMulMatMul图融合迁移"。核心改动是删除 AntiQuantMatMulFusionPass 图融合 pass 的实现、头文件及其单元测试,恢复为未迁移前的状态:即不再将 AscendAntiQuant(可选 Add、Mul)与 MatMul/BatchMatMul 系列算子融合为 WeightQuantBatchMatmulV2,也不再在编译期通过常量折叠计算 fp16 的 antiquant_scale/antiquant_offset。同时回退 cmake/symbol.cmake 中与该迁移配套加入的构建目标依赖。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> issue https://gitcode.com/cann/ops-nn/issues/5178 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 线上ut ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9240 | 11 天前 | |
feat: 新增BNTrainingUpdateGrad算子(Ascend 950PR) Co-authored-by: justsheldon<taoxudong@huawei.com> # message auto-generated for no-merge-commit merge: !9153 merge BNTrainingUpdateGrad into master feat: 新增BNTrainingUpdateGrad算子(Ascend 950PR) Created-by: justsheldon Commit-by: justsheldon Merged-by: cann-robot Description: ## 描述 新增BNTrainingUpdateGrad自定义算子,用于批归一化训练反向的update阶段。给定上游梯度grads、前向输入x及逐通道统计量batch_mean/batch_variance,在batch与空间维上做逐通道归约,输出仿射参数scale/offset的梯度diff_scale/diff_offset。 ### 改动内容 - 新增算子目录 norm/bn_training_update_grad/,包含完整实现: - **Proto注册**:从 op_nn_proto_extend.h 迁移至独立 bn_training_update_grad_proto.h,注册体与canndev built-in逐字一致 - **Op Host**:def注册(ascend950 vendor config)、infershape(diff_scale/diff_offset shape/dtype同batch_mean)、tiling(channel维主切分,UB反推cLenCap/sliceR/rowsPerTile) - **Op Kernel(arch35)**:AscendC kernel实现,fp16/bf16/fp32三二进制;快慢双路(cLenCap==1为快路:1D连续段+Kahan补偿累加;cLenCap>1为慢路:2D tile+位置归约) - **Framework**:TF plugin注册(AutoMappingFn + ImplyType::TVM) - **Config**:ascend950 binary.json(float16/bfloat16/float32三个bin,ND格式,FormatAgnostic) - **Tests**:tiling单元测试 + golden验证脚本 - **Examples**:图模式调用样例(两组shape/epsilon用例) - 从 common/inc/op_graph/op_nn_proto_extend.h 移除旧BNTrainingUpdateGrad proto定义(42行),迁移至独立proto文件 - 在 docs/zh/op_list.md 添加算子列表条目 ### 支持情况 - 硬件平台:Ascend 950PR/Ascend 950DT - 数据类型:grads/x支持FLOAT16/FLOAT32/BFLOAT16(三者同型),batch_mean/batch_variance/diff_scale/diff_offset恒为FLOAT32 - 数据格式:ND - 属性:epsilon(可选float,缺省0.0001) ## 关联的Issue - #5134 ## 测试 - tiling单元测试(test_bn_training_update_grad_tiling.cpp) - golden验证脚本(tests/assets/golden.py) - 图模式调用示例(examples/arch35/test_geir_bn_training_update_grad.cpp) ## 文档更新 - 新增 norm/bn_training_update_grad/README.md(含产品支持情况、功能说明、参数说明、约束说明、调用说明) - 更新 docs/zh/op_list.md 添加算子列表条目 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9153 | 11 天前 | |
[CANNBot]新增NPUAllocFloatStatus算子 Co-authored-by: qq_52056150<24171214023@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !8782 merge add_npu_alloc_float_status into master [CANNBot]新增NPUAllocFloatStatus算子 Created-by: wkkk0528 Commit-by: qq_52056150 Merged-by: cann-robot Description: ## 描述 NPUAllocFloatStatus算子支持Ascend950 ### 算子功能 NPUAllocFloatStatus 用于分配并初始化浮点异常状态张量。算子接收一个可选的输入张量(仅用于形状推导),输出一个固定长度为8的float32张量,所有元素初始化为零值。该算子是 NPUFloatStatus 类算子的基础组件,通常与 NPUClearFloatStatus 配合使用,用于管理 NPU 浮点运算的异常状态。 ### 实现方式 - **架构**: Ascend950 (arch35) SIMT kernel - **Kernel 实现**: 单核 Scalar 模式,使用 SetValue 逐元素将零值写入 GM(绕过 UB,规避 DYN/BIN 首字节污染),完成后执行 DataCacheCleanAndInvalid 保证 GM 数据一致性 - **Tiling**: arch35 专用 Tiling,固定输出 8 个 float32 元素,单核无切分 - **Shape/Dtype 推导**: 输出 shape 固定为 [8],dtype 为 float32 - **REG_OP**: NPUAllocFloatStatus 原型注册,支持图模式调用 ## 关联的issue https://gitcode.com/cann/ops-math/issues/2677 ## 测试 ### TTK 测试结果 - 测试轮次: 第1轮 - 测试环境: Ascend950PR_957c (8 devices), CANN 9.2.0, TTK 3.0.0 - 第1轮结果: 编译错误(TQuePosition 标识符问题),已修复为 SetValue 直写 GM 方案 - 当前代码版本已通过本地 CI 编译验证 ### 本地 CI 预检结果 | 阶段 | 结果 | 说明 | |------|------|------| | Code Review | PASS | CR01-CR07 全部通过,2项WARN已修复(魔鬼数字提取为常量) | | Compile (single) | PASS | 单算子编译成功 | | Compile (A5) | PASS | A5 包编译成功 | | Package Verify | PASS | 2个.run包验证通过 | | CodeCheck pre-commit | PASS | clang-format/ruff/codespell/OAT 全部通过 | | UT ophost | PASS | op_host 单元测试通过 | | Example/Smoke | SKIPPED | 依赖 UT 全通过 | ### 交付件清单 - op_host: def.cpp, infershape.cpp, tiling_arch35.cpp, simplified_key.ini - op_kernel: arch35 kernel (npu_alloc_float_status.h, tiling_data.h, tiling_key.h, apt.cpp) - op_graph: proto.h, graph_infer.cpp - tests: golden.py, UT (op_api/op_host) - examples: aclnn + geir 示例 - docs: README.md ## 文档更新 - 新增 docs/zh/op_list.md 中 NPUAllocFloatStatus 条目 - 新增算子 README.md 和 aclnn API 文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述 ## AI/Agent 生成声明 代码来源: - [ ] 纯人工手写 - [ ] AI 辅助编写 - [x] AI 完全生成 人工审查:已完成 测试验证:已通过 合规检查:已完成 See merge request: cann/ops-nn!8782 | 15 天前 | |
【BUG修复反向卷积DW】950动态图SAME类型padding=-1透传适配 Co-authored-by: wishercy<zhaoyang56@huawei.com> # message auto-generated for no-merge-commit merge: !9039 merge bug_ge_same into master 【BUG修复反向卷积DW】950动态图SAME类型padding=-1透传适配 Created-by: wishercy Commit-by: wishercy Merged-by: cann-robot Description: ## 描述 Ascend950,动态图padding=SAME类型时,传入padding=-1时,dw算子校验入参不合法报错 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5161 ## 测试 执行动态图脚本设置padding type为SAME,调用到反卷积dw算子即可 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9039 | 11 天前 | |
feat: 新增BNTrainingUpdateGrad算子(Ascend 950PR) Co-authored-by: justsheldon<taoxudong@huawei.com> # message auto-generated for no-merge-commit merge: !9153 merge BNTrainingUpdateGrad into master feat: 新增BNTrainingUpdateGrad算子(Ascend 950PR) Created-by: justsheldon Commit-by: justsheldon Merged-by: cann-robot Description: ## 描述 新增BNTrainingUpdateGrad自定义算子,用于批归一化训练反向的update阶段。给定上游梯度grads、前向输入x及逐通道统计量batch_mean/batch_variance,在batch与空间维上做逐通道归约,输出仿射参数scale/offset的梯度diff_scale/diff_offset。 ### 改动内容 - 新增算子目录 norm/bn_training_update_grad/,包含完整实现: - **Proto注册**:从 op_nn_proto_extend.h 迁移至独立 bn_training_update_grad_proto.h,注册体与canndev built-in逐字一致 - **Op Host**:def注册(ascend950 vendor config)、infershape(diff_scale/diff_offset shape/dtype同batch_mean)、tiling(channel维主切分,UB反推cLenCap/sliceR/rowsPerTile) - **Op Kernel(arch35)**:AscendC kernel实现,fp16/bf16/fp32三二进制;快慢双路(cLenCap==1为快路:1D连续段+Kahan补偿累加;cLenCap>1为慢路:2D tile+位置归约) - **Framework**:TF plugin注册(AutoMappingFn + ImplyType::TVM) - **Config**:ascend950 binary.json(float16/bfloat16/float32三个bin,ND格式,FormatAgnostic) - **Tests**:tiling单元测试 + golden验证脚本 - **Examples**:图模式调用样例(两组shape/epsilon用例) - 从 common/inc/op_graph/op_nn_proto_extend.h 移除旧BNTrainingUpdateGrad proto定义(42行),迁移至独立proto文件 - 在 docs/zh/op_list.md 添加算子列表条目 ### 支持情况 - 硬件平台:Ascend 950PR/Ascend 950DT - 数据类型:grads/x支持FLOAT16/FLOAT32/BFLOAT16(三者同型),batch_mean/batch_variance/diff_scale/diff_offset恒为FLOAT32 - 数据格式:ND - 属性:epsilon(可选float,缺省0.0001) ## 关联的Issue - #5134 ## 测试 - tiling单元测试(test_bn_training_update_grad_tiling.cpp) - golden验证脚本(tests/assets/golden.py) - 图模式调用示例(examples/arch35/test_geir_bn_training_update_grad.cpp) ## 文档更新 - 新增 norm/bn_training_update_grad/README.md(含产品支持情况、功能说明、参数说明、约束说明、调用说明) - 更新 docs/zh/op_list.md 添加算子列表条目 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9153 | 11 天前 | |
fix TorchNPU Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !7243 merge master into master fix TorchNPU Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 ① torch_npu名称合一TorchNPU ②《acl API》手册更名修改 ③ link修改commerical为community ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/3951 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7243 | 1 个月前 | |
rename: MicroAPI namespace to Reg for arch35 kernels | 10 天前 | |
rename: MicroAPI namespace to Reg for arch35 kernels | 10 天前 | |
rename: MicroAPI namespace to Reg for arch35 kernels | 10 天前 | |
rename: MicroAPI namespace to Reg for arch35 kernels | 10 天前 | |
fix(op_graph): 30 个算子原型头补 OPS_PROTO_DEF 隔离宏 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !9218 merge fix/proto-isolation-macro into master fix(op_graph): 30 个算子原型头补 OPS_PROTO_DEF 隔离宏 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 **改动原因** op_graph/*_proto.h 中的 REG_OP 会被 scripts/util/merge_proto.py 合并进 ops_proto_nn.h/.cpp,再编成内置 op_proto 库(cmake/gen_ops_info.cmake 的 merge_graph_headers → cmake/symbol.cmake 的 gen_opgraph_symbol)。当同名算子在 canndev 侧的遗留原型头(nn_norm_ops.h、reduce_ops.h、ops_proto_legacy.h 等)也有 REG_OP 注册时,两份定义进入同一编译单元会重复定义。 仓库既有范式是在 REG_OP 外层加条件编译隔离宏,merge_proto.py 的匹配式会把该宏一并带入合并产物。本仓已有 activation/relu6_d、optim/sgd、norm/in_training_reduce_v2、vfusion/normalize_bbox 等先例,但本批 30 个算子的原型头遗漏了该保护。检视意见整改。 **改动方法** 对 30 个算子的 op_graph/*_proto.h,在 REG_OP 外层补 #ifndef/#define OPS_PROTO_DEF_<OPTYPE> … #endif: c #ifndef OPS_PROTO_DEF_DEEPNORM #define OPS_PROTO_DEF_DEEPNORM REG_OP(DeepNorm) ... .OP_END_FACTORY_REG(DeepNorm) #endif // OPS_PROTO_DEF_DEEPNORM 宏名取 OPS_PROTO_DEF_ + 算子名大写去下划线,与发布包 opp/built-in/op_graph/inc 中已有 967 个同类隔离宏的拼法一致。位置严格贴在 REG_OP 前、OP_END_FACTORY_REG 后一行——merge_proto.py 的正则要求 guard 与 REG_OP 相邻,位置写偏宏会被丢弃。 **涉及算子(30 个)** ApplyAdagrad、BatchNormExt2、BN3DTrainingUpdate、BNInfer、BNTrainingUpdateV2、BNTrainingUpdateV3、ChamferDistance、ClippedSwiglu、CosineEmbeddingLoss、DeepNorm、DeepNormGrad、DynamicQuantUpdateScatter、DynamicQuantUpdateScatterV2、GemmaRmsNorm、GroupNormSiluQuant、HardSigmoid、HardSwishGradV2、INInferV2、InplaceApplyRMSProp、InplaceSub、InstanceNormGrad、INTrainingUpdateGrad、L2NormalizeGrad、MultiAddRmsNormDynamicQuant、MultilabelMarginLoss、NonZeroWithValue、PoissonNllLoss、Relu6Grad、SoftmaxFocalLoss、SoftmaxFocalLossGrad **顺带修复**:deep_norm、deep_norm_grad、gemma_rms_norm、multi_add_rms_norm_dynamic_quant、dynamic_quant_update_scatter_v2 这 5 个原型头文件末尾缺换行,属存量问题;pre-commit 的 end-of-file-fixer 钩子只扫改动文件,一旦改动即会被拦,故一并补齐。 **变更范围**:30 个文件,+95 −5,改动全部为条件编译指令与文件末尾换行,不改动任何 IR 的输入/输出/属性/dtype 定义,无功能与支持面变化。未改动 common/inc/op_graph/op_nn_proto_extend.h——merge_proto.py 会按算子名把聚合头中的重复项去重,改它不会进入合并产物。 ## 关联的Issue 关联 Issue #5170 ## 测试 1. **合并产物验证**:对 30 个改动文件跑 python3 scripts/util/merge_proto.py,合并产物中 REG_OP 30 个、#ifndef OPS_PROTO_DEF_ 30 个,隔离宏 30/30 全部正确带出。 2. **宏名配对验证**:与发布包 cann-9.2.0/opp/built-in/op_graph/inc/*.h 中同名算子的既有隔离宏逐个比对,宏名不一致项 0 处。 3. **重名检查**:30 个新增宏在三仓范围内无跨文件重名,每个文件内 OPS_PROTO_DEF_ 宏数恰为 1(无嵌套/重复保护)。 4. **格式与合规门禁**:按 .pre-commit-config.yaml 逐钩子本地复现 —— clang-format 18.1.8 --style=file --dry-run -Werror 整文件检查 30/30 通过、OAT 许可头 30/30 合规、trailing-whitespace / end-of-file-fixer / check-merge-conflict / detect-private-key / check-added-large-files 全部通过。 ## 文档更新 无。本 PR 不涉及文档变更。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 <!-- 关联 Issue: https://gitcode.com/cann/ops-nn/issues/5170 --> See merge request: cann/ops-nn!9218 | 11 天前 | |
rename: MicroAPI namespace to Reg for arch35 kernels | 10 天前 | |
feat: 新增BNTrainingUpdateGrad算子(Ascend 950PR) Co-authored-by: justsheldon<taoxudong@huawei.com> # message auto-generated for no-merge-commit merge: !9153 merge BNTrainingUpdateGrad into master feat: 新增BNTrainingUpdateGrad算子(Ascend 950PR) Created-by: justsheldon Commit-by: justsheldon Merged-by: cann-robot Description: ## 描述 新增BNTrainingUpdateGrad自定义算子,用于批归一化训练反向的update阶段。给定上游梯度grads、前向输入x及逐通道统计量batch_mean/batch_variance,在batch与空间维上做逐通道归约,输出仿射参数scale/offset的梯度diff_scale/diff_offset。 ### 改动内容 - 新增算子目录 norm/bn_training_update_grad/,包含完整实现: - **Proto注册**:从 op_nn_proto_extend.h 迁移至独立 bn_training_update_grad_proto.h,注册体与canndev built-in逐字一致 - **Op Host**:def注册(ascend950 vendor config)、infershape(diff_scale/diff_offset shape/dtype同batch_mean)、tiling(channel维主切分,UB反推cLenCap/sliceR/rowsPerTile) - **Op Kernel(arch35)**:AscendC kernel实现,fp16/bf16/fp32三二进制;快慢双路(cLenCap==1为快路:1D连续段+Kahan补偿累加;cLenCap>1为慢路:2D tile+位置归约) - **Framework**:TF plugin注册(AutoMappingFn + ImplyType::TVM) - **Config**:ascend950 binary.json(float16/bfloat16/float32三个bin,ND格式,FormatAgnostic) - **Tests**:tiling单元测试 + golden验证脚本 - **Examples**:图模式调用样例(两组shape/epsilon用例) - 从 common/inc/op_graph/op_nn_proto_extend.h 移除旧BNTrainingUpdateGrad proto定义(42行),迁移至独立proto文件 - 在 docs/zh/op_list.md 添加算子列表条目 ### 支持情况 - 硬件平台:Ascend 950PR/Ascend 950DT - 数据类型:grads/x支持FLOAT16/FLOAT32/BFLOAT16(三者同型),batch_mean/batch_variance/diff_scale/diff_offset恒为FLOAT32 - 数据格式:ND - 属性:epsilon(可选float,缺省0.0001) ## 关联的Issue - #5134 ## 测试 - tiling单元测试(test_bn_training_update_grad_tiling.cpp) - golden验证脚本(tests/assets/golden.py) - 图模式调用示例(examples/arch35/test_geir_bn_training_update_grad.cpp) ## 文档更新 - 新增 norm/bn_training_update_grad/README.md(含产品支持情况、功能说明、参数说明、约束说明、调用说明) - 更新 docs/zh/op_list.md 添加算子列表条目 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9153 | 11 天前 | |
rename: MicroAPI namespace to Reg for arch35 kernels | 10 天前 | |
4个算子原型增去重宏 Co-authored-by: zhoulong50_hw<zhoulong50@huawei.com> # message auto-generated for no-merge-commit merge: !9213 merge proto_fix into master 4个算子原型增去重宏 Created-by: zhoulong50_hw Commit-by: zhoulong50_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. AscendRequant 2. GlobalLpPool 3. AscendDequantS16 4. AscendRequantS16 4 个算子增加原型去重宏。通过增加 #define OPS_PROTO_DEF_OPNAME 宏的形式。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5177 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9213 | 11 天前 | |
fix(dequant_swiglu_quant): reject static quant with non-tail activate_dim in arch35 tiling Co-authored-by: caorenlei<caorenlei@huawei.com> # message auto-generated for no-merge-commit merge: !9208 merge czy_dsq into master fix(dequant_swiglu_quant): reject static quant with non-tail activate_dim in arch35 tiling Created-by: caorenlei Commit-by: caorenlei Merged-by: cann-robot Description: ## 描述 修复 DequantSwigluQuant 算子在 arch35 平台上非尾轴 activate_dim 与静态量化 quant_mode=static 组合触发 aicore "UB access address overflow" 的问题。 ### 改动原因 当 activate_dim 为非尾轴时,仅有动态量化 kernel 实现(DequantSwigluQuantV35NlastTiling),无静态量化 kernel。静态量化请求会被静默路由到动态量化 Nlast kernel,其 UB 布局/寻址按动态量化契约推导并丢弃 quant_offset,与静态量化入参(quant_scale/quant_offset)语义不匹配,运行期触发 aicore "UB access address overflow"。 ### 改动方法 在 DequantSwigluQuantV35NlastTiling::GetShapeAttrsInfo() 中新增拦截逻辑:仅当 actDimIndex_ 非尾轴时读取 quant_mode 属性,若取值为 static(或属性缺失时按 static 处理)则通过 OP_CHECK_IF 返回 ge::GRAPH_FAILED,并打印提示改用动态量化或将 activate_dim 设为尾轴的日志。非尾轴门控避免干扰由 DequantSwigluQuantV35DskTiling 处理的尾轴场景。 ## 关联的Issue - #5158 ## 测试 - 新增 tiling UT 用例 dequant_swiglu_quant_tiling_v35_static_nlast_dim_unsupported,构造 activate_dim=0 + quant_mode=static + Ascend950/arch35 平台环境,断言 tiling 函数返回 ge::GRAPH_FAILED - 原动态量化非尾轴用例无回归 - 全量 tiling UT(68 用例)全部 PASSED ## 文档更新 无 ## 类型标签 - [x] Bug修复 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9208 | 11 天前 | |
fix: 修复 GRU 与 GRU 反向算子 aclnn 接口的编码规范告警 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9180 merge 0825cleancode into master fix: 修复 GRU 与 GRU 反向算子 aclnn 接口的编码规范告警 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 修复 GRU 算子(rnn/gru/op_api/aclnn_gru.cpp)与 GRU 反向算子(rnn/gru_grad/op_api/aclnn_gru_backward.cpp)aclNN 接口的编码规范(cleancode)告警: 1. CheckNotNull、CheckDimsSize 中未使用的 hx 参数,以及无调用点的 GruDataGetWorkspaceSize 函数添加 [[maybe_unused]] 标记,消除未使用告警; 2. CheckShape 中 dScale(uint64_t)与 numLayers、hiddenSize(int64_t)的混合符号运算显式 static_cast 为 int64_t,消除符号转换告警; 3. 修复 aclnn_gru_backward.cpp ValidateShape 中日志格式符错误(%u 改为 %zu,GetDimNum 返回 64 位无符号值),并移除多余的 static_cast 消除符号比较告警。 ## 关联的Issue 关联 Issue https://gitcode.com/cann/ops-nn/issues/5129 ## 测试 通过编码规范(cleancode)检查。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9180 | 11 天前 | |
feat: wqbmmv2 Ascend950 支持 A16S4/A16F4 NZ_C0_16 格式 weight Co-authored-by: maqijun<maqijun@h-partners.com> # message auto-generated for no-merge-commit merge: !8545 merge feat/weight-quant-preprocess-a16w4 into master feat: wqbmmv2 Ascend950 支持 A16S4/A16F4 NZ_C0_16 格式 weight Created-by: maqijun Commit-by: maqijun Merged-by: cann-robot Description: ## 描述 在 Ascend950(DAV_3510)上为 WeightQuantBatchMatmulV2 新增 A16S4 / A16F4(INT4 / FLOAT4_E2M1)NZ_C0_16 格式 weight 支持: - V2/V3 接口在 DAV_3510 上保持 ND-only,NZ_C0_16 的 4bit 紧凑 weight 通过 Nz 接口(aclnnWeightQuantBatchMatmulNz)接入。 - aclnn TensorPreProcess 中为 NZ_C0_16 weight 重建逻辑 2D view,下游统一按 [K, N] 处理。 - op def:950 的 AICoreConfig 中前置追加 A16S4/A16F4 NZ_C0_16 组合,weight format/dtype 组合列表保持 append-only。 - 补充 wqbmmv2 reg base tiling UT:新增 NZ_C0_16 与 NZ 的 twin 用例。 - 检视意见闭环:IsNzFormat 返回类型由 aclnnStatus 改为 bool(原写法依赖 true→1 / false→0(ACLNN_SUCCESS) 的隐式转换,语义与 aclnnStatus 相反,易误用)。 - parse_ini_to_json:修正 offset dtype。 ## 关联的Issue 关联Issue [#5113](https://gitcode.com/cann/ops-nn/issues/5113) ## 测试 - 二级冒烟通过。 - wqbmmv2 reg base tiling UT 通过(含新增 NZ_C0_16 twin 用例)。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8545 | 11 天前 | |
动态库解耦 Co-authored-by: 18811725231<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !8927 merge master into master 动态库解耦 Created-by: yang-di52 Commit-by: 18811725231 Merged-by: cann-robot Description: ## 描述 本 PR 旨在将算子侧代码与 legacy 动态库(libophost_comm_legacy.so)解耦:LegacyCommonMgr 新增 isSupported_ 支持位与 IsSupport() 接口,依据编译宏 ASCEND_COMPUTE_UNIT 判断当前 SoC 版本是否属于受支持集合 SUPPORTED_VERS(ascend910b、ascend910_93、ascend310p、ascend310b、ascend910),仅受支持时才 dlopen 加载 legacy 库;各 legacy 封装接口在不受支持时提前短路返回,matmul 系列算子的 tiling 流程同步改为容忍 legacy 能力缺失而不再硬失败,并配套调整 CMake 编译宏与 UT 测试。 ## 关联的Issue [5093](https://gitcode.com/cann/ops-nn/issues/5093) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8927 | 12 天前 | |
situ_mx_quant: torch_extension实现按开发规范重构并修复内核FP16量化路径 Co-authored-by: demoauguste<zhanghao418@huawei.com> # message auto-generated for no-merge-commit merge: !9075 merge master into master situ_mx_quant: torch_extension实现按开发规范重构并修复内核FP16量化路径 Created-by: demoauguste Commit-by: demoauguste Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 按照torch extension整改situ_mx_quant算子实现,修复FP16场景的下的量化bug。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5054 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 使用测试工具,结果自验证如下:  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:重构torch extension实现,规范目录结构 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9075 | 11 天前 | |
rename: MicroAPI namespace to Reg for arch35 kernels | 10 天前 | |
修改matmul 算子atoll 异常反馈判断 Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !7083 merge master into master 修改matmul 算子atoll 异常反馈判断 Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改matmul 算子atoll 异常反馈判断,异常时返回默认值 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3882 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7083 | 1 个月前 | |
动态库解耦 Co-authored-by: 18811725231<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !8927 merge master into master 动态库解耦 Created-by: yang-di52 Commit-by: 18811725231 Merged-by: cann-robot Description: ## 描述 本 PR 旨在将算子侧代码与 legacy 动态库(libophost_comm_legacy.so)解耦:LegacyCommonMgr 新增 isSupported_ 支持位与 IsSupport() 接口,依据编译宏 ASCEND_COMPUTE_UNIT 判断当前 SoC 版本是否属于受支持集合 SUPPORTED_VERS(ascend910b、ascend910_93、ascend310p、ascend310b、ascend910),仅受支持时才 dlopen 加载 legacy 库;各 legacy 封装接口在不受支持时提前短路返回,matmul 系列算子的 tiling 流程同步改为容忍 legacy 能力缺失而不再硬失败,并配套调整 CMake 编译宏与 UT 测试。 ## 关联的Issue [5093](https://gitcode.com/cann/ops-nn/issues/5093) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8927 | 12 天前 | |
aclnnQuantMatmulWeightNz 补充WeightQuantPreProcess接口aclnn资料 Co-authored-by: renzetao<renzetao2@huawei.com> # message auto-generated for no-merge-commit merge: !8866 merge data_revise into master aclnnQuantMatmulWeightNz 补充WeightQuantPreProcess接口aclnn资料 Created-by: renzetao Commit-by: renzetao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> aclnnQuantMatmulWeightNz补充weightQuantPreProcess的调用example ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4898](https://gitcode.com/cann/ops-nn/issues/4898) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> bash build.sh --run_example 测试通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> aclnnQuantMatmulWeightNz.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8866 | 18 天前 | |
fix: Modify the AIDD docs issue Co-authored-by: zwj223<zhangwenjing55@h-partners.com> # message auto-generated for no-merge-commit merge: !8149 merge master into master fix: Modify the AIDD docs issue Created-by: zwj223 Commit-by: zwj223 Merged-by: cann-robot Description: ## 描述 修改AIDD扫描的核心资料问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#3939](https://gitcode.com/cann/ops-nn/issues/3939) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8149 | 1 个月前 | |
refactor: init_cann_project() 移至 dependencies.cmake 之后调用 Co-authored-by: zhaoyingdong<zhaoyingdong@huawei.com> # message auto-generated for no-merge-commit merge: !8702 merge master into master refactor: init_cann_project() 移至 dependencies.cmake 之后调用 Created-by: zhaoyingdong Commit-by: zhaoyingdong Merged-by: cann-robot Description: ## 描述 refactor: init_cann_project() 移至 dependencies.cmake 之后调用 add_cann_third_party()依赖init_cann_project() 中的变量,所以需要放到add_cann_third_party()前面 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x ] AI辅助编写 See merge request: cann/ops-nn!8702 | 22 天前 | |
产品文档中png文件改为英文名 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !8300 merge master into master 产品文档中png文件改为英文名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 产品文档中的png图片名由中文改为英文 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#4260](https://gitcode.com/cann/ops-nn/issues/4260) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> png和相关的link md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8300 | 1 个月前 | |
init | 11 个月前 | |
add hard_sigmoid for ascend950 Co-authored-by: tianyu52<tianyu52@huawei.com> # message auto-generated for no-merge-commit merge: !7874 merge master into master add hard_sigmoid for ascend950 Created-by: tianyu52 Commit-by: tianyu52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> add hard_sigmoid for ascend950 hard_sigmoid适配950 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST pass ; ops-test-kit 测试900+ 用例pass ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> activation/hard_sigmoid/README.md activation/hard_sigmoid/docs/aclnnHardsigmoid&aclnnInplaceHardsigmoid.md docs/zh/op_api_list.md docs/zh/op_api_list.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7874 | 1 个月前 | |
cannsim改名为npusim Co-authored-by: liangbinglong<liangbinglong@huawei.com> # message auto-generated for no-merge-commit merge: !8349 merge master into master cannsim改名为npusim Created-by: liangbinglong Commit-by: liangbinglong Merged-by: cann-robot Description: ## 描述 经TSC评审,cannsim工具正式更名为npusim,相关命令行、资料同步刷新,cannsim作为别名兼容一段时间,需要尽快切换 ## 关联的Issue NA ## 测试 使用最新链接版本测试,相关命令行已经全部更名为npusim ## 文档更新 更新doc下面的调优部分文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8349 | 29 天前 | |
fix: Modify the AIDD docs issue Co-authored-by: zwj223<zhangwenjing55@h-partners.com> # message auto-generated for no-merge-commit merge: !8149 merge master into master fix: Modify the AIDD docs issue Created-by: zwj223 Commit-by: zwj223 Merged-by: cann-robot Description: ## 描述 修改AIDD扫描的核心资料问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#3939](https://gitcode.com/cann/ops-nn/issues/3939) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8149 | 1 个月前 | |
fix Third_Party_Open_Source_Software_List.yaml Co-authored-by: liuyufan0725<liuyufan9@huawei.com> # message auto-generated for no-merge-commit merge: !1879 merge fix_yaml into master fix Third_Party_Open_Source_Software_List.yaml Created-by: liuyufan0725 Commit-by: liuyufan0725 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新三方依赖清单Third_Party_Open_Source_Software_List.yaml 1、增加protobuf 2、将nlohmann/json修改为json ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#1042](https://gitcode.com/cann/ops-nn/issues/1042) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了Third_Party_Open_Source_Software_List.yaml ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!1879 | 6 个月前 | |
【描 述】 eigen update to 5.0.0 Co-authored-by: j00427146<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !1152 merge master into master 【描 述】 eigen update to 5.0.0 Created-by: jialimin1 Commit-by: j00427146 Merged-by: cann-robot Description: ## 描述 现开源软件eigen 3.4.0 EOM,Eigen 从3.4.0版本升级到5.0.0,解决生命周期问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-nn/issues/975 https://gitcode.com/cann/ops-nn/issues/389 ## 测试   ## 文档更新 SECURITY.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:Update Eigen to 5.0.0 See merge request: cann/ops-nn!1152 | 6 个月前 | |
fix(build): 修复run_example默认模式判断libascendcl.so时[ ]缺空格导致错误链接-lacl_rt的问题 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !9181 merge index_example into master fix(build): 修复run_example默认模式判断libascendcl.so时[ ]缺空格导致错误链接-lacl_rt的问题 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 修复run_example默认模式判断libascendcl.so时[ ]缺空格导致错误链接-lacl_rt的问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5128 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9181 | 11 天前 | |
更新conv文件从属配置,新增convbp_tiling_debug_util.h Co-authored-by: xiaolong_feng<fengxiaolong5@huawei.com> # message auto-generated for no-merge-commit merge: !9155 merge fix-config into master 更新conv文件从属配置,新增convbp_tiling_debug_util.h Created-by: xiaolong_feng Commit-by: xiaolong_feng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新conv文件从属配置,新增convbp_tiling_debug_util.h ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5111 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 不涉及,常规门禁即可 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 配置文件更新 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9155 | 11 天前 | |
fix: Modify the AIDD docs issue Co-authored-by: zwj223<zhangwenjing55@h-partners.com> # message auto-generated for no-merge-commit merge: !8149 merge master into master fix: Modify the AIDD docs issue Created-by: zwj223 Commit-by: zwj223 Merged-by: cann-robot Description: ## 描述 修改AIDD扫描的核心资料问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#3939](https://gitcode.com/cann/ops-nn/issues/3939) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8149 | 1 个月前 | |
调整nn仓第三方依赖 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !7845 merge pr_6933 into master 调整nn仓第三方依赖 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 1. 文档声称 install_deps.sh 可一键安装所有列出的基础依赖("上述依赖可通过项目脚本一键安装"),但实际脚本仅安装了 GCC、CMake、pigz、dos2unix、patch,未安装 googletest(文档明确列为基础依赖项之一),开发者需手动下载源码、编译并安装 googletest,与文档"一键安装"的描述不符 2. python requirements多两个不需要的依赖 ### 主要修改 为install_deps.sh 增加了安装gtest的功能 删除requirements中多余的两个依赖 ## 关联的Issue [#4256](https://gitcode.com/cann/ops-nn/issues/4256) [#4154](https://gitcode.com/cann/ops-nn/issues/4154) ## 测试  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7845 | 1 个月前 | |
调整nn仓第三方依赖 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !7845 merge pr_6933 into master 调整nn仓第三方依赖 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 1. 文档声称 install_deps.sh 可一键安装所有列出的基础依赖("上述依赖可通过项目脚本一键安装"),但实际脚本仅安装了 GCC、CMake、pigz、dos2unix、patch,未安装 googletest(文档明确列为基础依赖项之一),开发者需手动下载源码、编译并安装 googletest,与文档"一键安装"的描述不符 2. python requirements多两个不需要的依赖 ### 主要修改 为install_deps.sh 增加了安装gtest的功能 删除requirements中多余的两个依赖 ## 关联的Issue [#4256](https://gitcode.com/cann/ops-nn/issues/4256) [#4154](https://gitcode.com/cann/ops-nn/issues/4154) ## 测试  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7845 | 1 个月前 | |
Remove the dependency asc-tool Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !5220 merge eng into master Remove the dependency asc-tool Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 Remove the dependency asc-tool ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 工程编译验证 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5220 | 3 个月前 |
ops-nn
🔥Latest News
- [2026/05] 优化kernel编译配置项,减少simplified_key和ascendc_config配置文件(!3330)。
- [2026/05] 引入ops-tensor,基于分层结构优化Cube类算子,减少偏移量计算和简化指令参数(!5036)。
- [2026/05] 发布生态算子的精度验收标准(!4572)。
- [2026/03] 开源算子支持下一代芯片:Ascend950PR(!450)。
- [2026/03] 新增<<<>>>的算子开发样例(!620)。
- [2026/03] 低bit类算子和融合算子支持更多数据类型:fp8/mxfp8/hifp8/mxfp4等,并支持pertensor/perchannel/pertoken/pergroup/perblock等不同量化和组合方式:全量化融合算子:quant_batch_matmul_v4,伪量化融合算子:weight_quant_batch_matmul_v2。
- [2026/03] 支持SIMD/SIMT新同构编程算子实现:[MapIndex](#660),[ScatterSub](#710)。
- [2026/01] 新增QuickStart,指导新手零基础入门算子项目部署(支持Docker环境)、算子开发和贡献流程。
- [2025/12] 开源算子支持Ascend 950PR/Ascend 950DT/KirinX90,可以通过NPU Simulator仿真工具开发调试;优化指南类文档,聚焦算子开发指南,明确最小交付件和关键示例代码,针对Ascend/samples仓算子提供迁移本项目的指导;新支持稀疏4:2量化matmul算子,针对稀疏矩阵开启硬件加速能力。
- [2025/11] 新支持算子index_fill、masked_scatter、scatter、tf_scatter_add、fused_cross_entropy_loss_with_max_sum。
- [2025/10] 新增experimental目录,完善贡献指南,支持开发者调试并贡献自定义算子。
- [2025/09] ops-nn项目首次上线,开源算子支持Atlas A2/A3系列产品。
🚀概述
ops-nn是CANN(Compute Architecture for Neural Networks)算子库中提供神经网络计算能力的高阶算子库,包括matmul类、activation类等算子,算子库架构图如下:

📌版本配套
本项目源码会跟随CANN软件版本发布,关于CANN软件版本与本项目标签的对应关系请参阅release仓库中的相应版本说明。 请注意,为确保您的源码定制开发顺利进行,请选择配套的CANN版本与Gitcode标签源码,使用master分支可能存在版本不匹配的风险。
🛠️环境准备
环境部署是体验本项目能力的前提,请先完成NPU驱动、CANN包安装等,确保环境正常。
⬇️源码下载
环境准备好后,下载与CANN版本配套的分支源码,通用命令如下,${tag_version}替换为分支标签名。以9.0.0分支源码下载为例:
# 通用命令:git clone -b ${tag_version} https://gitcode.com/cann/ops-nn.git
git clone -b 9.0.0 https://gitcode.com/cann/ops-nn.git
说明:若环境中已存在配套分支源码,可跳过本步骤,例如CANNLab默认已提供最新版本CANN对应的源码。
📖学习教程
💬相关信息
PS:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。