本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
修改编译任务 Co-authored-by: chenyajie<chenyajie6@huawei.com> # message auto-generated for no-merge-commit merge: !7462 merge master into master 修改编译任务 Created-by: yajie_caroline Commit-by: chenyajie Merged-by: cann-robot Description: ## 描述 修改代码话编译任务始终跳过不跑的bug ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4069 ## 测试 在测试环境中验证修改过后可以正常识别条件跑编译 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7462 | 3 个月前 | |
swiglu_group_quant文档刷新、用例补充、quantMode=0/1补充outputOrigin校验 Co-authored-by: shilulu<shilulu8@huawei.com> # message auto-generated for no-merge-commit merge: !7386 merge master into master swiglu_group_quant文档刷新、用例补充、quantMode=0/1补充outputOrigin校验 Created-by: shilulu Commit-by: shilulu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> swiglu_group_quant文档刷新、用例补充、quantMode=0/1补充outputOrigin校验 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4051 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了activation/swiglu_group_quant/docs/aclnnSwigluGroupQuant.md、activation/swiglu_group_quant/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7386 | 3 个月前 | |
bmm/mm b全载+fixpipe载出优化 Co-authored-by: huangkejie1647<huangkejie3@huawei.com> # message auto-generated for no-merge-commit merge: !5452 merge bfull_load into master bmm/mm b全载+fixpipe载出优化 Created-by: huangkejie1647 Commit-by: huangkejie1647 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> bmm/mm b全载+fixpipe优化 基础api切tensor api ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#3890](https://gitcode.com/cann/ops-nn/issues/3890) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 二级冒烟成功,本地验证精度pass,性能符合要求 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5452 | 3 个月前 | |
Security code remediation in matmul、common Co-authored-by: yolic<chenyuning1@huawei.com> # message auto-generated for no-merge-commit merge: !7373 merge 0710_cleancode into master Security code remediation in matmul、common Created-by: yolic Commit-by: yolic Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增负数输入检测。移除 PostCubeComm 类中的多余分号。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#3882](https://gitcode.com/cann/ops-nn/issues/3882) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7373 | 3 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 3 个月前 | |
Conv2DBackpropInput、Conv2DBackpropFilter、Conv2DTranspose等算子融合Pass整改,使用ops-nn仓新Pass架构重写 Co-authored-by: xxxzh<xiongzhihao4@huawei.com> Co-authored-by: cheng_gao<cheng.gao@huawei.com> # message auto-generated for no-merge-commit merge: !6081 merge paas_0615 into master Conv2DBackpropInput、Conv2DBackpropFilter、Conv2DTranspose等算子融合Pass整改,使用ops-nn仓新Pass架构重写 Created-by: cheng_gao Commit-by: cheng_gao;xxxzh Merged-by: cann-robot Description: ## 描述 Conv2DBackpropInput、Conv2DBackpropFilter、Conv2DTranspose等算子融合Pass整改,使用ops-nn仓新Pass架构重写 ## 关联的Issue 关联Issue [#3979](https://gitcode.com/cann/ops-nn/issues/3979) ## 测试 验证图通路基本功能 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6081 | 3 个月前 | |
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 | 3 个月前 | |
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 | 3 个月前 | |
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 | 3 个月前 | |
【社区任务】ForeachExp支持int16/int8/uint8实现贡献 Co-authored-by: run-op-test<runoptest@163.com> # message auto-generated for no-merge-commit merge: !5454 merge submit-ForeachExp into master 【社区任务】ForeachExp支持int16/int8/uint8实现贡献 Created-by: run-op-test Commit-by: run-op-test Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 一、基本信息 ### 1.1 需求来源 ForeachExp 算子是深度学习框架对应的昇腾算子实现,核心语义为:对输入张量列表(Tensor List)中的每个张量逐元素执行 $y = e^x$ 运算,返回结果张量列表。 当前 aclnnForeachExp 算子开源仓(ops-nn)仅支持浮点数据类型。为满足更广泛的端侧推理及量化场景需求,本方案在现有代码基础上再开发,新增 INT16(int16_t)、INT8(int8_t)、UINT8(uint8_t)三种整数数据类型的支持,完成算子泛化适配,并最终合入昇腾算子开源仓。 ### 1.2 背景介绍 #### 1.2.1 现有 ForeachExp 算子实现分析 现有 ForeachExp 算子的核心底层逻辑复用了 foreach_utils 目录下的 ForeachImplictOutput 模板。 现有实现路径:[https://gitcode.com/cann/ops-nn/tree/master/foreach/foreach_exp](https://gitcode.com/cann/ops-nn/tree/master/foreach/foreach_exp) #### 1.2.2 现有版本支持能力 | 参数 | 参数含义 | 数据类型支持 | 数据类型约束 | 形状 | | :--- | :--- | :--- | :--- | :--- | | x | 输入张量列表 | FLOAT32, FLOAT16, BFLOAT16 | 列表中所有 Tensor 数据类型一致 | 0-8 维 ND | | y | 输出张量列表 | 与 x 一致 | shape size $\ge$ x 的 shape size | 0-8 维 ND | #### 1.2.3 核心计算逻辑 计算公式: $x = [x_0, x_1, ... x_{n-1}]$ $y = [y_0, y_1, ... y_{n-1}]$ $y_i = e^{x_i} \quad (i=0,1,...n-1)$ **Kernel 侧计算特性:** 当前底层通过传入 Exp 操作符给 ForeachImplictOutput 模板进行实例化。对于 half 和 float,直接在 V 单元执行 Exp 指令;对于 bfloat16_t,框架内部已经通过 InnerComputer 特化实现了 Cast (提升至 float32) $\rightarrow$ Exp $\rightarrow$ Cast (还原回 bfloat16_t) 的流程。新增的整数类型也将完全复用这一 Cast 特化机制。 --- ## 二、需求分析 ### 2.1 外部组件依赖 * 依赖 Ascend C 的 Cast API 提供 $int8_t \leftrightarrow float$、$uint8_t \leftrightarrow float$、$int16_t \leftrightarrow float$ 的类型转换及饱和截断支持。 * 依赖 foreach_utils 中的 ForeachImplictOutput 模板类及 ForeachCommonTiling 分核策略。 ### 2.2 内部适配模块 | 模块 | 变更项 | 说明 | | :--- | :--- | :--- | | op_host | foreach_exp_def.cpp | 扩展 tensor_dtype_list,新增 DT_INT16 / DT_INT8 / DT_UINT8 | | op_host | foreach_exp_binary.json | 在对应架构下新增三种整数类型的 JSON 配置条目 | | op_kernel | foreach_exp.cpp | 新增 TILING_KEY_INT16(5) / INT8(7) / UINT8(8) 分支 | | op_kernel | foreach_implict_output.h | 扩展 InnerComputer 对 int16_t, int8_t, uint8_t 转换 float 的模板特化 | | docs/README | 文档与 README | 更新支持的数据类型列表和数值截断说明 | | tests/examples | 测试框架 | 新增泛化场景的整数类型单元测试与 API 测试 | --- ## 三、需求模块设计 ### 3.1 使能方式 | 上层框架 | 涉及的框架勾选 | | :--- | :--- | | TF训练/推理 | | | Pytorch训练/推理 | | | ATC推理 | | | Aclnn直调 | ✅ | | OPAT调优 | | | SGAT子图切分 | | ### 3.2 算子原型定义(变更后) 原型注册文件中,新增对目标数据类型的支持: cpp std::vector<ge::DataType> tensor_dtype_list = { ge::DT_FLOAT16, ge::DT_FLOAT, ge::DT_BF16, ge::DT_INT16, ge::DT_INT8, ge::DT_UINT8 }; std::vector<ge::Format> format_list(tensor_dtype_list.size(), ge::FORMAT_ND); this->Input("x") .ParamType(DYNAMIC) .DataType(tensor_dtype_list) .Format(format_list) .UnknownShapeFormat(format_list) .AutoContiguous(); this->Output("y") .ParamType(DYNAMIC) .DataType(tensor_dtype_list) .Format(format_list) .UnknownShapeFormat(format_list) .AutoContiguous(); this->AICore().AddConfig("ascend910_93"); this->AICore().AddConfig("ascend910b"); ### 3.3 详细设计 #### 3.3.1 Host 侧设计 * **分核策略**:继续沿用 ForeachCommonTiling,根据 Tensor 数量及总元素个数进行 usedCoreNum 计算与负载均衡切分,无需做逻辑改动。 * **UB 内存分布与 TilingKey**:框架已在 common_dtype.h 中预定义了枚举,新增类型映射为:TILING_KEY_INT16=5,TILING_KEY_INT8=7,TILING_KEY_UINT8=8。 #### 3.3.2 Kernel 侧设计 **3.3.2.1 新增 TilingKey 分支** 在 foreach_exp.cpp 主干中补充路由分支: cpp // ... 前置的 FLOAT16, FLOAT32, BFLOAT16 分支 ... } else if (TILING_KEY_IS(5)) { ForeachImplictOutput<int16_t, float, Exp, 2, 1> op; op.Init(x, y, userWS, &tilingData); op.Process(); } else if (TILING_KEY_IS(7)) { ForeachImplictOutput<int8_t, float, Exp, 2, 1> op; op.Init(x, y, userWS, &tilingData); op.Process(); } else if (TILING_KEY_IS(8)) { ForeachImplictOutput<uint8_t, float, Exp, 2, 1> op; op.Init(x, y, userWS, &tilingData); op.Process(); } **3.3.2.2 扩展 InnerComputer 模板特化** 在 foreach_implict_output.h 中,为了让整数类型能够调用浮点 Exp 算子,需仿照 bfloat16_t 补充三组特化。以下以 int16_t 为例: cpp #if __CCE_AICORE__ >= 220 template <ImplictOutputOp<float>* op, uint8_t paramsCount> class InnerComputer<int16_t, float, op, paramsCount> { public: __aicore__ inline void Compute( LocalTensor<int16_t>& dataLocal, LocalTensor<float>& float32Tensor, uint32_t maxCastDataCount, int64_t dataCount) { uint32_t castTimes = dataCount / maxCastDataCount; uint32_t castTimesRemainder = dataCount % maxCastDataCount; for (uint32_t i = 0; i < castTimes; i++) { ComputePerCast(dataLocal, float32Tensor, maxCastDataCount, i, maxCastDataCount); } if (castTimesRemainder > 0) { ComputePerCast(dataLocal, float32Tensor, maxCastDataCount, castTimes, castTimesRemainder); } } private: __aicore__ inline void ComputePerCast( LocalTensor<int16_t>& dataLocal, LocalTensor<float>& float32Tensor, uint32_t maxCastDataCount, uint32_t index, int64_t dataCount) { PipeBarrier<PIPE_V>(); Cast(float32Tensor, dataLocal[index * maxCastDataCount], RoundMode::CAST_NONE, dataCount); PipeBarrier<PIPE_V>(); uint32_t offset = (paramsCount == 1) ? 0 : maxCastDataCount; op(float32Tensor[offset], float32Tensor, dataCount); // 核心计算:Exp PipeBarrier<PIPE_V>(); // 注意:此处转回整型使用 CAST_RINT(四舍五入)或依赖默认的饱和截断行为 Cast(dataLocal[index * maxCastDataCount], float32Tensor[offset], RoundMode::CAST_RINT, dataCount); PipeBarrier<PIPE_V>(); } }; #endif // 同理,补充 <int8_t, float, ...> 和 <uint8_t, float, ...> 的特化 **3.3.2.3 数值溢出与截断行为** 由于 $e^x$ 增长极快(例如 $x=10$ 时,结果约为 $22026.46$),该数值已远超 INT8 和 UINT8 的表示范围。在最终执行 Cast(float32 -> int) 时,硬件底层触发饱和截断:超出数据类型最大值的结果将饱和为该类型的最大值(如 INT8 饱和为 127,UINT8 饱和为 255)。 **3.3.2.4 Ascend C 实现流程图 (PlantUML)**  ### 3.4 支持硬件 * Atlas A2 训练系列产品 / Atlas 800I A2 推理产品 * Atlas A3 系列产品 ### 3.5 算子约束限制 1. **数据类型对齐强制性约束**:需要特别注意的是,在算子构建阶段,如果遇到未注册的数据类型(如框架侧下发了未支持的 dtype),CANN 软件栈的预期行为是直接构建报错并停止运行,而不会触发回退机制将算子标记为 CPU 执行。因此,Host 侧的原型注册必须与 Kernel 侧的类型分发(TilingKey 分支及 Template 特化)严格对齐,不可遗漏。 2. **输入输出类型一致性**:输入 x 张量列表内所有元素的数据类型必须完全一致,且与输出 y 张量列表的数据类型保持绝对一致。 --- ## 四、验收标准 | 验收标准 | 描述 | | :--- | :--- | | **功能标准** | 算子能够正确处理 INT16、INT8、UINT8 输入的 Exp 运算,能够正常处理多 Tensor 列表输入输出。 | | **精度标准** | 严格符合 AscendOpTest 默认阈值。由于是整数运算,基准测试逻辑需设定为:输入转换为 float64 -> 计算 np.exp -> np.round -> 转换为对应整数类型(并验证溢出时的饱和截断行为是否与 CPU 侧对齐)。 | | **泛化标准** | 支撑 0-8 维、不同 Tensor 大小组合及空张量的合法输入场景。 | --- ## 五、可维可测分析 ### 5.1 精度/性能标准 * **精度**:按照 4.0 验收标准执行,重点通过 UT 验证 $x \le 0$ 时是否下溢截断正确,以及 $x$ 较大时饱和为该类型最大正数是否正确。 * **性能**:新增分支性能须对齐已有的 BFLOAT16 逻辑,确保流水线中 MTE2 -> V -> V -> V -> MTE3 的并行度未被破坏,打满系统带宽或 V 单元算力极限。 ### 5.2 兼容性分析 该开发任务为纯粹的类型扩展,向后兼容原有框架的所有特性,不改变现有浮点类型的计算逻辑与 Tiling 策略,对存量业务零影响。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue #2867 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了README.md、aclnnForeachExp.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5454 | 3 个月前 | |
fix schedule mode & embeddingHash Doc & groupNormSilu codecheck Co-authored-by: xieshengwei1024<xieshengwei3@huawei.com> # message auto-generated for no-merge-commit merge: !7076 merge master into master fix schedule mode & embeddingHash Doc & groupNormSilu codecheck Created-by: xieshengwei1024 Commit-by: xieshengwei1024 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1.系列SyncAll算子添加scheduleMode 2.embeddingHash算子文档错误修改 3.groupNormSilu修改超大圈复杂度问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联issue3858 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 已进行本地编译测试、ut测试及上板aclnn测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了embeddingHash系列算子的readme文档 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7076 | 3 个月前 | |
feat: migrate bucketize and avg_pool1d_avg_matrix Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !6877 merge migrate-bucketize-avgpool1d into master feat: migrate bucketize and avg_pool1d_avg_matrix Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## Summary 迁移两个算子到 ops-nn 正确分类目录: - Bucketize -> index/bucketize - AvgPool1DAvgMatrix -> pooling/avg_pool1d_avg_matrix 本次按标准 AICPU 迁仓补齐: - AICPU kernel 与 *_aicpu_def.cpp - op_graph / op_host - UT - README - GE IR example ## Validation - bash ./build.sh --run_example bucketize graph --soc=ascend910_93 --noexec - example 运行成功,输出 bucketize 结果并打印 success - bash ./build.sh --run_example avg_pool1d_avg_matrix graph --soc=ascend910_93 --noexec - example 运行成功,输出 avg matrix 结果并打印 success - git diff --cached --check passed before commit See merge request: cann/ops-nn!6877 | 3 个月前 | |
[CANNbot]新增算子SigmoidCrossEntropyWithLogitsGrad Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !7004 merge master into master [CANNbot]新增算子SigmoidCrossEntropyWithLogitsGrad Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 [CANNbot]新增算子SigmoidCrossEntropyWithLogitsGrad ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7004 | 3 个月前 | |
放开QuantMatmul动态T-C量化bias限制 Co-authored-by: smdbha<panzhijie2@huawei.com> # message auto-generated for no-merge-commit merge: !7259 merge backup into master 放开QuantMatmul动态T-C量化bias限制 Created-by: smdbha Commit-by: smdbha Merged-by: cann-robot Description: ## 描述 放开 QuantMatmul V5 在 FLOAT8_E4M3FN、FLOAT8_E5M2、HIFLOAT8 动态 T-C 量化场景下的 FLOAT bias 限制。 本次修改删除 op_api 和 arch35 tiling checker 中针对动态 T-C 场景要求 bias 必须为空的拦截,仅保留 bias 数据类型为 FLOAT 的校验,使代码行为与支持 bias 的数据类型组合保持一致。 ## 关联的Issue Fixes #3975 https://gitcode.com/cann/ops-nn/issues/3975 ## 测试 - 新增 matmul/quant_batch_matmul_v4/tests/ut/op_host/test_aclnn_quant_matmul_v5_api.csv 中 3 个 Ascend950 成功用例,覆盖 FLOAT8_E4M3FN、FLOAT8_E5M2、HIFLOAT8 动态 T-C + FLOAT bias 场景。 - 新增用例期望返回 ACLNN_SUCCESS。 ## 文档更新 更新 matmul/quant_batch_matmul_v4/docs/aclnnQuantMatmulV5.md,删除“动态T-C量化场景下,不支持bias”的限制说明。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7259 | 3 个月前 | |
fix: 修复 rmsnormquantv2/3 的 GM 内存越界问题 Co-authored-by: huanghaihong12138<huanghaihong4@huawei.com> # message auto-generated for no-merge-commit merge: !7338 merge rms_norm_oom into master fix: 修复 rmsnormquantv2/3 的 GM 内存越界问题 Created-by: huanghaihong Commit-by: huanghaihong12138 Merged-by: cann-robot Description: ## 描述 修复 rmsnormquantv2/3 中 GM 内存越界问题。 - 在 norm/rms_norm_quant_v2/op_kernel/arch35/rms_norm_quant_v2_regbase_full_load.h 中,CopyInOhters 函数通过 DataCopyPad 复制 gamma、scales、zeroPoints 时,原先使用了对齐后的长度(xGammaBetaAlign、scalesAlign、zeroPointsAlign)作为 blockLen。当实际数据元素数 numR 小于对齐长度时,会读取超出 GM 实际数据范围的内存,造成越界。本次改动将 gamma 的 blockLen 改为 numR * sizeof(T_X),并将 scales 和 zeroPoints 改为根据 numQ 分支:当 numQ == 1 时按单个元素复制,否则按 numR * sizeof(...) 复制,确保仅复制有效数据。 - 在 norm/rms_norm_quant_v3/op_api/aclnn_rms_norm_quant_v3.cpp 中移除未使用的头文件 op_api/op_api_def.h,避免冗余依赖。 ## 关联的Issue - #4027 ## 测试 - 本地算子编译通过 - 相关精度/功能测试验证通过 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7338 | 3 个月前 | |
文档修复:修正ApplyAdagradD算子README调用说明误写 optim/apply_adagrad_d/README.md 调用说明表格中错误地写成"构图方式调用EluGrad算子", 修正为"构图方式调用ApplyAdagradD算子"。 | 2 个月前 | |
feat: migrate bucketize and avg_pool1d_avg_matrix Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !6877 merge migrate-bucketize-avgpool1d into master feat: migrate bucketize and avg_pool1d_avg_matrix Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## Summary 迁移两个算子到 ops-nn 正确分类目录: - Bucketize -> index/bucketize - AvgPool1DAvgMatrix -> pooling/avg_pool1d_avg_matrix 本次按标准 AICPU 迁仓补齐: - AICPU kernel 与 *_aicpu_def.cpp - op_graph / op_host - UT - README - GE IR example ## Validation - bash ./build.sh --run_example bucketize graph --soc=ascend910_93 --noexec - example 运行成功,输出 bucketize 结果并打印 success - bash ./build.sh --run_example avg_pool1d_avg_matrix graph --soc=ascend910_93 --noexec - example 运行成功,输出 avg matrix 结果并打印 success - git diff --cached --check passed before commit See merge request: cann/ops-nn!6877 | 3 个月前 | |
修改dsq算子A3场景文档约束 Co-authored-by: zhu-lei0614<zhulei113@huawei.com> # message auto-generated for no-merge-commit merge: !7424 merge celoss into master 修改dsq算子A3场景文档约束 Created-by: zhu-lei0614 Commit-by: zhu-lei0614 Merged-by: cann-robot Description: ## 描述 修改dsq算子A3场景文档约束 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4058 ## 测试 更新文档,无需测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7424 | 3 个月前 | |
用例代码修改 Co-authored-by: weike<weike13@huawei.com> # message auto-generated for no-merge-commit merge: !7186 merge master into master 用例代码修改 Created-by: m0_55003149 Commit-by: weike Merged-by: cann-robot Description: ## 描述 指针释放异常,导致代码无法执行完成 ## 关联的Issue #3933 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 更新了:rnn/single_layer_lstm_grad/docs/aclnnLstmBackward.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7186 | 3 个月前 | |
genop 支持ut 及arch35 目录生成 Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !7347 merge master into master genop 支持ut 及arch35 目录生成 Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> genop 支持UT 及arch35 目录框架生成 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/2483 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7347 | 3 个月前 | |
UniqueConsecutive算子修改ut包含头文件错误路径 Co-authored-by: wkx12138<weikaixuan@h-partners.com> # message auto-generated for no-merge-commit merge: !7118 merge ucut into master UniqueConsecutive算子修改ut包含头文件错误路径 Created-by: wkx12138 Commit-by: wkx12138 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改原因:UniqueConsecutive算子UT头文件路径错误导致报错 修改方法:使用正确的路径 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3899 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 本地编译执行ut成功 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7118 | 3 个月前 | |
新增SwigluGroup和SwigluGroupQuant算子PTA接口 Co-authored-by: taochangmin<taochangmin@huawei.com> # message auto-generated for no-merge-commit merge: !7232 merge master into master 新增SwigluGroup和SwigluGroupQuant算子PTA接口 Created-by: taochangmin Commit-by: taochangmin Merged-by: cann-robot Description: ## 描述 新增SwigluGroup和SwigluGroupQuant算子torch_extension接口 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3999 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> torch调用测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7232 | 3 个月前 | |
GetCompile()返回值reinterpret_cast后判空 Co-authored-by: huzhipeng<huzhipeng17@h-partners.com> # message auto-generated for no-merge-commit merge: !7435 merge 0713m into master GetCompile()返回值reinterpret_cast后判空 Created-by: huzhipeng Commit-by: huzhipeng Merged-by: cann-robot Description: 变更摘要 本次变更在 MultiScaleDeformableAttentionGradTiling::Init() 方法中,对 GetCompileInfo() 返回值经 reinterpret_cast 转换后的 compileInfo 指针增加了空指针检查。由于后续代码直接通过 compileInfo->ub_size_platform 和 compileInfo->total_core_num 访问成员,缺少判空可能导致空指针解引用崩溃,新增的防御性检查弥补了这一隐患。 主要改动 新增空指针校验:在 multi_scale_deformable_attention_grad_tiling.cpp 的 Init() 方法中,于 reinterpret_cast 之后、首次解引用之前插入 OP_CHECK_NULL_WITH_CONTEXT(TilingContext, compileInfo) 宏,确保 compileInfo 非空时才继续执行后续逻辑 关联的Issue https://gitcode.com/cann/ops-nn/issues/3882 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7435 | 3 个月前 | |
修改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 | 3 个月前 | |
index kernel ut Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !5501 merge master into master index kernel ut Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Kernel UT 中存在大量分散的测试数据准备代码,使用 system() 调用执行 shell 命令: 重复样板代码多:至少 131 个文件包含 system() 调用 依赖 GNU/Linux 工具:cp、chmod、rm、get_current_dir_name(非跨平台) 错误定位困难:system() 返回码粗糙,无法区分路径错误、权限问题、Python缺失等 维护成本高:同一套逻辑散落在大量算子测试中 修改方案 统一测试数据生命周期管理:拷贝、清理、生成、比对 改善报错体验:使用项目标准日志宏 OP_LOGI/OP_LOGE,区分路径错误、脚本执行失败等 降低贡献门槛:开发者只需声明数据目录和参数 本次修改对index 目录下的部分算子 迁移过程中 代码格式做整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/2337 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5501 | 4 个月前 | |
add knowledge to optimize conv perf. Co-authored-by: ray-shaw<shaorui4@huawei.com> # message auto-generated for no-merge-commit merge: !7305 merge master_610 into master add knowledge to optimize conv perf. Created-by: ray-shaw Commit-by: ray-shaw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 通过知识库让n方向不全载L0的用例走入小kernel,优化性能,实测性能从9.5us优化到6us。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#4017](https://gitcode.com/cann/ops-nn/issues/4017) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> RDV pass ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7305 | 3 个月前 | |
fix doc tools Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !7147 merge master into master fix doc tools Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 修改master分支里面doctool扫描的问题 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/3911 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [.] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7147 | 3 个月前 | |
include tensor_api from cann Co-authored-by: liuyufan0725<liuyufan9@huawei.com> # message auto-generated for no-merge-commit merge: !7061 merge include_asc into master include tensor_api from cann Created-by: liuyufan0725 Commit-by: liuyufan0725 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 在使用最新的CANN包时,从环境中获取tensor_api源码进行编译 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#3880](https://gitcode.com/cann/ops-nn/issues/3880) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> nn包编包成功,算子功能pass ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7061 | 3 个月前 | |
社区贡献 Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !6366 merge master into master 社区贡献 Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 更新完善社区贡献的流程,增加新增需求到sig例会评审的过程。 补充各类场景的贡献说明。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 更新完善社区贡献的流程,增加新增需求到sig例会评审的过程。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6366 | 3 个月前 | |
init | 1 年前 | |
index kernel ut Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !5501 merge master into master index kernel ut Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Kernel UT 中存在大量分散的测试数据准备代码,使用 system() 调用执行 shell 命令: 重复样板代码多:至少 131 个文件包含 system() 调用 依赖 GNU/Linux 工具:cp、chmod、rm、get_current_dir_name(非跨平台) 错误定位困难:system() 返回码粗糙,无法区分路径错误、权限问题、Python缺失等 维护成本高:同一套逻辑散落在大量算子测试中 修改方案 统一测试数据生命周期管理:拷贝、清理、生成、比对 改善报错体验:使用项目标准日志宏 OP_LOGI/OP_LOGE,区分路径错误、脚本执行失败等 降低贡献门槛:开发者只需声明数据目录和参数 本次修改对index 目录下的部分算子 迁移过程中 代码格式做整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/2337 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5501 | 4 个月前 | |
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 | 3 个月前 | |
nn仓doc tools扫描内容修改 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !3414 merge master into master nn仓doc tools扫描内容修改 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 修改markdown语法和链接,1000个左右。 ## 关联的Issue 关联Issue [#1783](https://gitcode.com/cann/ops-nn/issues/1783) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 更新了README.md、gitcode、cmake、common、control、conv、docs、examples、experimental、hash、index、loss、matmul、optim、pooling等文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3414 | 6 个月前 | |
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 | 8 个月前 | |
【描 述】 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 | 8 个月前 | |
genop 支持ut 及arch35 目录生成 Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !7347 merge master into master genop 支持ut 及arch35 目录生成 Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> genop 支持UT 及arch35 目录框架生成 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/2483 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7347 | 3 个月前 | |
修改conv反向和foreach算子classify_rule目录不生效的问题 Co-authored-by: Hongyi<liuhongyi1@huawei.com> # message auto-generated for no-merge-commit merge: !7090 merge classify_rule_master into master 修改conv反向和foreach算子classify_rule目录不生效的问题 Created-by: hongyiliu111 Commit-by: Hongyi Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改conv反向和foreach算子classify_rule目录不生效的问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7090 | 3 个月前 | |
批量修改md中冗余空格 Co-authored-by: wuyao51511<wuyao61@h-partners.com> # message auto-generated for no-merge-commit merge: !6027 merge master into master 批量修改md中冗余空格 Created-by: wuyao51511 Commit-by: wuyao51511 Merged-by: cann-robot Description: ## 描述 文档空格问题清理 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6027 | 4 个月前 | |
fix(docs,deps,ut): 完善全量编译说明、Debian GCC 安装与 UT 状态码兼容 Co-authored-by: root<yangyang306@hisilicon.com> # message auto-generated for no-merge-commit merge: !5110 merge master into master fix(docs,deps,ut): 完善全量编译说明、Debian GCC 安装与 UT 状态码兼容 Created-by: yangyang016 Commit-by: root Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 修复社区体验测试中反馈的三类问题:文档缺少全量编译指引、Debian 系发行版依赖安装失败、以及 UT 公共头文件中 ACLNN_SUCCESS 未定义导致 nn_op_host_ut 编译失败。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> - Fixes #2790 — 文档缺少全量编译指导与耗时说明 - Fixes #2793 — install_deps.sh 在 Debian 13 等系统硬编码 gcc-9 导致安装失败 - Fixes #2794 — ut_string_utils.h 使用未定义的 ACLNN_SUCCESS 导致 UT 编译失败 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - [x] bash -n install_deps.sh 语法检查通过 - [x] 在无 ACLNN_SUCCESS 宏的 mock 头文件下对 ut_string_utils.h 做语法检查通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - **docs/QUICKSTART.md**:明确快速入门默认采用**单算子编译**(--ops),并引导需要整库构建时查阅 docs/zh/install/compile.md。 - **docs/zh/install/compile.md**:在「ops-nn包」章节增加全量编译说明:耗时与机器配置、-j 并行度及联网依赖相关;建议日常开发优先单算子编译。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5110 | 4 个月前 | |
[Docs] modify profile of quick_install Co-authored-by: wangzitao_leo<wangzitao4@huawei.com> # message auto-generated for no-merge-commit merge: !4156 merge profile_0423 into master [Docs] modify profile of quick_install Created-by: wangzitao_leo Commit-by: wangzitao_leo Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新资料中: 1. --help时新增打印--soc支持的硬件平台; 2. quick_install指导资料中对于第三方依赖的安装资料调整,使得条理更加清晰,资料更为易用。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> Issue [#2274](https://gitcode.com/cann/ops-nn/issues/2274) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 1. 根据资料安装第三方依赖 2. bash build.sh --help时打印--soc支持硬件平台列表 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 1. README.md 2. docs/zh/install/compile.md 3. docs/zh/install/quick_install.md 4. requirements.txt ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4156 | 5 个月前 | |
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 | 4 个月前 |
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,可以通过CANN 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:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。