本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
子流水线支持更新门禁代码 Co-authored-by: jinyijian<jinyijian1@huawei.com> # message auto-generated for no-merge-commit merge: !4515 merge CI into master 子流水线支持更新门禁代码 Created-by: jinyijian Commit-by: jinyijian Merged-by: cann-robot Description: ## 描述 子流水线支持更新门禁代码 当门禁包含子流水线时,如果没有这个配置,会导致子流水线中任务无法更新最新代码,使用落后的代码跑门禁 ## 关联的Issue ## 测试 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4515 | 3 个月前 | |
新增SwigluGroupQuantGrad算子 Co-authored-by: shilulu<shilulu8@huawei.com> # message auto-generated for no-merge-commit merge: !6281 merge 9.1.0 into 9.1.0 新增SwigluGroupQuantGrad算子 Created-by: shilulu Commit-by: shilulu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增SwigluGroupQuantGrad算子 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3302 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6281 | 2 个月前 | |
Use runtime version for tensor API capability Co-authored-by: YaQ1an9<1185365215@qq.com> # message auto-generated for no-merge-commit merge: !6122 merge codex/9.1.0-runtime-asc-devkit-version into 9.1.0 Use runtime version for tensor API capability Created-by: Hu1L1 Commit-by: YaQ1an9 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 将 QuantBatchMatmulV3 的 Tensor API 能力判断从编译期 asc-devkit 版本宏切换为运行时 CANN runtime 版本判断。 原逻辑依赖 ASC_DEVKIT_MAJOR/ASC_DEVKIT_MINOR: cpp (ASC_DEVKIT_MAJOR >= 9) && (ASC_DEVKIT_MINOR > 0) 该判断只能反映编译环境版本,不能保证与实际运行时 CANN 包一致。为避免编译包和运行包不一致时走错 Tensor API 路径,本 PR 改为调用: aclsysGetVersionNum("runtime", &versionNum) 并以 versionNum >= 90100000 判断是否支持 Tensor API 相关路径。获取版本失败时保守返回 false。 ` 同时补充: host 侧 ophost 动态库链接 acl_rt; op_host UT 链接 acl_rt; UT 复用 host util 中的 IsTensorapiCapable(),避免测试侧重复维护编译期判断逻辑。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 已进行代码检查: 确认 aclsysGetVersionNum 符号由 libacl_rt.so 导出; 确认 host .so 和 op_host UT 均已补充 acl_rt 链接依赖; 确认 QuantBatchMatmulV3 host util 和 UT 均使用运行时版本判断逻辑。 二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及资料修改 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6122 | 2 个月前 | |
去除matmul中的显式CheckLogLevel调用 Co-authored-by: liyuanqiang<liyuanqiang@huawei.com> # message auto-generated for no-merge-commit merge: !6234 merge 9.1.0 into 9.1.0 去除matmul中的显式CheckLogLevel调用 Created-by: liyuanqiang Commit-by: liyuanqiang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 去除matmul中的显式CheckLogLevel调用 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> issue: [#3406](https://gitcode.com/cann/ops-nn/issues/3406) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6234 | 2 个月前 | |
批量修改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 | 2 个月前 | |
fix: matmul_v3 bias L1 buffer calculation and add 4buffer bias UT Co-authored-by: justsozl<zhaolun3@hisilicon.com> # message auto-generated for no-merge-commit merge: !6154 merge 9.1.0 into 9.1.0 fix: matmul_v3 bias L1 buffer calculation and add 4buffer bias UT Created-by: justsozl Commit-by: justsozl Merged-by: cann-robot Description: ## 描述 修复matmul算子开启4buffer后,带bias场景L1可能超bufffer导致AIC_ERR的问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3334 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 单算子测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6154 | 2 个月前 | |
新增SwigluGroupQuantGrad算子 Co-authored-by: shilulu<shilulu8@huawei.com> # message auto-generated for no-merge-commit merge: !6281 merge 9.1.0 into 9.1.0 新增SwigluGroupQuantGrad算子 Created-by: shilulu Commit-by: shilulu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增SwigluGroupQuantGrad算子 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3302 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6281 | 2 个月前 | |
修复md中空格 Co-authored-by: wuyao51511<wuyao61@h-partners.com> # message auto-generated for no-merge-commit merge: !6127 merge 9.1.0 into 9.1.0 修复md中空格 Created-by: wuyao51511 Commit-by: wuyao51511 Merged-by: cann-robot Description: ## 描述 文档空格问题清理 ## 关联的Issue https://atomgit.com/cann/ops-nn/issues/3357 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 更新了 quick_install.md aclnnExpandIntoJaggedPermute.md aclnnQuantMatmulDequant.md aclnnLstmBackward.md examples/fast_kernel_launch_example/README.md aclnnMatmulWeightNz.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6127 | 2 个月前 | |
【社区任务】AscendC实现IndexFillD算子贡献 Co-authored-by: StarLightOn<594406837@qq.com> # message auto-generated for no-merge-commit merge: !4146 merge submit-index_fill_d into master 【社区任务】AscendC实现IndexFillD算子贡献 Created-by: StarLightOn Commit-by: StarLightOn Merged-by: cann-robot Description: ## 描述 ### 背景信息 基于IndexFillD算子历史TBE版本使用Ascend C编程语言进行优化。 ### TBE源码分析 IndexFillD算子(TBE)实现路径和相关API路径 IndexFillD算子实现路径为:${INSTALL_PATH}/opp/built-in/op_impl/ai_core/tbe/impl/ops_legacy/dynamic/index_fill_d.py IndexFillD算子信息库路径:${INSTALL_PATH}/opp/built-in/op_impl/ai_core/tbe/config/ascend910b/aic-ascend910b-ops-info-legacy.json 通过对IndexFillD算子TBE版本的功能分析,当前支持的能力如下: ① 算子支持float32、float16、bfloat16、int32、bool、int64格式的输入输出。(ascendC无需支持int64,且将bool视为int8即可) ② 对于浮点类型(float32, float16),底层逻辑使用 vcmpsel 结合 assist1 构成的掩码和 assist2 进行选择;针对 bfloat16 类型,先强制转换提升精度到 fp32 进行计算,最后通过 round 转回原来的数据进行输出。 ③ 对于整型和布尔类型,底层逻辑为 $x \times assist_1 + assist_2$。当输入为 int8 或 bool 时,先转换至 int32 防溢出计算,结果再转换回原类型。 - 接口功能:结合前端框架(如 PyTorch)的逻辑,在适配层构造出辅助张量 assist1 与 assist2 后,完成对输入张量 x 的特定位置替换填充。 - 计算公式: 浮点型逻辑: $$ y = \begin{cases} x & \text{if } assist_1 > 0 \\ assist_2 & \text{otherwise} \end{cases} $$ 整型逻辑: $$ y = x \times assist_1 + assist_2 $$ > 适配层保证了不考虑广播场景,故所有输入张量(x, assist1, assist2)shape 均一致。 IndexFillD算子TBE版本的整体流程图如下图所示:  ## 需求分析 ### 外部组件依赖 不涉及 ### 内部适配模块 适配aclnn接口调用 ### 算子原型 | 名称 | 类别 | 数据类型 | format | shape | |--|--|--|--|--| | x | 输入 | float、float16、bfloat16、int32、int8 | ND | all | | assist1 | 输入 | float、float16、bfloat16、int32、int8 | ND | all | | assist2 | 输入 | float、float16、bfloat16、int32、int8 | ND | all | | y | 输出 | float、float16、bfloat16、int32、int8 | ND | all | | dim | 属性 | int | - | - | *(注:由于底层实现中针对int8类型处理逻辑可覆盖bool类型,实际支持数据类型与TBE版本对齐)* ### 算子支持型号 Atlas A2 训练系列产品/Atlas 800I A2推理产品 ## 需求详细设计 ### 使能方式 | 上层框架 |涉及的框架勾选 | |--|--| | TF训练/推理 | | | Pytorch训练/推理 | | | ATC推理 | | | Aclnn直调 | ✅| | OPAT调优 | | | SGAT子图切分 | | ## 需求总体设计 ### host侧设计方案 算子计算过程不涉及数据的维度信息,故在host侧将数据视为一维向量,仅考虑数据个数,不考虑数据维度信息。 任务均分:根据输入长度 inputNum 和预设的 TILE_SPLIT_NUM 动态调整 coreNum,通过 CalculateCoreBlockNums 确保每个核心处理的数据块数均匀。 批量搬运:根据不同数据类型的空间占用(如 fp32为5倍,bfloat16为7倍,int32为4倍,int8为7倍)计算UB空间复用情况,推导 tileBlockNum 和 tileDataNum。通过 finalSmallTileNum 和 finalBigTileNum 确定大小核的循环次数,并针对尾块(Tail Data)进行了专门处理以避免数据碎片。 #### 1) 分核策略 优先使用满核的原则。 如果核间能均分,可视作无大小核区分,大核小核数据块一致; 如果核间不能均分,利用 tailBlockNum = (inputLengthAlgin / BLOCK_SIZE) % coreNum 将余出的数据块优先分配到前几个大核上,确保硬件利用率最大化。 #### 2) 数据分块和内存优化策略 充分使用UB空间的原则。 在 GetShapeAttrsInfo 阶段,针对不同数据类型定义了 ubDataNumber 权重(例如,bfloat16因为涉及类型转换和mask保存,需要较大的UB空间配额)。 动态判定 Buffer 策略:计算单流水总内存占用,若 singleBufferNeedSize <= coreNum * ubSize,则使用 SINGLE_BUFFER_NUM 提升单核性能上限;若空间紧张则评估双缓冲 DOUBLE_BUFFER_NUM(代码中目前出于最优性能测试考虑,默认锁定单流水,实际调优可放开)。 最终的 tileBlockNum 将据此规划出单次 Process 中运算的精确数据切片大小。 #### 3) tilingkey规划策略 基于 Buffer 策略划分 TilingKey:双缓冲为 ELEMENTWISE_TPL_SCH_MODE_0,单缓冲为 ELEMENTWISE_TPL_SCH_MODE_1。Kernel 侧主要依靠 C++ if constexpr 的模板元编程能力在编译期根据数据类型展开分支。 ### kernel侧设计方案 进行 Init 和 Process 两个阶段,其中 Process 包括数据搬入(CopyIn)、计算(Compute)、搬出(CopyOut)三个阶段。 由于涉及3个输入向量和大量中间结果(Mask生成,Cast提精度转换),本算子广泛应用了 **UB 空间复用**。比如计算掩码和精度强转时,不同变量内存通过模板和 ReinterpretCast 分时重用,降低 UB 并发压力。 针对常数判断使用 CompareScalar 替代 Tensor 比较,针对 Tensor 和 Scalar 混合场景选择合适的 SELMODE,从而减少辅助内存占用。 依据TBE实现平移逻辑: - 16位(bfloat16)时,由 castBuf 做桥梁,转换为 float 进行掩码和 Select 运算,再转回原类型。 - int8_t 小数据量类型时,转为 int16_t 处理乘加操作,防止计算中途溢出。 Ascend C的IndexFillD算子流程见下图。  ### 算子约束限制 - 暂不考虑广播,三个输入(x, assist1, assist2)需要严格相同的shape。 - 输入和输出的dtype保持强一致性。 ## 特性交叉分析可维可测分析 ### 精度标准/性能标准 | 验收标准 | 描述 | 来源 | |--|--|--| |精度标准 | 不低于tbe版本 | 历史tbe对标 | | 性能标准 | 不低于tbe版本 | 历史tbe对标 | ### 兼容性分析 新Ascend C算子替代原TBE算子,对外接口保持一致,不涉及兼容性中断。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue #2267 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 包含ut测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 包含IndexFillD算子docs ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:社区任务贡献 See merge request: cann/ops-nn!4146 | 2 个月前 | |
modified md files(for readability improvement) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !6050 merge master into master modified md files(for readability improvement) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Mofify redundant spaces, such as those between Chinese and English characters. ## 关联的Issue [#3317](https://gitcode.com/cann/ops-nn/issues/3317) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6050 | 2 个月前 | |
revise kernel compile options Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !5202 merge master into master revise kernel compile options Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 kernel配置项整改:foreach,hash,loss,rnn,vfusion ## 关联的Issue [#1985](https://gitcode.com/cann/ops-nn/issues/1985) ## 测试 本地编译,对比修改前后.o ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5202 | 2 个月前 | |
修复uss存在的功能问题 Co-authored-by: 吴帅<wushuai86@huawei.com> # message auto-generated for no-merge-commit merge: !6273 merge uss_blue into 9.1.0 修复uss存在的功能问题 Created-by: wu-shuai2580 Commit-by: 吴帅 Merged-by: cann-robot Description: ## 描述 修复unsorted_segment_sum算子存在的功能问题 ## 关联的Issue ## 测试 david冒烟,st pass ## 文档更新 index/unsorted_segment_sum/op_host/arch35/unsorted_segment_sum_deterministic_tiling.cpp index/unsorted_segment_sum/op_host/arch35/unsorted_segment_sum_deterministic_tiling.h index/unsorted_segment_sum/op_kernel/arch35/uss_deterministic.h ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6273 | 2 个月前 | |
修改L1LOSS资料文档,防止理解偏差 Co-authored-by: jisongyuan@h-partners.com<jisongyuan@h-partners.com> # message auto-generated for no-merge-commit merge: !6345 merge l1lossdocsfix910 into 9.1.0 修改L1LOSS资料文档,防止理解偏差 Created-by: ji-songyuan Commit-by: jisongyuan@h-partners.com Merged-by: cann-robot Description: ## 描述 修改L1LOSS资料文档,防止理解偏差 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#3481](https://gitcode.com/cann/ops-nn/issues/3481) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> loss/lp_loss/docs/aclnnL1Loss.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6345 | 2 个月前 | |
debug | 2 个月前 | |
aclnnaddlayernormquantv2修改约束 Co-authored-by: zhaosusu<zhaosusu1@h-partners.com> # message auto-generated for no-merge-commit merge: !6291 merge 9-1 into 9.1.0 aclnnaddlayernormquantv2修改约束 Created-by: zhaosusu Commit-by: zhaosusu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> aclnnaddlayernormquantv2修改约束,取消scales,zeropoint输入shape校验 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#3422](https://gitcode.com/cann/ops-nn/issues/3422) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新资料aclnnAddLayerNormQuantV2.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6291 | 2 个月前 | |
批量修改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 | 2 个月前 | |
去除matmul中的显式CheckLogLevel调用 Co-authored-by: liyuanqiang<liyuanqiang@huawei.com> # message auto-generated for no-merge-commit merge: !6234 merge 9.1.0 into 9.1.0 去除matmul中的显式CheckLogLevel调用 Created-by: liyuanqiang Commit-by: liyuanqiang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 去除matmul中的显式CheckLogLevel调用 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> issue: [#3406](https://gitcode.com/cann/ops-nn/issues/3406) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6234 | 2 个月前 | |
修复RotateQuant资料问题,修复FlatQuant算子质量加固问题。主线已涵盖修复内容,现需要合入9.1.0分支 Co-authored-by: yushan-kite<zhangyushan11@huawei.com> # message auto-generated for no-merge-commit merge: !6210 merge 9.1.0 into 9.1.0 修复RotateQuant资料问题,修复FlatQuant算子质量加固问题。主线已涵盖修复内容,现需要合入9.1.0分支 Created-by: yushan-kite Commit-by: yushan-kite Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复RotateQuant资料问题,修复FlatQuant算子质量加固问题。主线已涵盖修复内容,现需要合入9.1.0分支 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3401 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> aclnnfuzz单算子验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> matmul/rotate_quant/README.MD matmul/rotate_quant/docs/aclnnRotateQuant.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6210 | 2 个月前 | |
修复md中空格 Co-authored-by: wuyao51511<wuyao61@h-partners.com> # message auto-generated for no-merge-commit merge: !6127 merge 9.1.0 into 9.1.0 修复md中空格 Created-by: wuyao51511 Commit-by: wuyao51511 Merged-by: cann-robot Description: ## 描述 文档空格问题清理 ## 关联的Issue https://atomgit.com/cann/ops-nn/issues/3357 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 更新了 quick_install.md aclnnExpandIntoJaggedPermute.md aclnnQuantMatmulDequant.md aclnnLstmBackward.md examples/fast_kernel_launch_example/README.md aclnnMatmulWeightNz.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6127 | 2 个月前 | |
回退--check功能 Co-authored-by: chenbinbin199309<chenbinbin20@huawei.com> # message auto-generated for no-merge-commit merge: !6131 merge cherry-pick-mr-6080-1781577469921-auto into 9.1.0 回退--check功能 Created-by: chenbinbin199309 Commit-by: chenbinbin199309 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 回退--check功能 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#3292](https://gitcode.com/cann/ops-nn/issues/3292) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 编包测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6131 | 2 个月前 | |
Use runtime version for tensor API capability Co-authored-by: YaQ1an9<1185365215@qq.com> # message auto-generated for no-merge-commit merge: !6122 merge codex/9.1.0-runtime-asc-devkit-version into 9.1.0 Use runtime version for tensor API capability Created-by: Hu1L1 Commit-by: YaQ1an9 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 将 QuantBatchMatmulV3 的 Tensor API 能力判断从编译期 asc-devkit 版本宏切换为运行时 CANN runtime 版本判断。 原逻辑依赖 ASC_DEVKIT_MAJOR/ASC_DEVKIT_MINOR: cpp (ASC_DEVKIT_MAJOR >= 9) && (ASC_DEVKIT_MINOR > 0) 该判断只能反映编译环境版本,不能保证与实际运行时 CANN 包一致。为避免编译包和运行包不一致时走错 Tensor API 路径,本 PR 改为调用: aclsysGetVersionNum("runtime", &versionNum) 并以 versionNum >= 90100000 判断是否支持 Tensor API 相关路径。获取版本失败时保守返回 false。 ` 同时补充: host 侧 ophost 动态库链接 acl_rt; op_host UT 链接 acl_rt; UT 复用 host util 中的 IsTensorapiCapable(),避免测试侧重复维护编译期判断逻辑。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 已进行代码检查: 确认 aclsysGetVersionNum 符号由 libacl_rt.so 导出; 确认 host .so 和 op_host UT 均已补充 acl_rt 链接依赖; 确认 QuantBatchMatmulV3 host util 和 UT 均使用运行时版本判断逻辑。 二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及资料修改 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6122 | 2 个月前 | |
fix modulate_grad int overflow Co-authored-by: zhangqijia<zhangqijia1@h-partners.com> # message auto-generated for no-merge-commit merge: !6182 merge fix/modulate_grad_int_9.1.0 into 9.1.0 fix modulate_grad int overflow Created-by: gcw_SUaZx3UQ Commit-by: zhangqijia Merged-by: cann-robot Description: ## 描述 修复 ModulateGrad(vfusion/modulate_grad)维度与 GM 偏移全程 uint32_t 导致的整型溢出/截断,将维度 B/L/D 及其派生偏移改为 64 位域计算: - **维度窄化**:tiling 中 B/L/D 字段、 GetDim() 读取、kernel 字段 B_/L_/D_ 改为 uint64_t,消除 int64_t → uint32_t 截断。 - **B*D 溢出**:GenerateTilingData 局部 B/D 改 uint64_t,numBlocks < B*D 在 64 位域比较封顶,避免乘积回绕(并消除回绕为 0 时的潜在除零)。 - **GM 偏移溢出(核心)**:kernel allOffset/scaleOffset 及 CalculateOffsets、各 CopyIn/CopyOut 搬运函数的偏移形参改为 uint64_t;因 L_/D_ 已是 uint64_t,偏移乘加链自动提升为 64 位。 根因:原实现以 uint32_t 承载维度,但 64GB HBM 可容纳 >2^32 个 float 元素,大张量下 GM 偏移必然溢出。 ## 关联的Issue 关联Issue #2954 ## 测试 ## 文档更新 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6182 | 2 个月前 | |
修改clang format Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !4385 merge master into master 修改clang format Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改clang-format 规划 1、枚举的{ 跟enum 同行 2、string开头不强制换行 3、短函数实现允许同行 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4385 | 4 个月前 | |
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 | 2 个月前 | |
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 | 2 个月前 | |
批量修改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 | 2 个月前 | |
适配pg short soc特性 Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !4999 merge pg_soc into master 适配pg short soc特性 Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 算子适配PG特性。 将short soc version改成mc62 改动点:mc62cm12a-->mc62, MC62CM12A-->MC62 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> https://gitcode.com/cann/ops-nn/issues/2991 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4999 | 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 | 2 个月前 | |
init | 10 个月前 | |
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 | 2 个月前 | |
fix doc issues Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5608 merge master into master fix doc issues Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ①优化环境安装,CANN安装指南入口统一为快速安装 ②Docker环境的版本示例刷新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [2489](https://gitcode.com/cann/ops-nn/issues/2489) [2842](https://gitcode.com/cann/ops-nn/issues/2842) [2678](https://gitcode.com/cann/ops-nn/issues/2678) [3070](https://gitcode.com/cann/ops-nn/issues/3070) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 已验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> README.md、qucik_install.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5608 | 2 个月前 | |
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 | 4 个月前 | |
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 个月前 | |
限制run_example的输出 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !5894 merge master into master 限制run_example的输出 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 ### 主要背景 run_example 结果输出过多,打印太多无用的数据,影响效率 ### 主要修改 限制run_example的输出10行。报错和未报错场景10行均足够 ## 关联的Issue [#3262](https://gitcode.com/cann/ops-nn/issues/3262) ## 测试  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5894 | 2 个月前 | |
add cmakelist to classify_rule Co-authored-by: lu-yukun<luyukun4@h-partners.com> # message auto-generated for no-merge-commit merge: !6057 merge br_classify into master add cmakelist to classify_rule Created-by: lu-yukun Commit-by: lu-yukun Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> add cmakelist to classify_rule ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3333 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6057 | 2 个月前 | |
批量修改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 | 2 个月前 | |
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 | 3 个月前 | |
[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 | 4 个月前 | |
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/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:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。