| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
适配350:abs_grad/complex_abs 新增 ascend350 平台支持(op_api SocVersion 整改) Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !6521 merge master into master 适配350:abs_grad/complex_abs 新增 ascend350 平台支持(op_api SocVersion 整改) Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 适配350:abs_grad/complex_abs 新增 ascend350 平台支持(op_api SocVersion 整改) ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3680 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6521 | 3 天前 | |
fix(AccumulateNV2): golden三方绑定改回真竞品算子AccumulateNV2(tf.function图模式) Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !6705 merge fix/accumulate-nv2-golden-thirdparty into master fix(AccumulateNV2): golden三方绑定改回真竞品算子AccumulateNV2(tf.function图模式) Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 背景 !6584 合并后,golden 的 ThirdPartyTF 三方绑定经历了两次修正,本 PR 交付最终版本:三方在 GPU server 上以 **TF 官方执行语义**运行**真竞品算子 AccumulateNV2**。 ## 根因(源码复核) tf.raw_ops.AccumulateNV2 是 TF **从未编译过 kernel 的 stub 占位算子**(官方源码列入 OPS_WITHOUT_KERNEL_ALLOWLIST): - 图模式:由 AccumulateNV2RemovePass(core/common_runtime/accumulate_n_optimizer.cc,PRE_PLACEMENT 优化 pass)重写为 TemporaryVariable+AssignAdd 顺序累加链(while 循环内退化为 AddN) - eager 模式:Python wrapper 直接回退 add_n(TF 1.15 math_ops.py 注释:TemporaryVariable not currently supported in eager mode) 因此 TTK xpu-server 的 eager 三方执行**直接调用 raw op 必报 no registered kernels**(两台 GPU server 与本地 CPU 均实测复现),与 TF 版本、服务器环境无关。 ## 修改内容 tests/assets/golden.py ThirdPartyTF: 1. 绑定 tf.raw_ops.AccumulateNV2,用 tf.function 包一层走**图模式**路径——由 TF 官方重写为 TemporaryVariable+AssignAdd 链执行,原始 dtype 顺序累加、不升精度 2. 去掉原实现的 np.asarray 主机绕行:同 shape 张量直传保持在 dispatch 设备(GPU)上;异 shape(aclnnSum 路线)在 device 上 tf.broadcast_to 对齐,TF 拒绝的高秩组合回退 numpy ## 验证(GPU server 176.176.0.134,cross_check L1) | 项目 | 结果 | |------|------| | 精度 8 用例(含 fp16_extreme) | 8/8 PASS(dyn 编译 + bin release 双模式) | | --xpu-perf 三方执行位置 | device_us=6.99、peak_memory_mb=0.00256(真实 GPU 执行) | | 批跑 kernel 路线 85 例 | 62 PASS(23 失败均为已知族:6×zero-dim 编译 bug #1896 + 17×GEIR dyn 用例路线不匹配) | | 批跑 aclnn 路线 84 例 | 84/84 全 PASS(含 8 例异 shape broadcast) | | 批跑 geir 路线(静态 shape 31 + 空 tensor 8) | 39/39 全 PASS | | 三方错误计数(全批次) | 0(no registered kernels / GOLDEN_FAILURE / third_party 错误) | | 浮点 cross_check L1(必须三方参与) | 70 例全 PASS | 附:17 例 GEIR dyn 用例换旧 AddN 绑定对照重跑,17/17 逐条结果一致,证明其失败(TTK 比对框架对动态 shape 元数据输出的 cross_check 缺口)与本改动无关。 关联:cann/ops-math !6584(已合并,本 PR 为其 golden 三方绑定的后续修正) ## 关联的Issue - [Bug-Report|缺陷反馈] AccumulateNV2 golden 三方绑定 eager 直调 TF stub 算子必报 no registered kernels,三方比对无法执行 #4251 https://gitcode.com/cann/ops-math/issues/4251 See merge request: cann/ops-math!6705 | 3 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
适配ascend350 Co-authored-by: Hana77<wangtianqi27@huawei.com> # message auto-generated for no-merge-commit merge: !6165 merge dvlite into master 适配ascend350 Created-by: Hana77 Commit-by: Hana77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 算子适配ascend350 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3439](https://gitcode.com/cann/ops-math/issues/3439) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6165 | 22 天前 | |
fix(acosh): 质量加固——4项逻辑修复(BF16平台门控/DOUBLE双精度/tiling换算/域外NaN防护)+UT 94.6%+四通路看护集归档 Co-authored-by: dengguojie<dengguojie@huawei.com> # message auto-generated for no-merge-commit merge: !6620 merge hardening/Acosh into master fix(acosh): 质量加固——4项逻辑修复(BF16平台门控/DOUBLE双精度/tiling换算/域外NaN防护)+UT 94.6%+四通路看护集归档 Created-by: dengguojie Commit-by: dengguojie Merged-by: cann-robot Description: ## PR功能描述 Acosh 算子质量加固:修复 4 项精度/正确性缺陷,补齐 UT 与四通路看护集测试资产,并对齐 README/docs/proto 文档口径。分支为单 commit(整理自原多 commit,内容零变化)。 **修复** - kernel:x<1 域外输入输出 NaN(原负大值灾难消去返回 0/inf);输出 BF16 按 SocVersion 门控;整型+DOUBLE 升 DT_DOUBLE 走 AICPU 双精度;tiling blockFactor 按 dtype 换算 - tiling:切分核 Bug 修复——blockFactor 按 dtype 字节/元素量纲换算(原 32 字节当 32 元素),核切分修正——大 shape 并行度提升(usedCoreNum 41→54,totalNum=3855 实证) - op_api:原地示例失败路径资源释放+判空 - proto:REG_OP dtype 声明收紧——UnaryDataType 改显式枚举 6 dtype(去 COMPLEX32 过度声明,AICore/AICPU 两面均无该 dtype) **测试** - tiling UT 19 例,host 侧覆盖率 57.5%→94.6%(53/53 全绿) - 看护集 kernel/aclnn/geir/torch 四通路×100 例 + golden 资产入库(tests/st/arch35/、tests/assets/) **文档** - README:值域[1,+∞)/域外 NaN/动态 shape/161002 声明,参数表对齐 def.cpp 注册集 - aclnn 文档补维度列/selfRef 复数 dtype/161002 格式行;proto 注释对齐 ## 验证 存量 729 例 728 PASS(1 例工具链侧挂账)+ board mixed 1548 执行 1482 PASS/66 台账放行 + Host UT 53 例全绿(覆盖率 94.6%)。 ## 该PR关联的issue Closes [#4180](https://gitcode.com/cann/ops-math/issues/4180) Closes [#4196](https://gitcode.com/cann/ops-math/issues/4196) ## 外部反馈处置 外部测试反馈渠道的 2 项精度问题(同根因:kernel 域外 NaN 缺失,GEIR 路 Expected:nan/Actual:inf),已在本 PR 修复;修复后用原版 CSV+原版 golden 双口径(close/mixed)复验均 100% PASS。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6620 | 4 天前 | |
[acosh_grad] quality-hardening:算子质量加固修复 Co-authored-by: handsomeRobot_SK<suke13@huawei.com> # message auto-generated for no-merge-commit merge: !6196 merge acosh_grad_quality_hardening into master [acosh_grad] quality-hardening:算子质量加固修复 Created-by: handsomeRobot_SK Commit-by: handsomeRobot_SK Merged-by: cann-robot Description: # [acosh_grad] quality-hardening:算子质量加固修复(准入+检视问题整改) ## 一、变更概述 本 PR 针对 AcoshGrad(acosh_grad)算子 2026-09-23 准入扫描(白盒模式,总体结论 FAIL,唯一 FAIL 项为 1.4 资料-缺少动态 shape 约束说明,另有 X2 规则级 WARN)与代码检视(125 条例,FAIL 1 / SUSPICIOUS 1 / 风格违规 3 项可修 / 设计一致性 4 维不一致)发现的问题,完成如下整改: - 准入 1.4:README 补充动态 shape/动态 rank 约束说明(消除唯一 FAIL); - 准入 X2:Tiling 新增私有格式显式拒绝(origin/storage 双查)+ 私有格式异常 UT×3(消除 WARN); - 准入 X7 建议:README 补充空 Tensor 行为说明; - 检视 LOG-1:裸 OP_LOGE 替换为 OP_LOGE_FOR_INVALID_VALUE_WITH_REASON 结构化预定义宏; - 检视 RED-1:ubBlockSize 增加显式零值守卫; - 检视 S4/S5/S6、D8:DESIGN.md v1.1 与实现同步(GEIR-only 交付姿态、TilingData 3 字段、简化切分算法、动态 shape 说明、248KB 格式修正); - 风格 STYLE-2.1/2.4/3.3:行宽折行、if 补齐大括号、清理开发阶段编号注释; - 覆盖度 P5:归档用例补齐(L2 异常用例 +7、功能缺口用例 +10)。 变更范围:代码仓 quality-hardening-acosh_grad/ops-math(分支 acosh_grad_quality_hardening,4 笔提交)+ 交付件仓 operator-artifacts/AcoshGrad/(提交 625b165 本算子部分)。 ## 二、分类修改清单 ### (一)代码修复(ops-math,逐条对应报告条目) | 报告条目 | 修复内容 | 文件 | |---------|---------|------| | admission X2 / P2(WARN) | 新增 IsPrivateFormat()(NC1HWC0/FRACTAL_Z/NDC1HWC0/FRACTAL_Z_3D/FRACTAL_NZ/NC1HWC0_C04),y/dy/z origin/storage 双查显式拒绝,报错走 OP_LOGE_FOR_INVALID_FORMAT_WITH_REASON | op_host/arch35/acosh_grad_tiling_arch35.cpp:51-55、:112-137 | | code-review LOG-1(FAIL) | 两处裸 OP_LOGE("coreNum is 0"/"ubSize is 0") 替换为 OP_LOGE_FOR_INVALID_VALUE_WITH_REASON 结构化宏 | op_host/arch35/acosh_grad_tiling_arch35.cpp:63-68 | | code-review RED-1(SUSPICIOUS) | ubBlockSize 增加显式零值守卫(OP_LOGE_FOR_INVALID_VALUE_WITH_REASON) | op_host/arch35/acosh_grad_tiling_arch35.cpp:198-200 | | STYLE-2.1 | 两处超 120 字符行按运算符放行末折行 | op_host/arch35/acosh_grad_tiling_arch35.cpp:78-79;op_kernel/arch35/acosh_grad_kernel.h:90 | | STYLE-2.4 | Process() 单语句 if 补齐大括号 | op_kernel/arch35/acosh_grad_kernel.h:203-206 | | STYLE-3.3 | 删除开发阶段编号注释(Step 1-7、"// 1..7 步骤"、"迭代二"),关键约束并入函数头注释 | op_host/acosh_grad_def.cpp:17;op_host/arch35/acosh_grad_tiling_arch35.cpp:139-193;op_kernel/arch35/acosh_grad_kernel.h:163-177 | ### (二)资料修复 | 报告条目 | 修复内容 | 文件 | |---------|---------|------| | admission 1.4 / P1(FAIL) | README 补充动态 shape/动态 rank(rank 0~8)约束说明;DESIGN.md v1.1 同步 | math/acosh_grad/README.md:76;operator-artifacts AcoshGrad/DESIGN.md:133 | | admission X7 建议 | README 补充空 Tensor(元素数为 0 直接返回空结果)说明 | math/acosh_grad/README.md:77 | | code-review S4/S5/S6(设计一致性 ❌) | DESIGN.md v1.1 改文档迁就实现:GEIR-only 交付姿态(去除 ACLNN 接口、调用仅图模式);TilingData 简化为 3 字段(totalNum/blockFactor/ubFactor)单均分 + ubFactor 循环、末 tile 由 Kernel 处理;Tiling 算法对齐 CeilAlign/CeilDiv/FloorAlign/FloorDiv + GetUbBlockSize 实际实现 | operator-artifacts AcoshGrad/DESIGN.md:8、:60、:132、:159-169、:171-198 | | code-review D8(文档格式) | 5 处 "248 KB" 数字单位空格违规改为 248KB | operator-artifacts AcoshGrad/DESIGN.md:391-395、:454 | ### (三)用例补充 | 报告条目 | 修复内容 | 文件 | |---------|---------|------| | admission X2 / P2 | 私有格式异常 UT×3(014:y=NC1HWC0、015:dy=FRACTAL_NZ、016:z=FRACTAL_Z,均断言 GRAPH_FAILED) | math/acosh_grad/tests/ut/op_host/arch35/test_acosh_grad_tiling_arch35.cpp:344-400 | | admission P5(覆盖度缺口) | L2 异常用例 +7(dtype 异常 float64、rank 9 越界×3 dtype、NCHW 格式异常×3 dtype);功能缺口用例 +10(特殊值 ±0/inf/nan×3 dtype、空 Tensor×3 dtype、压力档、subnormal、minnormal、UB 整除) | operator-artifacts AcoshGrad/测试用例/acosh_grad_l2_exception.csv、acosh_grad_selected_100.csv | ## 三、逐 commit 摘要 ### 代码仓(ops-math,分支 acosh_grad_quality_hardening,自基线 9b3d87785 起) | commit | 主题 | 对应报告条目 | |--------|------|-------------| | f1922aaaa | 修复 acosh_grad 异常处理:LOG-1 裸 OP_LOGE 替换为 OP_LOGE_FOR_INVALID_VALUE_WITH_REASON、RED-1 ubBlockSize 增加零值守卫 | LOG-1、RED-1 | | 5693ed64d | acosh_grad 代码风格整改:STYLE-2.1 行宽超标换行、STYLE-2.4 if 补齐大括号、STYLE-3.3 清理开发阶段编号注释(STYLE-2.3 指针声明与本仓 clang-format PointerAlignment:Left 冲突,不修改) | STYLE-2.1、STYLE-2.4、STYLE-3.3 | | 84b76176b | README 补充动态shape/动态rank与空Tensor约束说明 | admission 1.4/P1、X7 建议 | | fbf57e745 | 修复 acosh_grad 格式校验:X2 tiling 显式拒绝私有格式(NC1HWC0/FRACTAL_Z 等,origin/storage 双查)+ 新增私有格式异常 UT×3 | admission X2/P2 | ### 交付件仓(operator-artifacts,本算子部分) | commit | 主题 | 对应报告条目 | |--------|------|-------------| | 625b165 | quality-hardening 19 算子批量修复(AcoshGrad 部分):DESIGN.md v1.1 设计同步(GEIR-only、TilingData 3 字段、简化切分、动态 shape、248KB 修正)+ 测试用例归档补齐(l2_exception +7、selected_100 +10) | S4/S5/S6(文档侧)、D8、P5 | 说明:交付件仓提交 8a47e70(第二轮补修)经核验不含本算子任何文件,本 PR 不涉及。 ## 四、测试与验证 - **编译**:本环境无 NPU/编译工具链,未执行实机编译(与准入报告一致,运行时证据项 UNAVAILABLE)。本批次代码改动均为语法级局部修改(宏替换、注释清理、大括号、折行、守卫新增),不触碰计算链路(Kernel Mul→Adds(-1)→Sqrt→Div 公式未变)。 - **UT(Tiling 侧)**:归档 16 条 Tiling UT(tests/ut/op_host/arch35/test_acosh_grad_tiling_arch35.cpp:69-400),覆盖大/小 shape、多核切分、非对齐、空 Tensor、5 类失败路径(shape 不一致、dtype 不一致、不支持 dtype、输入/输出 dtype 不一致)及新增私有格式异常 3 类(014-016,模拟 TilingContext 断言 GRAPH_FAILED)。未修项明细条目 2 亦引证"代码侧已有 16 条 Tiling UT 验证,功能正确性有证据"。 - **覆盖度复测**:admission 覆盖度报告(hardening-report/admission/coverage_report.md)为 2026-09-23 修复前快照——kernel 侧 4 文件 346 用例、85.7% PASS,缺口列示 UB整除、不支持 dtype 异常、shape/rank 异常×dtype、format 异常×dtype。本批次归档用例(l2_exception.csv +7、selected_100.csv +10)已逐一补齐上述全部列示缺口;覆盖度评估器(Step 7.5)未随修复重跑,复测得分待扫描器重跑后更新。 - **GEIR 实机 / TTK**:未执行(无 NPU/TTK,admission-report.md:60 标记 UNAVAILABLE);既有精度三方报告为 09-14 修复前版本产物,修复后实机回归证据待补(见未修项明细条目 4)。 ## 五、未完成事项与限制 本 PR 遵守三条禁区决策,以下事项不在本次修复范围: 1. **ACLNN 接口不新增**:本算子维持 GEIR-only 交付姿态(CMakeLists.txt:16 ACLNNTYPE=aclnn_exclude,admission 1.3 已确认 aclnn 通路豁免)。DESIGN.md v1.1 已与实现同步,但 REQUIREMENTS.md / req_analysis.md 需求基线("ACLNN 调用 [x]"、ACLNN API 接口定义章节)未同步——属需求变更,待需求侧决策,见未修项明细条目 1。 2. **产品支持矛盾不处理**:产品支持标记不新增/不撤销(admission 1.1 已 PASS,README 6 产品与代码双向一致;旧芯片 TBE ini [AcoshGrad] 段为存量迁移注册,E3 PASS,维持现状)。 3. **canndev 不改动**:本 PR 不含任何 canndev 修改(admission E3/E4 均 PASS,无 canndev 行动项)。 其余未完成事项与限制: 4. **S5/S6 简化方案缺架构背书**:Tiling 3 字段单均分方案(改设计文档迁就代码)无人工评审记录,待架构确认;若否决需恢复 former/tail 双块切分。见未修项明细条目 2。 5. **STYLE-2.3 豁免待裁决**:指针声明符左贴类型与本仓 .clang-format PointerAlignment: Left 冲突,修改会被 pre-commit 自动回退,已有意搁置(见 5693ed64d 提交说明)。见未修项明细条目 3。 6. **无 NPU/TTK**:GEIR 实机验证与 TTK 异常测试证据未执行(UNAVAILABLE),环境就绪后需补跑私有格式拒绝路径、examples 冒烟与精度三方回归。见未修项明细条目 4。 7. **admission P3 扫描器展示缺陷**:1.6 交付件一致性实际 PASS(verification_result.csv 双"一致")但被 scan_transfer_test.py 渲染为 N/A,属外置工具缺陷,随扫描器版本修复。见未修项明细条目 5。 完整未修项明细见:guide/未修项明细/acosh_grad_未修项明细.md(条目 1-5)。 See merge request: cann/ops-math!6196 | 20 天前 | |
math仓算子适配350 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !5906 merge master into master math仓算子适配350 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 math仓算子适配350 ## 关联的Issue [math仓算子适配350](https://gitcode.com/cann/ops-math/issues/3463) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5906 | 23 天前 | |
Kirin X90/9030支持Cast/Mul/Transpose/Add/ConcatD/StridedSlice算子 Co-authored-by: chenlong1<chenlong1@huawei.com> Co-authored-by: jinzy1999<jinzy@pku.edu.cn> # message auto-generated for no-merge-commit merge: !6581 merge master into master Kirin X90/9030支持Cast/Mul/Transpose/Add/ConcatD/StridedSlice算子 Created-by: chenlong1 Commit-by: chenlong1;jinzy1999 Merged-by: cann-robot Description: ## 描述 Kirin X90/9030支持Cast/Mul/Transpose/Add/ConcatD/StridedSlice算子 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3790 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6581 | 4 天前 | |
fix(add_lora): reserve 310p index sentinel slots (issue #3485) Co-authored-by: qiansunchi<qiansunchi@huawei.com> # message auto-generated for no-merge-commit merge: !6954 merge fix/add-lora-310p-index-boundary into master fix(add_lora): reserve 310p index sentinel slots (issue #3485) Created-by: qiansunchi159 Commit-by: qiansunchi Merged-by: cann-robot Description: ## 描述 修复 310P 上 AddLora 在 wBatch == 32 时访问共享数组下标 32 越界的问题。将相关共享数组扩展为 MAX_WEIGHT_SIZE + 1,保留 32 组 LoRA 支持,并为边界哨兵下标留出空间。 ## 关联的 Issue Closes #3485 ## 测试 - CPU 索引 harness:修复前复现下标 32 越界,修复后 12,928 个用例通过。 - 定向 pre-commit:通过。 ## 文档更新 无 ## 类型标签 - [x] Bug修复 See merge request: cann/ops-math!6954 | 2 天前 | |
fix(add_mat_mat_elements): 优化连续搬运并补齐图场景 Co-authored-by: babeiee<125106023003@njust.edu.cn> # message auto-generated for no-merge-commit merge: !6805 merge fix/add-mat-mat-elements-arch35-validation-master into master fix(add_mat_mat_elements): 优化连续搬运并补齐图场景 Created-by: babeiee Commit-by: babeiee Merged-by: cann-robot Description: ## 变更 - 优化 Ascend 950 CopyInBrc 无广播连续输入搬运,将 rank>5 场景的大量 tiny NDDMA 调用合并为单次 DataCopyPad。 - 补齐 rank-0 标量输入、输出 shape/rank 推导的 Host UT,并清理不存在的 ACLNN/TensorFlow 说明。 - 扩展 GEIR 示例,覆盖格式转换、输出描述符推导和可选 device;修正 rank-7 NCHW 的过时拒绝预期。 - 按社区 README 模板补充动态 shape、图格式转换和显式 Cast 契约。 ## 验证 - Host UT:16/16 PASS(Tiling 8/8,InferShape 8/8)。 - Kernel UT:2/2 PASS。 - 优化后 regular Kernel L0:56/56 precision、GPU reference、OOB PASS。 - 同一 52 条 L0 性能集逐例复测:非目标 51 条无性能回退;L0_041 A5 mean 由 7811.33 us 降至约 944 us,约 8.27x 加速。 - 全量 L1:515/515 A5 precision、OOB、profiling PASS;512/515 Torch 数值参考 PASS,3 条超大样例因 容量不足改用同一 NumPy Golden 复核 PASS。 - 显式 Cast GE 图:S1/S3/S5 bit-exact,N1 混合 dtype 正确拒绝,动态非 product=1 广播 512/512 exact。 - GEIR rank-7 NCHW:source/binary × Const/Dynamic 均 100% precision PASS;两份提交示例在 device 2 实跑成功。 - 提交钩子:clang-format、codespell、OAT 等全部 PASS;git diff --check PASS。 ## 已知边界 - TTK 仍会将逻辑 rank-0 shape () 归一化为 (1,);算子 Host Tiling 的 rank-0 行为已由直接 UT 覆盖。 - 3 条超大 L1 缺少 timing,归因为 容量,不是 A5 执行或精度失败。 - L2 Large 工作流 DAG 自动调度验证不属于本 PR 的算子实现改动。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/4218 See merge request: cann/ops-math!6805 | 3 天前 | |
math仓addn算子tilingubsize大小修改 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !6917 merge master into master math仓addn算子tilingubsize大小修改 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 改动原因 math/add_n 算子在 arch35 下的 tiling 中,fullload(TILINGKEY_FULLLOAD)策略的判定使用整个 ub 容量 ubSize_ 作为上界。当设备 ub 空间较大时,会让更多输入进入 fullload 分支,导致单 block 一次性加载的数据量过大,占用过多 ub 空间。为控制 fullload 策略下的数据加载量、避免 ub 占用过高,需要给该判定加上限。 ## 改动方法 在 math/add_n/op_host/arch35/add_n_tiling_arch35.cpp 的 AddNTiling::SetTilingKey() 中: - 新增常量 ADDN_UNIFIED_FULLLOAD_UB_SIZE = 184 * 1024(184KB),作为 fullload 判定使用的 ub 上限; - 将原判定条件中的上界 ubSize_ 替换为 fullLoadUbSize = std::min(ubSize_, ADDN_UNIFIED_FULLLOAD_UB_SIZE),即 fullload 判定同时受实际 ub 容量与 184KB 上限约束; - 相应引入 <algorithm> 头文件以使用 std::min。 改动后,仅当 (sizeN_ + 1) * sum2 * dtypeSize_ 小于该受限上界时才走 fullload 分支,从而限制 fullload 策略下的数据加载量。 ## 关联的Issue https://atomgit.com/cann/ops-math/issues/4371 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 二级冒烟:add_n 算子相关用例通过; - 算子泛化:add_n 相关泛化用例通过,功能与精度符合预期; - 受影响文件仅 math/add_n/op_host/arch35/add_n_tiling_arch35.cpp,fullload 分支命中策略变化,未命中 fullload 的分支行为保持不变。 ## 文档更新 本次为 tiling 内部参数调整,不改变算子对外接口与行为说明,暂无文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6917 | 3 天前 | |
fix: harden July math operators and relocate MulNoNan dtype inference Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !6533 merge fix/july-five-ops-hardening-20261020 into master fix: harden July math operators and relocate MulNoNan dtype inference Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 TensorRedirect示例以字节填充生成FLOAT数据,且未完整设置Data输出描述、校验输出和传播文件写入错误;AddV2示例的两个Data使用相同索引,也未把输出校验和文件写入结果作为成功条件。本次修正这些路径,补齐相关资源清理,使示例在结果或文件写入异常时返回失败。 同步将TensorRedirect在Ascend 950PR&950DT系列产品上的rank描述对齐为[0,8],包括标量;AddV2约束说明对齐其参数表和实际支持类型。 基于主仓master 21854b2844e6d65ceecd2de0c7cb65efa44e41de,前次两算子修订受测提交:44980699fb1a7d5df1d5fd1a0d5b23141183ce40。 **MulNoNan:编译信息布局、CPU参考及GE示例** - math/mul_no_nan/op_host/arch35/mul_no_nan_tiling_arch35.h:用Ops::Base::BroadcastCompileInfo替代私有两字段结构。原结构为16字节,而BroadcastBaseTiling在平台对象为空时按带isAscendC字段的24字节结构读取,存在coreNum错位及ubSize越界读取风险;统一类型后沿用既有TilingPrepare初始化逻辑。现有Host UT的聚合初始化同步增加isAscendC字段。 - tests/assets/golden.py:CPU参考改用PyTorch乘法和where,移除Kernel/GEIR路径对TensorFlow的导入依赖;浮点中间值使用float64,普通模式回传原dtype,Promote模式保留高精度;INT32保留原生整数乘法回绕,x2为0时仍严格选择0。TensorFlow E2E原有注册与默认CPU回退保持原样。 - examples/arch35/test_geir_mul_no_nan.cpp:四种dtype的输入缓冲使用unique_ptr,检查分配和SetData;第二Data索引改为1并补齐输出描述;检查Session创建;严格核对输出数量、完整shape、dtype、缓冲大小和所有数值。保留原有27个场景,新增--list和单场景选择,并按仓库要求格式化。 - examples/arch35/CMakeLists.txt:新增独立GE示例构建配置,按ASCEND_HOME_PATH查找本套CANN的头文件及GE库。 - README与Proto:将950产品rank≤8限定到产品差异说明,补充GE空Tensor输出语义;将不存在的tf.math.multiply_no_nans改为tf.math.multiply_no_nan并区分浮点对应关系和INT32扩展;统一dtype标点及GE图模式入口。其他产品支持标记不变。 **MulNoNan:接手推导注册迁移** - dtype推导从op_host/mul_no_nan_infershape.cpp迁入op_graph/mul_no_nan_graph_infer.cpp,增加空context、两个输入dtype一致性检查,并返回输出dtype写入状态。 - 原4条dtype UT随注册移动至Graph测试目录,增加混合dtype拒绝用例。既有广播shape、编译信息修复、PyTorch golden和27场景示例保留,未修改Kernel算法。 - 仅导入源PR #6548中的MulNoNan部分;RaggedBinCount的3个文件没有导入,也不改写或关闭包含该排除项的原PR:https://gitcode.com/cann/ops-math/pull/6548。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3692 ## 测试 2026-10-21文档精简提交de3b179a823a7a9aa20e5813c9d74d680edf7b94:完成本次范围的README检查、链接/调用表渲染、diff及提交钩子检查;确认相对上一提交仅README变化,未重跑NPU、TTK或构建。此前设备验证仍归属原受测提交。 **接手合并后验证** - 受测提交:b0526c4e37ee8ba6abbab528e5adba66c7c02caa;定向JIT包构建/部署通过,构建并行度≤8。 - 当前普通CANN环境下,MulNoNan 6条用例、静态/动态12次执行通过:FP32/FP16/BF16/INT32等形、标量、交叉广播;混合dtype1条到达GE并由当前包的存量MulNoNanVerify按预期拒绝,不计作新V2 dtype分支执行覆盖。 - 使用July本地TTK 92496503b70e2e05892d15dd5b78d1f80eae77df、算子仓golden、已核对哈希的冻结输入,显式--pc=1,Promote/stat_rel_err;未使用LD_PRELOAD或注册屏蔽。 - 另有相同6条/12次诊断执行通过,用于迁移入口排查,独立标记,不能替代正式canndev产品包验证。配套canndev PR:https://gitcode.com/cann/canndev/pull/82602,目前受内部SDK依赖阻塞。 - 本次pre-commit/OAT、diff核对通过;MulNoNan示例/文档在本阶段未再修改,原27场景记录继续对应下述补扫提交。本次未重跑Host/Graph UT或全量本地CI。 补扫阶段受测提交:129d2d00dac66ed7d351ad5691dd2fd80b2c3171。以下该阶段结果保持原始归属,不重复计作接手后重跑。 **本次MulNoNan补扫验证** - build.sh --pkg --jit --soc=ascend950 --ops=tensor_redirect,add_v2,mul_no_nan -j8构建及定向vendor部署通过。 - TTK GEIR正向8/8:FP32、FP16、BF16、INT32、双向广播、标量、rank=8和空Tensor。 - TTK动态GEIR普通FP32 1/1通过。 - TTK GEIR特殊值4/4:三种浮点dtype覆盖NaN/Inf乘零、负零、仅x2判零及非零乘法传播;INT32覆盖边界溢出回绕。适配器调用仓内golden并对固定数学期望、返回dtype和Promote结果作独立断言。 - 最终GE示例27/27场景通过,逐场景独立进程执行;错误场景名和多余参数两条负向调用返回预期255。 - 补扫阶段的4条构建调用命令均实际执行通过;产物与27个场景验证使用的二进制哈希一致。pre-commit、OAT及文档检查通过。 - Host UT源码同步适配结构初始化,未单独执行;本次未运行全量本地CI、性能测试或其他产品验证。 **此前已交付算子的验证记录(对应此前受测提交)** 环境:Ascend950PR_9579,CANN 9.3.0~weekly.20260923.01,Python 3.12.9,TTK 92496503b70e2e05892d15dd5b78d1f80eae77df。构建并行度不超过8,TTK均显式使用--pc=1。 - build.sh --pkg --jit --soc=ascend950 --ops=tensor_redirect,add_v2 -j8构建及部署通过。 - TTK GEIR正向8/8:TensorRedirect覆盖标量、rank=8、普通及空Tensor;AddV2覆盖普通、广播、标量及空Tensor。 - 两个交付GE示例均原样编译、在NPU运行并退出0;校验shape/dtype,TensorRedirect逐bit比较输出,AddV2逐元素检查预期4.0。 - 两个示例分别将输入dump目标预置为目录,图执行成功后文件打开失败,程序均按预期返回255。 - pre-commit、全部5个修改文件的OAT和git diff --check通过;README链接、产品行、参数能力并集及渲染结构检查通过。 ## 文档更新 MulNoNan README删除多余的编译运行段落及场景选择说明,保留原有调用表、示例和算子IR链接。示例源码、CMake配置及算子实现未变。 新增算子的逐文件文档修订见上文;已按本次文档与示例指引核对产品完整名称、能力并集、链接、围栏和渲染,运行全部修改后的示例场景。40条原始扫描记录已逐项处置:对缺少其他产品实现、基线INI shape=all或私有format等证据不足项,保留既有支持信息和当前框架限制,不据此修改注册范围。 TensorRedirect的950产品rank及Proto说明对齐当前实现和标量用例,其他产品既有rank说明保留。AddV2明确不支持DOUBLE/COMPLEX128并指向既有产品差异说明。其他产品的运行行为未在本次设备上认证。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6533 | 11 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
修复issue的问题 Co-authored-by: sakuraqqz<furao15@h-partners.com> # message auto-generated for no-merge-commit merge: !6812 merge master into master 修复issue的问题 Created-by: sakuraqqz Commit-by: sakuraqqz Merged-by: cann-robot Description: ## 描述 本 PR 修复 6 个算子问题,均为 Bug 修复(含 1 项文档修正): 1. **is_inf 尾块越界读写(#3925)**:数据长度不足 32B 对齐时,尾块原先按 32B 整倍搬运导致 GM 越界读/写。修复为整块用 DataCopy、尾块用 DataCopyPad 按真实字节搬运,ComputePerCore 尾块输出按真实计数写出。math/is_inf/op_kernel/is_inf.h。 2. **addcmul value=NaN 走错快路径(#3894)**:IsEqualToOne 对 NaN 判等为 true(所有比较均 false 取反),导致 value=NaN 时误走 AxpyV2 快路径、缺失 value 项。修复为显式排除 NaN。math/addcmul/op_api/aclnn_addcmul.cpp。 3. **cdist 非法 shape 返回码(#3929)**:out 形状与推导不匹配时返回内部空指针错误 561103,修复为在 GetWorkspaceSize 增加 out 期望形状校验,返回标准参数错误 161002。math/cdist/op_api/aclnn_cdist.cpp。 4. **div 非法参数返回码(#3962)**:日志错误码与返回码不一致,统一返回 161002。math/div/op_api/aclnn_div.cpp。 5. **VarMean 文档矛盾(#4182)**:中英文档 self 维度列由 1-8 修正为 0-8(与「shape 支持 0 到 8 维」及 meanOut/varOut 的 0-8 保持一致);参数表 varOut/meanOut 行序与原型(varOut 为第 5 参、meanOut 为第 6 参)对齐。math/reduce_var/docs/。 6. **LinSpace legacy tiling 丢失 INT64 num 精度(#3347):** LinSpaceGetConstValue 的 DT_INT64 分支先将 int64_t 经 float 转换,num=16777219 被舍入为 16777220,与 InferShape 输出维度不一致;修复为直接读取 int64 数值、经 double 无损保留。math/lin_space/op_host/lin_space_tiling.cpp。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3925 - https://gitcode.com/cann/ops-math/issues/3894 - https://gitcode.com/cann/ops-math/issues/3929 - https://gitcode.com/cann/ops-math/issues/3962 - https://gitcode.com/cann/ops-math/issues/4182 - https://gitcode.com/cann/ops-math/issues/3347 ## 测试 910B3 / CANN 9.3.0 上板验证(2026-10-29): - **is_inf**:尾块用例长度 17/25/31/33/40(非 32B 对齐),尾部放置 inf/-inf/nan,输入输出 buffer 后 64B 金丝雀检测越界,5 组全部 PASS 且无越界读写。 - **addcmul**:value=NaN → out=NaN(修复前误得 7.0);value=1.0/2.0 回归正常。 - **cdist**:out 形状不匹配返回 161002,合法形状返回 0。 - **div**:shape 不匹配/非法 mode 均返回 161002。 - **VarMean**:issue 复现脚本实测命中 0 处(纯文档改动,无需上板)。 - **LinSpace**:tiling data 中 num=16777219 保留、InferShape 输出 [16777219](num=17 对照),Host UT 6/6 PASS,基线回归证实旧实现舍入为 16777220。 ## 文档更新 - math/reduce_var/docs/aclnnVarMean.md、math/reduce_var/docs/aclnnVarMean_en.md(维度范围与参数顺序修正)。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6812 | 3 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
feat: Adds、Expand、BroadcastTo、Tile、GetShape算子新增ascend960dt平台支持 Co-authored-by: tan_xin<tanxin44@huawei.com> # message auto-generated for no-merge-commit merge: !5447 merge master-v121 into master feat: Adds、Expand、BroadcastTo、Tile、GetShape算子新增ascend960dt平台支持 Created-by: tan_xin Commit-by: tan_xin;t00850857 Merged-by: cann-robot Description: ## 描述 为 Adds、Expand、BroadcastTo、Tile、GetShape 五个算子新增 ascend960dt 平台支持,使其可在 ascend960dt(Ascend960DT_968B7)芯片上完成编译与调用。主要改动: ### 算子定义与编译配置 - 各算子 op_host 定义文件(adds_def.cpp、expand_def.cpp、broadcast_to_def.cpp、tile_def.cpp、get_shape_def.cpp)通过 AICore().AddConfig("ascend960dt", ...) 注册平台配置 - 各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 增加 "ascend960dt",tiling 目录沿用 arch35;get_shape 的 kernel 源码 COMPUTE_UNITS 同步增加 ascend960dt - 新增各算子 ascend960dt 平台二进制编译配置 op_host/config/ascend960dt/*_binary.json 与 *_simplified_key.ini(simplified_key_mode=0) - ascendc_config.json 中 Adds、BroadcastTo、Tile 的 compute_units 增加 ascend960dt,并配置对应编译选项 ### 公共构建配置 - 顶层 CMakeLists.txt 的 ASCEND_ALL_COMPUTE_UNIT 增加 ascend960dt - scripts/build.conf.sh 的 SUPPORT_COMPUTE_UNIT_SHORT 增加 ascend960dt - scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 增加 [Ascend960DT]="Ascend960DT_968B7" ### op_api 适配 - expand:aclnn_expand.cpp 的 dataTypeSupportedMap 与 expand.cpp 的 IsAiCoreSupport 增加 NpuArch::DAV_9201 分支,数据类型支持列表沿用 ASCEND910B(FLOAT、FLOAT16、INT32、UINT8、INT8、BOOL、BF16、INT64) - 公共头文件 aclnn_check.h:IsRegBase 的 regbaseArch 集合增加 NpuArch::DAV_9201、NpuArch::DAV_9202;其余为 clang-format 格式整改 ## 关联的Issue - #3561 ## 测试 - 已通过 pre-commit 检查(clang-format 格式、codespell 拼写、文件末尾换行整改,见提交记录) ## 文档更新 - 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5447 | 20 天前 | |
feat: bincount/adjacent_difference 新增 ascend960dt/ascend960pr 注册级支持 Co-authored-by: caorenlei<caorenlei@huawei.com> # message auto-generated for no-merge-commit merge: !6388 merge 1010 into master feat: bincount/adjacent_difference 新增 ascend960dt/ascend960pr 注册级支持 Created-by: caorenlei Commit-by: caorenlei Merged-by: cann-robot Description: ## 描述 bincount、adjacent_difference 两算子新增 ascend960dt/ascend960pr 平台注册级支持(v121 适配)。 ### 改动原因 Ascend960 系列平台上线,算子需同步支持 ascend960dt/ascend960pr 计算单元;适配增量同步自内部仓 cann_out 分支,在 OSS master 基线上叠加。 ### 改动方法(注册级适配,kernel/tiling/aclnn 零改动) 1. **def.cpp 注册**(2 文件):bincount_def.cpp、adjacent_difference_def.cpp 在既有 AddConfig("ascend950"/"ascend350") 后追加 AddConfig("ascend960dt", aicoreConfig) 与 AddConfig("ascend960pr", aicoreConfig),复用同一 aicoreConfig,保留 ascend350 注册不删 2. **config 配置**(8 个新增文件):新增 op_host/config/ascend960dt/、op_host/config/ascend960pr/(2 算子 × 2 芯片 × binary.json + simplified_key.ini),内容与既有 ascend950 配置逐字节一致 3. **CMakeLists**(2 文件):SUPPORT_COMPUTE_UNIT 追加 "ascend960dt" "ascend960pr",SUPPORT_TILING_DIR 等量追加 "arch35"(tiling 复用 arch35) 4. **ascendc_config.json**:Bincount、AdjacentDifference 条目 compute_units 追加 "ascend960dt",compile_options 镜像 ascend950(-mllvm -cce-aicore-dcci-before-kernel-end=false) 5. **.pre-commit-config.yaml**:codespell 忽略列表追加 build-in(config 镜像中 ascend950 既有注释拼写,内容须与 950 逐字节一致不可修改) ## 关联的Issue - #3598 ## 测试 1. **ascend950 编译出包**:bash build.sh --pkg --soc=ascend950 --ops=bincount,adjacent_difference -j8 通过;包内 950 内核齐全(23 个 .o),aic-ascend960dt-ops-info.json 含 Bincount、AdjacentDifference 注册(960 注册生效核验) 2. **950 kernel 零影响硬证据**:适配前后两次编译,23 个 ascend950 kernel .o SHA256 逐字节一致(bit 级不变) 3. **ttk 精度回归 386/386 全 PASS**(Ascend950PR_9579,release 模式,seed=123): - bincount(kernel 级)192/192、adjacent_difference(kernel 级)81/81、aclnnBincount(API 级)113/113 - 正控 PASS / 负控 FAIL,判定链路自证有效 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6388 | 17 天前 | |
fix(math): 修正equal/frac/affine_grid算子文档与头文件描述对齐实现 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !6852 merge fix_MD_1029 into master fix(math): 修正equal/frac/affine_grid算子文档与头文件描述对齐实现 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 本 PR 汇总修正 4 处 math 算子文档/头文件注释与实现不一致的问题,均为描述性修正,不涉及代码逻辑改动: 1. **aclnnIsInScalarTensor**(math/equal/docs/aclnnIsInScalarTensor.md 及英文版):out 参数说明由「shape与testElements相同」修正为「0维标量」,维度列改为 0,并同步修正错误码表 161002 子项为「testElements的维度超过8维」「out的维度不是0维」,对齐实现 OP_CHECK_WRONG_DIMENSION(out, 0),消除文档自相矛盾。 2. **aclnnInplaceFrac**(math/sub/docs/aclnnFrac&aclnnInplaceFrac.md):inputRef 参数角色由「输入」修正为「输入/输出」,补充「计算结果原地写回该tensor」语义说明。 3. **aclnnAffineGrid**(math/affine_grid/docs/aclnnAffineGrid.md):错误码表 161002 新增「theta为空tensor」子项(对齐实现空 tensor 校验);约束说明补充「size中的C不参与计算,对取值无约束」。 4. **aclnnFrac**(math/sub/op_api/aclnn_frac.h):头文件注释三处 dtype 声明补齐 BFLOAT16,并注明「在Atlas训练系列产品上不支持该数据类型」,对齐资料与实现(A2/A3/950 支持 BF16,Atlas 训练系列不支持)。 ## 关联的Issue - #4109(aclnnIsInScalarTensor out shape 描述与实现矛盾) - #4134(aclnn_frac.h 头文件 dtype 声明缺 BFLOAT16) - [#4124](https://gitcode.com/cann/ops-math/issues/4124) - [#4129](https://gitcode.com/cann/ops-math/issues/4129) ## 测试 本次改动均为文档/注释修正,不涉及代码逻辑,无运行测试需求。 相关行为已由实现侧真机验证:aclnnIsInScalarTensor 在 A2 910B2 上 out 为 0 维标量正常返回(161002 仅在 out 非 0 维时上报);aclnnFrac 的 BFLOAT16 在 A2 上 407 条用例全部通过。 ## 文档更新 - math/equal/docs/aclnnIsInScalarTensor.md - math/equal/docs/aclnnIsInScalarTensor_en.md - math/sub/docs/aclnnFrac&aclnnInplaceFrac.md - math/affine_grid/docs/aclnnAffineGrid.md - math/sub/op_api/aclnn_frac.h(doxygen 注释) ## 类型标签 - [x] Bug修复 - [x] 文档更新 - [ ] 新特性 - [ ] 性能优化 - [ ] 其他,请描述: See merge request: cann/ops-math!6852 | 3 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 1 个月前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
docs: 修复math算子文档错误码表缺项并对齐数据类型约束与实现 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !6765 merge fix_mathMD_1028 into master docs: 修复math算子文档错误码表缺项并对齐数据类型约束与实现 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 本次PR针对多个math算子文档与实现不一致或错误码表缺项的问题进行修复,共涉及6份算子文档: 1. aclnnMaxDim:错误码表161002补充"self、out、indices维度大于8时"子项,与参数表维度0-8说明对齐; 2. aclnnBitwiseXorTensor:删除out不支持UINT16/UINT32/UINT64/COMPLEX64/COMPLEX128的约束描述,对齐实际实现的放行行为; 3. aclnnFloor:删除非连续Tensor列UINT16/UINT32/UINT64不支持的无效约束(A2真机实测非连续输入均正常支持); 4. aclnnLeScalar/aclnnLeTensor:补充out、selfRef不支持UINT32/UINT64的平台约束(910/310p、A3/910b),并合并到既有平台约束块; 5. aclnnNeTensor:补充Atlas A2/A3系列self、other不支持UINT64的约束说明(A2真机验证放开校验会产生错误结果,当前拒绝行为是安全的)。 ## 关联的Issue - #3884:aclnnMaxDim错误码表缺少维度大于8子项 - #3881:aclnnBitwiseXorTensor文档声明out不支持UINT16/UINT32/UINT64/COMPLEX64/COMPLEX128与实现不符 - #3883:aclnnFloor文档多写非连续Tensor不支持UINT16/UINT32/UINT64约束 - #3853:aclnnNeTensor A2平台UINT64支持说明与实现不符 - #3889:aclnnLeTensor/aclnnLeScalar out支持UINT32/UINT64与实现不符 ## 测试 本次为纯文档修改,无代码变更。各文档改动均经实现代码(dtype支持列表、校验逻辑)静态核对,并对以下场景在A2真机验证: - aclnnFloor非连续UINT16/UINT32/UINT64输入6组用例全部成功且结果正确; - aclnnNeTensor UINT64放开校验后输出全假并伴随堆内存损坏,确认kernel未实现UINT64模板,以文档约束闭环; - aclnnBitwiseXorTensor COMPLEX64/COMPLEX128输出语义验证通过。 ## 文档更新 - math/arg_max_with_value/docs/aclnnMaxDim.md - math/bitwise_xor/docs/aclnnBitwiseXorTensor&aclnnInplaceBitwiseXorTensor.md - math/floor/docs/aclnnFloor&aclnnInplaceFloor.md - math/less_equal/docs/aclnnLeScalar&aclnnInplaceLeScalar.md - math/less_equal/docs/aclnnLeTensor&aclnnInplaceLeTensor.md - math/not_equal/docs/aclnnNeTensor&aclnnInplaceNeTensor.md ## 类型标签 - [x] 文档更新 See merge request: cann/ops-math!6765 | 4 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
fix(asin_grad): 修复shape逐维校验等交付问题,并新增ascend350平台支持 Co-authored-by: qq_41311449<baihao29@huawei.com> # message auto-generated for no-merge-commit merge: !6575 merge master into master fix(asin_grad): 修复shape逐维校验等交付问题,并新增ascend350平台支持 Created-by: qq_41311449 Commit-by: qq_41311449 Merged-by: cann-robot Description: ## 描述 1. 交付问题修复(FR-01/12/13/14/09/N-01) - FR-01(核心修复): tiling 新增 ShapesExactlyEqual 逐维校验(op_host/arch35/asin_grad_tiling_arch35.cpp:56),原先只比较 GetShapeSize() 会放行元素总数相同但维度排列不同的输入(如 y=2,3 vs dy=3,2),现 y/dy/z 必须逐维完全相同,并补 4 条 UT 覆盖 - FR-12: golden.py fp32 分支按输入 dtype 计算,0 维输入不再被提升为 float64 - FR-13: examples 两份副本按 dtype 宽度构造输入缓冲(fp16/bf16 位级转换),修正 y 值域注释 - FR-14: 3 个 CMakeLists 许可头换为 OAT 认可模板,代码 clang-format/ruff-format 格式化 - FR-09/N-01: README 调用说明改为 GE图模式并链接 asin_grad_proto.h;产品表 Atlas 200I/500 A2 由 √ 改为 × 2. ascend350 平台适配(参照 cann/ops-cv#1747 及同族算子 acos_grad 做法) - CMakeLists 增加 ascend350 计算单元与对应 tiling 目录 - asin_grad_def.cpp 追加 AddConfig("ascend350", aiCoreConfig) 3. 验证结论 - host UT 15/15 PASS(950/350 各一轮);TTK 冻结回归 L0 44 例、L2 16 例逐字段一致;pre-commit 12/12 通过 - --pkg --soc=ascend350/950 均构建成功,350 包含 kernel 及 ops-info 注册 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6575 | 9 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
docs: 修正 math 算子 README 文档中的描述与数据类型说明 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !6158 merge 3246 into master docs: 修正 math 算子 README 文档中的描述与数据类型说明 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 修正 math 目录下 13 个算子 README.md 文档中的描述问题,提升文档准确性与术语一致性,具体包括: - 数据类型说明修正: abs 输出类型列表去掉重复的 FLOAT16、FLOAT,改为 COMPLEX32、COMPLEX64;assign_sub 修正拼写 BFOAT16 → BFLOAT16。 - 属性名拼写修正:hans_encode 的 reshuff → reshuffle。 - 术语大小写统一:arg_min 的 infershape → InferShape;reduce_all 的 tenor → Tensor。 - 表述/用词修正:add_n 的"主元素相加"→"逐元素相加";add_lora 的"Lora"→"LoRa";cholesky 的"需为"→"须为";cosine_similarity 的"显示指定"→"显式指定";cumsum 的"累计求和"→"累积求和";lgamma 的"输入张量x1"→"输入张量x";mul_addn 表述精简;asinh_grad 的"通过图模式方式调用"→"通过图模式调用"。 ### 改动原因 文档中存在错别字、术语拼写与大小写不统一、数据类型说明错误等问题,影响可读性与准确性。 ### 改动方法 逐文件校对并修正上述 README.md 中的文本与类型说明,仅涉及文档,不改变任何代码逻辑。 ## 关联的Issue #3426 ## 测试 文档变更,无需代码测试。 ## 文档更新 更新 math 目录下以下 13 个 README.md: math/abs、math/add_lora、math/add_n、math/arg_min、math/asinh_grad、math/assign_sub、math/cholesky、math/cosine_similarity、math/cumsum、math/hans_encode、math/lgamma、math/mul_addn、math/reduce_all ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6158 | 25 天前 | |
math仓121算子迁蓝 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5762 merge master into master math仓121算子迁蓝 Created-by: qq_52874943 Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 math仓部分121算子黄迁蓝,只进行960dt适配,以及算子二进制补充,不动kernel和tiling代码。 ## 关联的Issue 关联Issue[#3650](https://gitcode.com/cann/ops-math/issues/3650) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5762 | 14 天前 | |
math仓121算子迁蓝 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5762 merge master into master math仓121算子迁蓝 Created-by: qq_52874943 Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 math仓部分121算子黄迁蓝,只进行960dt适配,以及算子二进制补充,不动kernel和tiling代码。 ## 关联的Issue 关联Issue[#3650](https://gitcode.com/cann/ops-math/issues/3650) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5762 | 14 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
fix: 修复AtanGrad算子异常场景拦截不符合预期 Co-authored-by: dong-yanrong<dongyanrong@h-partners.com> # message auto-generated for no-merge-commit merge: !6612 merge dev_atan_grad into master fix: 修复AtanGrad算子异常场景拦截不符合预期 Created-by: dong-yanrong Commit-by: dong-yanrong Merged-by: cann-robot Description: ## 描述 AtanGrad_l2算子部分异常场景拦截不符合预期 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4250 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6612 | 4 天前 | |
[Atanh] 修复公开格式误拦截及 Arch35 GEIR 示例编译问题 Co-authored-by: yourealize<chenzhanxi1@huawei.com> # message auto-generated for no-merge-commit merge: !6832 merge codex/atanh-remove-format-checks-20261029 into master [Atanh] 修复公开格式误拦截及 Arch35 GEIR 示例编译问题 Created-by: yourealize Commit-by: yourealize Merged-by: cann-robot Description: ## 描述 Atanh Arch35 tiling 将输入、输出格式限制为 ND,Torch 传入连续的 NCL、NCHW、NCDHW 描述时会报 EZ0017,导致性能问题记录中的 9 条用例无法执行。删除输入、输出两处 ND 格式校验,并补充 ND 与这些公开格式的 12 组输入、输出组合单测。 Arch35 GEIR 示例引用 ../op_graph/atanh_proto.h,相对于 examples/arch35/ 会解析到不存在的 examples/op_graph/,导致编译失败。将其改为 ../../op_graph/atanh_proto.h,同时按 pre-commit 要求规范该示例的许可证头和格式;除 include 路径外,示例的 C++ token 序列保持一致。 ## 关联的Issue - 质量加固跟踪:https://gitcode.com/cann/ops-math/issues/4241 (Atanh Host/API 参数校验、错误码与测试参考不完整)。 - 性能问题及复测用例来源:https://gitcode.com/wangyueting/changwei_yezhao/issues/17 ## 测试 - 删除格式校验后,原来失败的 9 条用例(001、006、007、008、014、018、021、025、031)均通过原始 torch.atanh 调用及全量精度检查;每条采集 100 次 Level0 profile,并确认加载 math 仓实现。 - 5 项相关 host 单测通过,覆盖公开格式、非法 dtype、shape 和元素数量。公开格式回归在原版 tiling 上失败,在修复版上通过。 - CANN 9.1.0-beta.1 / ascend950 的 Atanh 单算子 Host/API、kernel 编译和 .run 打包通过。 - 使用仓库 GEIR runner 相同的 include 与链接参数,Arch35 原文件在修复前复现头文件找不到;修复后的 math/atanh/examples/arch35/test_geir_atanh.cpp 实际源码编译、NPU 图执行均返回 0。默认 complex128、shape [2, 3] 的 6 个输出与 Python cmath.atanh 逐元素比对通过,最大绝对误差约 2.78e-17。该结果验证示例编译与图执行,不代表 AICore dtype 覆盖。 - 追加修复后,三个改动文件的完整 pre-commit 检查通过,包括 clang-format、OAT;git diff --check 通过。tiling 和相关单测源码保持九条重测时的版本,GEIR 示例与单独编译运行通过的版本一致。 - 已知环境问题:完整 host 单测中的 NullContextReportsStageErrorOnce 未收到预期 EZ1008 记录,修改前 tiling 也复现同样失败;其余 5 项通过。GE 初始化另有 SDK 内置 opgraph_nn/opgraph_transformer 缺少 EsCast/EsTranspose 的日志,Atanh 图执行与输出检查均通过。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6832 | 2 天前 | |
fix(proto): 修复39个算子proto.h注释的拼写与语法错误 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !5815 merge fix/proto-comment-grammar into master fix(proto): 修复39个算子proto.h注释的拼写与语法错误 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 对 39 个算子的 op_graph/*_proto.h 注释做拼写与语法修复,仅注释与格式变更,不涉及任何代码逻辑: - **拼写错误**:select_v2 condittion→condition(2处)、axpy_v2 opratioan→operation、clip_by_value 英文 dtype 列表中的全角逗号改半角 - **系统性语法(历史模板复制扩散)**:Support broadcasting→Supports broadcasting(27个文件)、A ND→An ND(33个文件97处) - **单文件语法修复 71 处(含 signbit returns→Returns、axpy should→Should 两处句首大写补漏)**:ger has→have、addcmul/addcdiv multiply→multiplies、muls An required→A required、equal (x=y)→(x1==x2)、Elementwise→Element-wise、bias_add/lerp/gcd 语序与冠词修复、aicore→AiCore、mod/floor_mod 矛盾表述统一、句首大小写与标点空格等 - 附带 pre-commit 钩子强制规范化(clang-format 重排、尾随空白、文件末尾换行),并保留各文件原有行尾风格(CRLF/LF) 涉及算子:add/sub/mul/muls/div/real_div/floor_div/div_no_nan/pow/minimum/maximum/signbit/less/less_equal/greater/greater_equal/not_equal/equal/bias_add/squared_difference/lerp/logical_and/logical_or/bitwise_or/bitwise_and/bitwise_xor/tanh_grad/axpy/axpy_v2/addcmul/addcdiv/select/select_v2/mod/floor_mod/ger/gcd/clip_by_value/clip_by_value_v2 ## 关联的Issue - #3234 - https://gitcode.com/cann/ops-math/issues/3234 ## 测试 - 纯注释变更,无功能影响 - pre-commit 钩子全部通过(clang-format / trailing-whitespace / end-of-file-fixer / codespell / OAT 合规检查) - 严格限定在上述 39 个算子文件,全仓其余算子未改动(其余算子同类问题可后续另行清理) ## 文档更新 不涉及仓内 docs/ 目录;本 PR 即为 proto.h 注释(算子原型文档源)的修正 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5815 | 9 天前 | |
feat: axpy_v2 arch35 Reg级融合原地改造,tiling 与 kernel DAG 统一 Co-authored-by: HelloWord-LuXin<luxin67@h-partners.com> # message auto-generated for no-merge-commit merge: !6525 merge feat/axpy-v2-fused-inplace into master feat: axpy_v2 arch35 Reg级融合原地改造,tiling 与 kernel DAG 统一 Created-by: HelloWord-LuXin Commit-by: HelloWord-LuXin Merged-by: cann-robot Description: > 备选方案:与 #5625 同一优化目标的**原地改造版**(#5625 保持现状不动,二者择一合入)。 ## 与 #5625 的关系 | | #5625(保持现状) | 本 PR | |---|---|---| | DAG 组织 | 新建 *Fused struct,旧链 struct 保留专供 tiling | **原地改造原 struct**,删除旧链(对齐 tanh e913d83a8 先例) | | tiling 与 kernel | 不同构(全仓唯一特例) | **引用同一 DAG struct**(全仓惯例:tanh/div/signbit/axpy 等) | | tiling 行为 | 冻结(tile 按旧链估算,偏保守) | 自动跟随新 DAG(tile 按融合后 UB 足迹推导,放大 ~2-4x) | | 逐位 A/B 验证 | 已完成(tiling 冻结可控制变量) | kernel 逐字节同 #5625,复用其验证结论;tile 边界变化需重验 | ## 改造内容 将 **axpy_v2** 的 fp16/bf16/int8/uint8/bool 5 个 dtype 分支从内置 Op 长链原地改造为 Reg 级融合自定义 Op。float/int32/int64 原链不动(≤2 节点,融合收益≈0)。 | 分支 | 改造前 | 改造后 | 消除中间边 | |---|---|---|---| | fp16/bf16 | Cast×3 + FMA + Cast 长链 | UNPACK + Cast + MulDstAdd(vmadd) + Cast + PACK | 4 条 | | int8/uint8 | 6 节点链(32 位宽域) | UNPACK_B8 + Mul + Add + PACK_B16(uint16 零扩展) | 5 条 | | bool | half 域 5 节点链 | b8 位运算 And/Or(直读直存) | 4 条边 + 4 次 Cast | 优化细节: - int8/uint8 统一 uint16 零扩展:mod 256 下零扩展 ≡ 符号扩展,省掉符号扩展 Cast;双组寄存器交替 2 倍展开,奇数尾 tile 以 if 单独补一次 - bool 位运算:min(x2·α+x1, 1) 在 {0,1} 值域 ≡ x1 | (x2 & α),2 条指令替代 3 条,VL 翻倍至 256 - fp16/bf16 castTrait 与原链 tensor Cast 内部降级实现(CastIntrinsicsImplVF)逐字段一致(SAT + CAST_NONE/CAST_RINT) - 删除仅供旧链使用的 AndFF / CAST_*_MODE / FF;tiling 引用同步适配模板参数 ## tiling 行为变化(与 #5625 的本质差异) BroadcastBaseTiling 现按新 DAG 推导 tile:UB 足迹估算从旧链的 14~28B/elem 降为 4~8B/elem,tile 相应放大 2~4x。估算与 kernel 运行时分配同源(同一 DAG),无两张图不一致的风险;I/O broadcast 绑定结构不变,tiling key / schMode 不变。 ## 验证状态与计划 - **kernel 计算逻辑与 #5625 逐字节一致**(三个融合 Op struct MD5 比对相同);#5625 已完成 9000 条新旧 kernel 逐位一致验证(5000 泛化 + 4000 fp16/bf16 溢出强化,含 188 万 inf lane、65520 舍入平局点、NaN 载荷、次正规下溢、广播、尾块 1~513) - 待重跑:CI 流水线;tiling UT golden(tile 尺寸变化,UB-bound 用例需重出预期值);ST 全量 + 性能全谱系重测(重点确认 tile 放大收益与 2~5μs 中小 shape 桶无多核饥饿回退) - 精度:逐元素语义与 tile 划分无关,预期输出与 #5625 逐位一致,将按此复验 ## 约束遵守 - tiling data 结构 / tiling key / 二进制接口零变化(仅模板参数引用适配) - 全部 dtype 分支 golden 通过(沿用 #5625 验证基线 + 本 PR 复验) See merge request: cann/ops-math!6525 | 8 天前 | |
[bessel_i0e] quality-hardening:算子质量加固修复(准入+检视问题整改) Co-authored-by: handsomeRobot_SK<suke13@huawei.com> # message auto-generated for no-merge-commit merge: !6147 merge bessel_i0e_quality_hardening into master [bessel_i0e] quality-hardening:算子质量加固修复(准入+检视问题整改) Created-by: handsomeRobot_SK Commit-by: handsomeRobot_SK Merged-by: cann-robot Description: # [bessel_i0e] quality-hardening:算子质量加固修复(准入+检视问题整改) ## 变更概述 本 PR 为 BesselI0e 算子(逐元素指数缩放零阶修正贝塞尔函数,GE 图模式单通道 + ascend950 单目标)的质量加固整改分支,输入为 2026-09-23 的准入扫描报告与代码检视报告: - **准入扫描**(总结论 FAIL):E3 TBE ini 残留、15.6 golden 子项 2 个 FAIL + 1.4 约束说明 1 个 REVIEW;kernel 用例覆盖度 85.7%,缺口 6 类 - **代码检视**:OP-1 FAIL(HIGH)、CMP-2 SUSPICIOUS(MED)、RD-1 SUSPICIOUS(LOW)、STYLE-3.3 FAIL(中) 共 4 条问题;设计一致性总体"不一致"(S1 架构匹配 ❌、S5 参数语义 ⚠️、D8 文档格式 ❌) 本分支完成:代码侧 4 条修复(OP-1/RD-1/STYLE-3.3/X2),资料侧 5 处整改(README 3 处 + DESIGN/REQUIREMENTS 设计回写),用例侧补齐 6 类缺口(kernel 覆盖度 85.7% → 100%),op_host UT 36/36 全量通过。需架构/产品/仓级/实机决策的残留项单独记录于未修项明细(见文末)。 ## 分类修改清单 ### 一、代码修改(ops-math) | 项 | 内容 | 关联问题 | |---|---|---| | TilingKey 去 dtype 编码 | TilingKey 改为单值占位轴 schMode,dtype 由构建系统按 def DataType 列表注入 DTYPE_X 宏实例化 kernel 变体 | OP-1(C1) | | ubBlockSize 零值守卫 | OP_CHECK_IF(ubBlockSize == 0, ...) 显式守卫后作对齐除数 | RD-1(C4) | | 开发阶段注释清理 | 删除步骤编号注释、==== 分隔线、"迭代二变更"记录 | STYLE-3.3(C3) | | FORMAT_ND 显式格式校验 | tiling 增加 IsPrivateFormat/storage≠ND 拒绝,def 仅声明 FORMAT_ND 与运行时校验闭环 | X2(P3) | ### 二、资料修改 | 项 | 内容 | 关联问题 | |---|---|---| | README 约束说明 | 修正中英文数字间空格;补充 ND 数据格式约束声明 | D8-D1、X2 | | README 产品支持表 | 回退至父版本表述,与 def/CMake 支持面一致 | 1.1 资料一致性 | | DESIGN.md | 架构一致性回写(GE-only/arch35 子目录/910B 标注待后续迭代)、TilingData 3 字段、D1 格式修正 | S1/S5/D8 | | REQUIREMENTS.md | 补充格式约束(输入输出仅支持 ND 格式) | X2 | ### 三、用例修改 - **UT**:tiling 新增 tiling_unsupported_format(4 种非法格式);tilingkey_verify 断言随 TilingKey 改造更新(各 dtype 统一为 0)——op_host UT 36/36(tiling 23 + infershape 13) - **归档用例**:测试用例/bessel_i0e.csv 新增 24 条(UB 整除、dtype 异常、rank9 异常、format 异常、特殊值、空 tensor、压力、rank0/rank8、边界值),6 类缺口全部覆盖,kernel 覆盖度 85.7% → 100% ## 逐 commit 摘要表 | # | commit | 仓库 | 内容 | 关联问题 | |---|---|---|---|---| | 1 | c7f067a86 | ops-math | 回退 bessel_i0e README 产品支持表至父版本 | 1.1 一致性 | | 2 | dd268734b | ops-math | TilingKey 去除 dtype 编码(OP-1),UT 断言同步更新 | C1 | | 3 | c6c65755e | ops-math | ubBlockSize 增加零值守卫(RD-1) | C4 | | 4 | a5b9840a0 | ops-math | 清理开发阶段注释(STYLE-3.3) | C3 | | 5 | b4d900b44 | ops-math | 修正 README 中英文数字间空格(D1) | D8-D1 | | 6 | 9fd86f88a | ops-math | Tiling 增加 FORMAT_ND 显式格式校验(X2/P3),新增 UT | P3 | | 7 | 911852351 | ops-math | README 约束说明补充 ND 格式约束(X2 资料同步) | P3 | | 8 | 625b165 | operator-artifacts | DESIGN.md 设计同步回写(S1/S5/D8)+ 测试用例 CSV 覆盖度缺口补齐(bessel_i0e 部分) | S1、S5、D8、覆盖度 | | 9 | 8a47e70 | operator-artifacts | DESIGN.md §3.4 与 REQUIREMENTS.md 补 FORMAT_ND 校验说明(bessel_i0e 部分) | P3 | ## 测试与验证 - **编译打包**:ops-math 全量编译通过(ascend950 · ENABLE_UT_EXEC=TRUE),成功产出 cann-ops-math-custom_linux-x86_64.run 安装包(build-logs/bessel_i0e.log,2026-09-23) - **op_host UT**:36/36 PASS——tiling 23 例(含新增 tiling_unsupported_format 与更新后的 tilingkey_verify);infershape 13 例 - **白盒复验**:E3(P1)经 canndev 上游 legacy 下线删除后复核无 [BesselI0e] 残留;1.4(P4)LLM A/B 审视闭环 PASS;检视问题 C1/C3/C4 全部关闭 - **覆盖度复评**:kernel 侧 6 类缺口均有对应归档用例,85.7% → 100% - **未执行(无 NPU/TTK)**:GEIR/TTK 实机测试、精度契约实机验证(fp16 rtol≤1e-3、bf16≤4e-3、fp32≤1e-4)、NaN/inf 特殊值实机行为、DataCopyPad 尾块非对齐搬运实机验证 ## 未完成事项与限制 ### 三禁区声明 1. **架构/产品禁区**:ACLNN 两段式接口立项与 910B 产品支持矩阵变更属架构师/产品决策,本分支仅在 DESIGN.md 文档层回写("后续迭代规划/待后续迭代"标注),未立项实现 2. **仓级/上游禁区**:canndev 配置与 ops-math 仓级公共 cmake 不在算子侧改动范围——E3 ini 残留由 canndev 上游删除闭环;CMP-2 栈保护选项冲突为仓级公共配置,转仓级 owner 3. **实机验证禁区**:精度契约、特殊值实机行为、GEIR/TTK 实机测试依赖 NPU/TTK 环境,本环境不可执行,转 TTK 排期 ### 环境限制 - 无 NPU/TTK:admission 中 GEIR/TTK 项标记 UNAVAILABLE,实机类验证项均未执行 ### 未修项明细引用 - 残留 4 条未修项(ACLNN 接口未交付、910B 产品支持矛盾、CMP-2 栈保护选项净关闭、golden 检索规则未覆盖 {op}/golden/ 路径)及无 NPU/TTK 验证缺口详见《/home/s00947152/LongTail/guide/未修项明细/bessel_i0e_未修项明细.md》 See merge request: cann/ops-math!6147 | 19 天前 | |
fix(bessel_i1e): 补齐 Ascend 950 运行时 shape 和输出描述校验 Co-authored-by: Bright0313<liwenbo84@huawei.com> # message auto-generated for no-merge-commit merge: !6883 merge codex/besseli1e-output-format-guard into master fix(bessel_i1e): 补齐 Ascend 950 运行时 shape 和输出描述校验 Created-by: Bright0313 Commit-by: Bright0313 Merged-by: cann-robot Description: BesselI1e 的 tiling 原先缺少输出 dtype/format 的独立校验,只比较输入输出元素总数,并用总数是否为负判断运行时 shape。例如输入输出均为 [-2,-3] 或 [0,-3] 时,修改前实际 host tiling 返回成功。 本次补齐校验和回归覆盖: - 输出描述非空;输入输出 storage format 均为 ND,输出 dtype 与输入一致。 - 输入输出 storage shape 经既有标量归一化后逐维一致,保留 []/[1] 存储表达的兼容行为。 - 运行时 storage shape 每一维必须非负。编译期 -1/[-2] 由 GE 解析后再进入 tiling,合法空 Tensor 继续成功返回。 - tiling UT 覆盖六种负维度组合,并新增三 dtype×10 个分核/UB 边界,验证核区间连续、无重叠且完整覆盖输出。 - 动态 GEIR 样例检查输出 ND,允许合法空结果没有数据指针;同一张 -1/[-2] 图覆盖空 Tensor、标量、rank8 以及 shape 回切。 变更仅涉及 arch35 tiling、对应 UT 和动态 GEIR 样例三个文件,计算 kernel、公式和系数不变。arch22 shim 复用相同 tiling;本轮设备验证针对 Ascend 950,未进行 A2/A3 设备验证。GEIR/TF 已被图推导修正或未传入接口的 CSV 输出条件,不作为算子拒绝证据。 验证: - 前轮独立实际 host tiling 复现五种负维度漏拦截,修复后 24 条探针均符合预期;TTK kernel compile-only 已验证 9 条输出描述负例及合法对照。 - 本轮 83 条实际 host 探针均符合预期,含 30 个切分边界、12 类非法 dtype、9 种输入输出 dtype 配对及独立输入/输出非 ND 见证。 - 既有 tiling UT 前轮 14/14;本轮仅运行新增边界 UT(函数内 30 组)通过。CANN ABI=0 独立编译,包含 -Werror。 - Ascend 950 实机同图动态 GEIR 样例:-1 图 5/5、[-2] 图 9/9,检查 shape、dtype、ND 和数值。 - 本轮新增三方精度(Promote + cross_check/L1 + TF GPU):kernel-new 30/30,geir-new 30/30,dynamic-new 12/12,tf-new 42/42。kernel 30 条输入/输出越界哨兵检查均为 OK,OK;本轮未跑性能。 - 变更文件 pre-commit(含 OAT)和 git diff --check 通过。 测试使用任务独立安装目录;未替换共享安装包。compile-only/host 校验不冒充设备精度或性能验收。 See merge request: cann/ops-math!6883 | 1 天前 | |
Math仓算子适配Ascend350平台 Co-authored-by: huairuchen<chenhuairu@huawei.com> # message auto-generated for no-merge-commit merge: !6372 merge dvlite-math-350-adapt into master Math仓算子适配Ascend350平台 Created-by: huairuchen Commit-by: huairuchen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Math仓部分随机数算子在350平台进行适配 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4202 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 算子泛化测试,冒烟测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6372 | 5 天前 | |
fix(proto): 修复39个算子proto.h注释的拼写与语法错误 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !5815 merge fix/proto-comment-grammar into master fix(proto): 修复39个算子proto.h注释的拼写与语法错误 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 对 39 个算子的 op_graph/*_proto.h 注释做拼写与语法修复,仅注释与格式变更,不涉及任何代码逻辑: - **拼写错误**:select_v2 condittion→condition(2处)、axpy_v2 opratioan→operation、clip_by_value 英文 dtype 列表中的全角逗号改半角 - **系统性语法(历史模板复制扩散)**:Support broadcasting→Supports broadcasting(27个文件)、A ND→An ND(33个文件97处) - **单文件语法修复 71 处(含 signbit returns→Returns、axpy should→Should 两处句首大写补漏)**:ger has→have、addcmul/addcdiv multiply→multiplies、muls An required→A required、equal (x=y)→(x1==x2)、Elementwise→Element-wise、bias_add/lerp/gcd 语序与冠词修复、aicore→AiCore、mod/floor_mod 矛盾表述统一、句首大小写与标点空格等 - 附带 pre-commit 钩子强制规范化(clang-format 重排、尾随空白、文件末尾换行),并保留各文件原有行尾风格(CRLF/LF) 涉及算子:add/sub/mul/muls/div/real_div/floor_div/div_no_nan/pow/minimum/maximum/signbit/less/less_equal/greater/greater_equal/not_equal/equal/bias_add/squared_difference/lerp/logical_and/logical_or/bitwise_or/bitwise_and/bitwise_xor/tanh_grad/axpy/axpy_v2/addcmul/addcdiv/select/select_v2/mod/floor_mod/ger/gcd/clip_by_value/clip_by_value_v2 ## 关联的Issue - #3234 - https://gitcode.com/cann/ops-math/issues/3234 ## 测试 - 纯注释变更,无功能影响 - pre-commit 钩子全部通过(clang-format / trailing-whitespace / end-of-file-fixer / codespell / OAT 合规检查) - 严格限定在上述 39 个算子文件,全仓其余算子未改动(其余算子同类问题可后续另行清理) ## 文档更新 不涉及仓内 docs/ 目录;本 PR 即为 proto.h 注释(算子原型文档源)的修正 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5815 | 9 天前 | |
fix(math): align arch35 UT tiling key with opbase reduce template upgrade Co-authored-by: sunzhongwen1<sunzhongwen1@huawei.com> # message auto-generated for no-merge-commit merge: !6803 merge fix/issue-4193-4192-ut-tiling-key into master fix(math): align arch35 UT tiling key with opbase reduce template upgrade Created-by: sunzhongwen1 Commit-by: sunzhongwen1 Merged-by: cann-robot Description: ## 描述 opbase 依赖升级(cann/opbase!519「新增 batch 一致性需求的 reduce 模版」)在 pkg_inc/op_common/atvoss/reduce/reduce_tiling_key_decl.h 的 REDUCE_TPL_KEY_DECL() 中于 IsContiguous 之后插入 BatchInvariant(bool) 位,使 PatternID / LoopARCount / LoopInnerARCount 整体左移 1 位,同一 tiling 参数的 reduce 模板 tiling key 由 K 变为 2K-1。Dot 与 BiasAddGrad 的 arch35 op_host UT 仍冻结旧值,用例未随依赖升级同步而失败。 本 PR 同步两个算子的 UT 期望值: - BiasAddGradTiling:5161→10321、141375→282749、6167→12333、11839→23677 - DotTiling:5143→10285;同时同步 expectTilingData 中受同一次 opbase 升级影响的 useNddma 字段(8 字节打包字 1040187392→4467570830351532033) ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/4193 - https://gitcode.com/cann/ops-math/issues/4192 Fixes #4193 Fixes #4192 ## 测试 bash build.sh -u --opapi --ophost --soc=ascend950 --gtest_filter="DotTiling*:BiasAddGradTiling*" 结果:5/5 PASSED(改动前 5 个用例均失败) ## 文档更新 无 ## 类型标签 - [x] Bug修复 See merge request: cann/ops-math!6803 | 4 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
docs: 订正 bitwise_not、cholesky、cummin、topk 等 8 个算子资料及头文件注释 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !6781 merge sync-1028 into master docs: 订正 bitwise_not、cholesky、cummin、topk 等 8 个算子资料及头文件注释 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本 PR 订正 8 个算子资料与头文件注释中与实现、产品支持情况不一致的描述。改动全部为文档(zh/en)与头文件注释,不涉及代码逻辑。 ### 改动原因 资料与头文件注释存在与实现、错误码表或产品支持情况互相矛盾的描述:dtype 列表漏项、产品支持范围与参数表结论不一致、参数语义描述错误、公式求和区间端点错误、退化点取值未声明等,逐条见「关联的Issue」。 ### 改动方法 1. **bitwise_not**( docs/aclnnBitwiseNot.md、aclnnBitwiseNot_en.md):self、out 补充数据类型支持描述,与资料及实现对齐(#3950)。 2. **bitwise_or**(docs/aclnnBitwiseOrScalar&aclnnInplaceBitwiseOrScalar.md、_en.md):self、other、selfRef补充数据类型支持描述,消除与产品支持情况分组的矛盾(#3995)。 3. **cdist_grad**(docs/aclnnCdistBackward.md、_en.md):新增说明——上述闭式仅在 cdist > 0 时适用;当 cdist = 0(x1 与 x2 在该点对上完全重合)时,该点对对 x1 的梯度贡献按 0 处理(#3956)。 4. **cholesky**(docs/aclnnLinalgCholesky.md、_en.md):产品支持情况中 Ascend 950PR&950DT 系列产品由「不支持」改为「支持」;self、out 的数据类型由「FLOAT、BFLOAT16」补充为「FLOAT、FLOAT16、BFLOAT16」(#3957)。 5. **cummin**(docs/aclnnCummin.md、_en.md):self、valuesOut 的 dtype 约束由统一规则改为「具体数据类型关系见下方产品支持情况」,并在产品支持情况新增两条分组说明——Ascend 950PR&950DT 系列产品下 self 为 INT8/UINT8/BOOL 时 valuesOut 可为不同的可转换数据类型,其余数据类型需与 self 一致;Atlas A3/A2、Atlas 200I/500 A2、Atlas 推理、Atlas 训练系列产品下 self 的数据类型需能转换为 valuesOut 的数据类型(#3969)。 6. **grouped_bias_add_grad**(docs/aclnnGroupedBiasAddGrad.md、_en.md):groupIdx 求和区间上端点由 groupIdxOptional(j) 改为不含端点的 groupIdxOptional(j)-1,j=0 分支同步改为 groupIdxOptional(0)-1;无可选输入时求和区间由 0 至 C 改为 0 至 C-1;文字说明中明确 groupIdxOptional(j) 表示第 j 组的结束位置(不包含)(#3948)。 7. **pow**(op_api/aclnn_pow.h 头文件注释):out 的数据类型要求由「数据类型、数据格式和shape与self一致」改为「数据格式和shape需与self一致,数据类型需为self与exponent推导后可转换的数据类型」(#3959)。 8. **topk、topkV2**(docs/aclnnTopk.md、aclnnTopk_en.md、aclnnTopkV2.md、aclnnTopkV2_en.md 共 4 个文件):largest 由「计算维度上的结果排序方式」改为「选取最大还是最小的 k 个值」;sorted 删除「当前该参数仅支持取 True」,改为 False 表示不要求输出有序,并明确不保证输出顺序及等值元素的索引稳定性(#3971)。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3995 https://gitcode.com/cann/ops-math/issues/3971 https://gitcode.com/cann/ops-math/issues/3969 https://gitcode.com/cann/ops-math/issues/3959 https://gitcode.com/cann/ops-math/issues/3957 https://gitcode.com/cann/ops-math/issues/3956 https://gitcode.com/cann/ops-math/issues/3950 https://gitcode.com/cann/ops-math/issues/3948 ## 测试 - 本 PR 仅修改资料与头文件注释,不涉及代码逻辑,未做代码测试; - 资料改动需通过仓库资料门禁/评审校验。 ## 文档更新 - math/bitwise_not/docs/aclnnBitwiseNot.md、aclnnBitwiseNot_en.md - math/bitwise_or/docs/aclnnBitwiseOrScalar&aclnnInplaceBitwiseOrScalar.md、aclnnBitwiseOrScalar&aclnnInplaceBitwiseOrScalar_en.md - math/cdist_grad/docs/aclnnCdistBackward.md、aclnnCdistBackward_en.md - math/cholesky/docs/aclnnLinalgCholesky.md、aclnnLinalgCholesky_en.md - math/cummin/docs/aclnnCummin.md、aclnnCummin_en.md - math/grouped_bias_add_grad/docs/aclnnGroupedBiasAddGrad.md、aclnnGroupedBiasAddGrad_en.md - math/topk/docs/aclnnTopk.md、aclnnTopk_en.md、aclnnTopkV2.md、aclnnTopkV2_en.md - 头文件注释:math/bitwise_not/op_api/aclnn_bitwise_not.h、math/pow/op_api/aclnn_pow.h ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6781 | 5 天前 | |
处理一些issues,修改部分文档 Co-authored-by: Boyang_Zhang<zhangboyang15@h-partners.com> # message auto-generated for no-merge-commit merge: !6858 merge issue4000 into master 处理一些issues,修改部分文档 Created-by: BoyangZhang Commit-by: Boyang_Zhang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 处理一些issues,修改部分文档 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4000 https://gitcode.com/cann/ops-math/issues/4001 https://gitcode.com/cann/ops-math/issues/4013 https://gitcode.com/cann/ops-math/issues/4015 https://gitcode.com/cann/ops-math/issues/4019 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6858 | 3 天前 | |
docs: 修复math算子文档错误码表缺项并对齐数据类型约束与实现 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !6765 merge fix_mathMD_1028 into master docs: 修复math算子文档错误码表缺项并对齐数据类型约束与实现 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 本次PR针对多个math算子文档与实现不一致或错误码表缺项的问题进行修复,共涉及6份算子文档: 1. aclnnMaxDim:错误码表161002补充"self、out、indices维度大于8时"子项,与参数表维度0-8说明对齐; 2. aclnnBitwiseXorTensor:删除out不支持UINT16/UINT32/UINT64/COMPLEX64/COMPLEX128的约束描述,对齐实际实现的放行行为; 3. aclnnFloor:删除非连续Tensor列UINT16/UINT32/UINT64不支持的无效约束(A2真机实测非连续输入均正常支持); 4. aclnnLeScalar/aclnnLeTensor:补充out、selfRef不支持UINT32/UINT64的平台约束(910/310p、A3/910b),并合并到既有平台约束块; 5. aclnnNeTensor:补充Atlas A2/A3系列self、other不支持UINT64的约束说明(A2真机验证放开校验会产生错误结果,当前拒绝行为是安全的)。 ## 关联的Issue - #3884:aclnnMaxDim错误码表缺少维度大于8子项 - #3881:aclnnBitwiseXorTensor文档声明out不支持UINT16/UINT32/UINT64/COMPLEX64/COMPLEX128与实现不符 - #3883:aclnnFloor文档多写非连续Tensor不支持UINT16/UINT32/UINT64约束 - #3853:aclnnNeTensor A2平台UINT64支持说明与实现不符 - #3889:aclnnLeTensor/aclnnLeScalar out支持UINT32/UINT64与实现不符 ## 测试 本次为纯文档修改,无代码变更。各文档改动均经实现代码(dtype支持列表、校验逻辑)静态核对,并对以下场景在A2真机验证: - aclnnFloor非连续UINT16/UINT32/UINT64输入6组用例全部成功且结果正确; - aclnnNeTensor UINT64放开校验后输出全假并伴随堆内存损坏,确认kernel未实现UINT64模板,以文档约束闭环; - aclnnBitwiseXorTensor COMPLEX64/COMPLEX128输出语义验证通过。 ## 文档更新 - math/arg_max_with_value/docs/aclnnMaxDim.md - math/bitwise_xor/docs/aclnnBitwiseXorTensor&aclnnInplaceBitwiseXorTensor.md - math/floor/docs/aclnnFloor&aclnnInplaceFloor.md - math/less_equal/docs/aclnnLeScalar&aclnnInplaceLeScalar.md - math/less_equal/docs/aclnnLeTensor&aclnnInplaceLeTensor.md - math/not_equal/docs/aclnnNeTensor&aclnnInplaceNeTensor.md ## 类型标签 - [x] 文档更新 See merge request: cann/ops-math!6765 | 4 天前 | |
fix(cast): match PyTorch BF16 to E8M0 rounding with VF Co-authored-by: jiaoyiming<jiaoyiming2@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge fix/cast-bf16-e8m0-vf into master fix(cast): match PyTorch BF16 to E8M0 rounding with VF Created-by: jiaoyiming Commit-by: jiaoyiming Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 Cast 算子在 Arch35 平台上 BF16 → FLOAT8_E8M0 转换的舍入行为,使其与 PyTorch 的 fp8e8m0fnu_from_fp32_value 实现一致。 - 新增 CastBf16ToE8m0VF,通过位运算提取 BF16 的指数和尾数,分别处理普通数与次正规数的舍入。 - 保留 PyTorch 对符号位及特殊值的处理语义,NaN、正负无穷均映射为 E8M0 编码 0xFF。 - 仅在 BF16 → FLOAT8_E8M0 路径通过 asc_vf_call 调用新 VF,其他转换路径沿用原实现。 - 新增设备端回归用例,以原始输出字节对比 NPU 与 PyTorch CPU 的结果。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4195 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 主机侧算法验证:穷举全部 65,536 种 BF16 位模式,与 PyTorch 源码参考算法对比,结果一致。 - git diff --check 通过。 - 新增 test_cast_bf16_e8m0.py,覆盖全部 BF16 位模式、舍入边界、NaN/无穷及不同长度的尾块场景。 - 本地缺少 PyTorch、CANN 和 NPU 环境,设备回归用例已跳过,内核编译及设备验证待完成。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6784 | 4 天前 | |
修复issue的问题 Co-authored-by: sakuraqqz<furao15@h-partners.com> # message auto-generated for no-merge-commit merge: !6812 merge master into master 修复issue的问题 Created-by: sakuraqqz Commit-by: sakuraqqz Merged-by: cann-robot Description: ## 描述 本 PR 修复 6 个算子问题,均为 Bug 修复(含 1 项文档修正): 1. **is_inf 尾块越界读写(#3925)**:数据长度不足 32B 对齐时,尾块原先按 32B 整倍搬运导致 GM 越界读/写。修复为整块用 DataCopy、尾块用 DataCopyPad 按真实字节搬运,ComputePerCore 尾块输出按真实计数写出。math/is_inf/op_kernel/is_inf.h。 2. **addcmul value=NaN 走错快路径(#3894)**:IsEqualToOne 对 NaN 判等为 true(所有比较均 false 取反),导致 value=NaN 时误走 AxpyV2 快路径、缺失 value 项。修复为显式排除 NaN。math/addcmul/op_api/aclnn_addcmul.cpp。 3. **cdist 非法 shape 返回码(#3929)**:out 形状与推导不匹配时返回内部空指针错误 561103,修复为在 GetWorkspaceSize 增加 out 期望形状校验,返回标准参数错误 161002。math/cdist/op_api/aclnn_cdist.cpp。 4. **div 非法参数返回码(#3962)**:日志错误码与返回码不一致,统一返回 161002。math/div/op_api/aclnn_div.cpp。 5. **VarMean 文档矛盾(#4182)**:中英文档 self 维度列由 1-8 修正为 0-8(与「shape 支持 0 到 8 维」及 meanOut/varOut 的 0-8 保持一致);参数表 varOut/meanOut 行序与原型(varOut 为第 5 参、meanOut 为第 6 参)对齐。math/reduce_var/docs/。 6. **LinSpace legacy tiling 丢失 INT64 num 精度(#3347):** LinSpaceGetConstValue 的 DT_INT64 分支先将 int64_t 经 float 转换,num=16777219 被舍入为 16777220,与 InferShape 输出维度不一致;修复为直接读取 int64 数值、经 double 无损保留。math/lin_space/op_host/lin_space_tiling.cpp。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3925 - https://gitcode.com/cann/ops-math/issues/3894 - https://gitcode.com/cann/ops-math/issues/3929 - https://gitcode.com/cann/ops-math/issues/3962 - https://gitcode.com/cann/ops-math/issues/4182 - https://gitcode.com/cann/ops-math/issues/3347 ## 测试 910B3 / CANN 9.3.0 上板验证(2026-10-29): - **is_inf**:尾块用例长度 17/25/31/33/40(非 32B 对齐),尾部放置 inf/-inf/nan,输入输出 buffer 后 64B 金丝雀检测越界,5 组全部 PASS 且无越界读写。 - **addcmul**:value=NaN → out=NaN(修复前误得 7.0);value=1.0/2.0 回归正常。 - **cdist**:out 形状不匹配返回 161002,合法形状返回 0。 - **div**:shape 不匹配/非法 mode 均返回 161002。 - **VarMean**:issue 复现脚本实测命中 0 处(纯文档改动,无需上板)。 - **LinSpace**:tiling data 中 num=16777219 保留、InferShape 输出 [16777219](num=17 对照),Host UT 6/6 PASS,基线回归证实旧实现舍入为 16777220。 ## 文档更新 - math/reduce_var/docs/aclnnVarMean.md、math/reduce_var/docs/aclnnVarMean_en.md(维度范围与参数顺序修正)。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6812 | 3 天前 | |
docs: 订正 bitwise_not、cholesky、cummin、topk 等 8 个算子资料及头文件注释 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !6781 merge sync-1028 into master docs: 订正 bitwise_not、cholesky、cummin、topk 等 8 个算子资料及头文件注释 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本 PR 订正 8 个算子资料与头文件注释中与实现、产品支持情况不一致的描述。改动全部为文档(zh/en)与头文件注释,不涉及代码逻辑。 ### 改动原因 资料与头文件注释存在与实现、错误码表或产品支持情况互相矛盾的描述:dtype 列表漏项、产品支持范围与参数表结论不一致、参数语义描述错误、公式求和区间端点错误、退化点取值未声明等,逐条见「关联的Issue」。 ### 改动方法 1. **bitwise_not**( docs/aclnnBitwiseNot.md、aclnnBitwiseNot_en.md):self、out 补充数据类型支持描述,与资料及实现对齐(#3950)。 2. **bitwise_or**(docs/aclnnBitwiseOrScalar&aclnnInplaceBitwiseOrScalar.md、_en.md):self、other、selfRef补充数据类型支持描述,消除与产品支持情况分组的矛盾(#3995)。 3. **cdist_grad**(docs/aclnnCdistBackward.md、_en.md):新增说明——上述闭式仅在 cdist > 0 时适用;当 cdist = 0(x1 与 x2 在该点对上完全重合)时,该点对对 x1 的梯度贡献按 0 处理(#3956)。 4. **cholesky**(docs/aclnnLinalgCholesky.md、_en.md):产品支持情况中 Ascend 950PR&950DT 系列产品由「不支持」改为「支持」;self、out 的数据类型由「FLOAT、BFLOAT16」补充为「FLOAT、FLOAT16、BFLOAT16」(#3957)。 5. **cummin**(docs/aclnnCummin.md、_en.md):self、valuesOut 的 dtype 约束由统一规则改为「具体数据类型关系见下方产品支持情况」,并在产品支持情况新增两条分组说明——Ascend 950PR&950DT 系列产品下 self 为 INT8/UINT8/BOOL 时 valuesOut 可为不同的可转换数据类型,其余数据类型需与 self 一致;Atlas A3/A2、Atlas 200I/500 A2、Atlas 推理、Atlas 训练系列产品下 self 的数据类型需能转换为 valuesOut 的数据类型(#3969)。 6. **grouped_bias_add_grad**(docs/aclnnGroupedBiasAddGrad.md、_en.md):groupIdx 求和区间上端点由 groupIdxOptional(j) 改为不含端点的 groupIdxOptional(j)-1,j=0 分支同步改为 groupIdxOptional(0)-1;无可选输入时求和区间由 0 至 C 改为 0 至 C-1;文字说明中明确 groupIdxOptional(j) 表示第 j 组的结束位置(不包含)(#3948)。 7. **pow**(op_api/aclnn_pow.h 头文件注释):out 的数据类型要求由「数据类型、数据格式和shape与self一致」改为「数据格式和shape需与self一致,数据类型需为self与exponent推导后可转换的数据类型」(#3959)。 8. **topk、topkV2**(docs/aclnnTopk.md、aclnnTopk_en.md、aclnnTopkV2.md、aclnnTopkV2_en.md 共 4 个文件):largest 由「计算维度上的结果排序方式」改为「选取最大还是最小的 k 个值」;sorted 删除「当前该参数仅支持取 True」,改为 False 表示不要求输出有序,并明确不保证输出顺序及等值元素的索引稳定性(#3971)。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3995 https://gitcode.com/cann/ops-math/issues/3971 https://gitcode.com/cann/ops-math/issues/3969 https://gitcode.com/cann/ops-math/issues/3959 https://gitcode.com/cann/ops-math/issues/3957 https://gitcode.com/cann/ops-math/issues/3956 https://gitcode.com/cann/ops-math/issues/3950 https://gitcode.com/cann/ops-math/issues/3948 ## 测试 - 本 PR 仅修改资料与头文件注释,不涉及代码逻辑,未做代码测试; - 资料改动需通过仓库资料门禁/评审校验。 ## 文档更新 - math/bitwise_not/docs/aclnnBitwiseNot.md、aclnnBitwiseNot_en.md - math/bitwise_or/docs/aclnnBitwiseOrScalar&aclnnInplaceBitwiseOrScalar.md、aclnnBitwiseOrScalar&aclnnInplaceBitwiseOrScalar_en.md - math/cdist_grad/docs/aclnnCdistBackward.md、aclnnCdistBackward_en.md - math/cholesky/docs/aclnnLinalgCholesky.md、aclnnLinalgCholesky_en.md - math/cummin/docs/aclnnCummin.md、aclnnCummin_en.md - math/grouped_bias_add_grad/docs/aclnnGroupedBiasAddGrad.md、aclnnGroupedBiasAddGrad_en.md - math/topk/docs/aclnnTopk.md、aclnnTopk_en.md、aclnnTopkV2.md、aclnnTopkV2_en.md - 头文件注释:math/bitwise_not/op_api/aclnn_bitwise_not.h、math/pow/op_api/aclnn_pow.h ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6781 | 5 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
docs: 订正 bitwise_not、cholesky、cummin、topk 等 8 个算子资料及头文件注释 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !6781 merge sync-1028 into master docs: 订正 bitwise_not、cholesky、cummin、topk 等 8 个算子资料及头文件注释 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本 PR 订正 8 个算子资料与头文件注释中与实现、产品支持情况不一致的描述。改动全部为文档(zh/en)与头文件注释,不涉及代码逻辑。 ### 改动原因 资料与头文件注释存在与实现、错误码表或产品支持情况互相矛盾的描述:dtype 列表漏项、产品支持范围与参数表结论不一致、参数语义描述错误、公式求和区间端点错误、退化点取值未声明等,逐条见「关联的Issue」。 ### 改动方法 1. **bitwise_not**( docs/aclnnBitwiseNot.md、aclnnBitwiseNot_en.md):self、out 补充数据类型支持描述,与资料及实现对齐(#3950)。 2. **bitwise_or**(docs/aclnnBitwiseOrScalar&aclnnInplaceBitwiseOrScalar.md、_en.md):self、other、selfRef补充数据类型支持描述,消除与产品支持情况分组的矛盾(#3995)。 3. **cdist_grad**(docs/aclnnCdistBackward.md、_en.md):新增说明——上述闭式仅在 cdist > 0 时适用;当 cdist = 0(x1 与 x2 在该点对上完全重合)时,该点对对 x1 的梯度贡献按 0 处理(#3956)。 4. **cholesky**(docs/aclnnLinalgCholesky.md、_en.md):产品支持情况中 Ascend 950PR&950DT 系列产品由「不支持」改为「支持」;self、out 的数据类型由「FLOAT、BFLOAT16」补充为「FLOAT、FLOAT16、BFLOAT16」(#3957)。 5. **cummin**(docs/aclnnCummin.md、_en.md):self、valuesOut 的 dtype 约束由统一规则改为「具体数据类型关系见下方产品支持情况」,并在产品支持情况新增两条分组说明——Ascend 950PR&950DT 系列产品下 self 为 INT8/UINT8/BOOL 时 valuesOut 可为不同的可转换数据类型,其余数据类型需与 self 一致;Atlas A3/A2、Atlas 200I/500 A2、Atlas 推理、Atlas 训练系列产品下 self 的数据类型需能转换为 valuesOut 的数据类型(#3969)。 6. **grouped_bias_add_grad**(docs/aclnnGroupedBiasAddGrad.md、_en.md):groupIdx 求和区间上端点由 groupIdxOptional(j) 改为不含端点的 groupIdxOptional(j)-1,j=0 分支同步改为 groupIdxOptional(0)-1;无可选输入时求和区间由 0 至 C 改为 0 至 C-1;文字说明中明确 groupIdxOptional(j) 表示第 j 组的结束位置(不包含)(#3948)。 7. **pow**(op_api/aclnn_pow.h 头文件注释):out 的数据类型要求由「数据类型、数据格式和shape与self一致」改为「数据格式和shape需与self一致,数据类型需为self与exponent推导后可转换的数据类型」(#3959)。 8. **topk、topkV2**(docs/aclnnTopk.md、aclnnTopk_en.md、aclnnTopkV2.md、aclnnTopkV2_en.md 共 4 个文件):largest 由「计算维度上的结果排序方式」改为「选取最大还是最小的 k 个值」;sorted 删除「当前该参数仅支持取 True」,改为 False 表示不要求输出有序,并明确不保证输出顺序及等值元素的索引稳定性(#3971)。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3995 https://gitcode.com/cann/ops-math/issues/3971 https://gitcode.com/cann/ops-math/issues/3969 https://gitcode.com/cann/ops-math/issues/3959 https://gitcode.com/cann/ops-math/issues/3957 https://gitcode.com/cann/ops-math/issues/3956 https://gitcode.com/cann/ops-math/issues/3950 https://gitcode.com/cann/ops-math/issues/3948 ## 测试 - 本 PR 仅修改资料与头文件注释,不涉及代码逻辑,未做代码测试; - 资料改动需通过仓库资料门禁/评审校验。 ## 文档更新 - math/bitwise_not/docs/aclnnBitwiseNot.md、aclnnBitwiseNot_en.md - math/bitwise_or/docs/aclnnBitwiseOrScalar&aclnnInplaceBitwiseOrScalar.md、aclnnBitwiseOrScalar&aclnnInplaceBitwiseOrScalar_en.md - math/cdist_grad/docs/aclnnCdistBackward.md、aclnnCdistBackward_en.md - math/cholesky/docs/aclnnLinalgCholesky.md、aclnnLinalgCholesky_en.md - math/cummin/docs/aclnnCummin.md、aclnnCummin_en.md - math/grouped_bias_add_grad/docs/aclnnGroupedBiasAddGrad.md、aclnnGroupedBiasAddGrad_en.md - math/topk/docs/aclnnTopk.md、aclnnTopk_en.md、aclnnTopkV2.md、aclnnTopkV2_en.md - 头文件注释:math/bitwise_not/op_api/aclnn_bitwise_not.h、math/pow/op_api/aclnn_pow.h ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6781 | 5 天前 | |
fix(broadcast): 修复 Collapse 链路 dtypeSize 断链导致的未初始化读取 Co-authored-by: zzz2048<zhuhanhan@huawei.com> # message auto-generated for no-merge-commit merge: !6557 merge fix/broadcast-dtypesize into master fix(broadcast): 修复 Collapse 链路 dtypeSize 断链导致的未初始化读取 Created-by: zzz2048 Commit-by: zzz2048 Merged-by: cann-robot Description: ## 问题一(dtypeSize 断链,UB) IsBroadcastTemplateNonContiguousSupport(math/common/op_api/broadcast_util.cpp)数据流中,CollectInput 正确填充的 ct.dtypeSize 在后续链路丢失: 1. PaddedInput 结构无 dtypeSize 字段——PadSingleInput 处丢失 2. BuildCollapsedTensor 未赋值——CollapseSingleTensor 处丢失 ClassifySingleInput 消费 ct.dtypeSize 计算 dimLimit(NLast 场景 a/b 门限)与 inputSize(场景 c 单核判定),读到的是**未初始化栈值(UB)**,门限判定与 opbase 决策树镜像(broadcast_tiling.h 逐输入取真实 dtypeSize 的同构逻辑)脱节。 ## 问题二(sub-bit 标记编码) opdev::TypeSize 对 INT4/UINT1/INT2/UINT2/FLOAT4/FLOAT6/HIFLOAT4 返回 kDataTypeSizeBitOffset+位宽 标记编码(如 INT4=1004)而非真实字节宽,直接参与 dimLimit = CACHE_LINE/dtypeSize 计算得 0,NLast 判定恒真污染。HIFLOAT4 已在 conversion 族算子(strided_slice_v3/zeros_like/as_strided)落地,broadcast 系接入后即触达。 ## 修复 - PaddedInput 增加 dtypeSize 字段并透传;BuildCollapsedTensor 参数化赋值;输出侧 ct 置 0 防御 - CollectInput 对 sub-bit 标记编码按 1 字节近似解码(与 ge::GetSizeByDataType 语义对齐),不新增公共接口,零 ops-base 版本依赖 ## 验证(Ascend 950PR) div/greater/greater_equal 三算子 24 例(覆盖 NLast a/b/c、Base 兜底、expand、转置、>4 维、连续分支),基线/修复两轮:精度 **48/48 PASS**,分流与性能零变化(纯 UB 消除 + 前置防御)。 关联的Issue:#3757 See merge request: cann/ops-math!6557 | 12 天前 | |
feat: CompareAndBitpack 支持 RT2 InferShape Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !5680 merge feature/compare-and-bitpack-rt2-infershape into master feat: CompareAndBitpack 支持 RT2 InferShape Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 为 CompareAndBitpack 补充 RT2 InferShape 和 InferDataType 实现,使算子可在 RT2 图编译流程中完成输出 shape 与 dtype 推导。 - 校验输入 x 至少为 1 维、threshold 为标量或未知秩。 - 输出 shape 继承 x,已知末维要求可被 8 整除并缩小为原来的 1/8;未知末维保持未知。 - 输出 dtype 固定推导为 DT_UINT8。 - 对照原 RT1 实现补充单元测试,覆盖正常、动态 shape、非法输入和未知秩场景,保持 RT1/RT2 行为一致。 ## 关联的Issue 无。 ## 测试 - TDD 修改前:新增 RT2 InferShape 用例后,因缺少 RT2 注册,测试执行到首个用例时失败。 - 反向对照:临时移除未知末维处理后,CompareAndBitpackInferShape.PreservesUnknownLastDimension 按预期失败;恢复实现后通过。 - bash build.sh -u --ophost --ops=compare_and_bit_pack:8 个用例全部通过。 - cmake -S . -B build -DENABLE_TEST=TRUE -DASCEND_OP_NAME=compare_and_bit_pack -DOP_HOST_UT=FALSE -DOP_GRAPH_UT=TRUE -DENABLE_UT_EXEC=TRUE && cmake --build build --target math_op_graph_ut -j8:1 个用例通过,graph_plugin_math_obj 编译成功。 - pre-commit run --from-ref ups/master --to-ref HEAD:全部检查通过。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5680 | 1 个月前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
适配350:abs_grad/complex_abs 新增 ascend350 平台支持(op_api SocVersion 整改) Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !6521 merge master into master 适配350:abs_grad/complex_abs 新增 ascend350 平台支持(op_api SocVersion 整改) Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 适配350:abs_grad/complex_abs 新增 ascend350 平台支持(op_api SocVersion 整改) ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3680 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6521 | 3 天前 | |
feat(confusion_matrix): golden 注册 e2e(tf) 通路并真机验证 Co-authored-by: SeanDictionary<b24081019@njupt.edu.cn> # message auto-generated for no-merge-commit merge: !6983 merge feat/confusion-matrix into master feat(confusion_matrix): golden 注册 e2e(tf) 通路并真机验证 Created-by: SeanDictionary Commit-by: SeanDictionary Merged-by: cann-robot Description: ## 描述 补齐 ConfusionMatrix 的 e2e(tf) 通路 golden 注册与真机验证,共 2 个提交: 1. **注册 e2e(tf) 通路**(d8dd47bcf): __spec__ 新增 tf.math.confusion_matrix → ConfusionMatrixTfE2eSpec,参照仓内 left_shift 的 LeftShiftTfSpec 范式——tf 仅为**驱动接口**,精度标杆对标算子语义,真值与 kernel/geir 共用同一套 torch 标杆 _compute;third_party 复用 _Compose,tolerance 与 kernel 一致;通路支持表 e2e 行同步(tf ✅ / torch ❌)。 2. **位置实参解析修复**(8751c1fba):TTK e2e 依 API 签名顺序组装实参,标量属性 const-fold 为位置实参(num_classes 落第 3 位、dtype 落第 5 位),golden 改按签名位置解析 labels/predictions/num_classes/weights/dtype——修复整数用例 dtype 丢失导致比对 0% 的问题。 路由事实(已写入 Spec 注释):CANN 9.2.0 GE 的 support_fusion_pass.json 白名单不含 ConfusionMatrixFusionPass,950 上 tf.math.confusion_matrix 分解图不融合、本算子不参与该通路执行;本通路验证 **tf 前端 API 语义在 NPU 上的正确性**,命中算子的通路仍为 GE 图模式(geir)。 本 PR 仅改动 tests/assets/golden.py,不触碰算子本体(op_host/op_kernel/op_graph 零变更)。 ## 关联的Issue [#4396](https://gitcode.com/cann/ops-math/issues/4396) ## 测试 真机 Ascend950DT_9592 V120(CANN 9.2.0,TF 2.6.5 + npu_device 2.6.5,TTK 3.0.0): - **TTK e2e(tf.math.confusion_matrix)**:7/7 PASS——float32/float16/int32/int8/uint8 五种输出 dtype × 有/无 weights × nc=1 边界;整数 binary_equal 逐位,浮点两方 close(cross_check 三方对标因当前环境 GPU 竞品端点缺失暂以两方替代,判据声明不变)。 - **golden 单测**:4 位/5 位实参、np.str_ 标量、标量张量、tf.DType 对象、kwargs 等形态解析全部通过;TTK TestSpecManager validate PASS。 - Eager 分解图在 NPU 上逐原语执行正常(Cast/Pack/Transpose/SparseTensorDenseAdd 执行清单实测)。 ## 文档更新 - golden.py 通路支持表与路由注释更新(e2e(tf) 支持性与融合白名单事实)。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:测试通路扩展(e2e tf 通路 golden 注册与真机验证) See merge request: cann/ops-math!6983 | 1 天前 | |
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 1 个月前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
fix(diag_v2,batch_to_space,cosh,diag_flat): 修复检视与上板回归发现的校验缺失、注册与文档缺陷 Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !6769 merge longtail into master fix(diag_v2,batch_to_space,cosh,diag_flat): 修复检视与上板回归发现的校验缺失、注册与文档缺陷 Created-by: yefeicoding Commit-by: yefeicoding Merged-by: cann-robot Description: ## 描述 按人工检视意见与 TTK 上板回归证据,修复 math 仓 4 个算子的校验缺失、注册错误、测试资产与文档规范问题(61 文件,+649/-443),缺陷明细见关联 Issue。 ### diag_v2 - 校验缺失(P1):arch35 tiling 增加 diagonal 取值域校验(-(m-1)<=k<=(n-1),含 INT64_MIN 溢出保护);arch35 tiling 拒绝 rank>2(原 rank=3 静默按 2D 读取 GetDim 产出错误结果);infershape 拒绝 rank=0 标量输入;aclnn CheckShape 补维度下限 1;空输出快速路径补 out shape 校验;OpDef x/y 补注册 DT_COMPLEX32/DT_COMPLEX128(对齐 proto 与基线声明) - 文档:README 调用说明表术语/列名对齐仓内规范、Kirin 产品名补 <term> 标记、输出参数名 out→y;aclnnDiag.md 补 BF16 产品差异(npu 标签)与空 Tensor 支持度、修正 161002 返回值;proto 注释 diagonal int32→int64;输入维度声明统一为 rank 1/2(经上板证据人工确认) - 测试资产:kernel ST 容差对齐逐位一致(spec.yaml bitwise_equal);golden.py License 头修复(OAT);交付文件行尾空白/EOF/clang-format/codespell 合规 ### batch_to_space - 注册格式(P1):x/y 由 NHWC 改为 ND,修复 TF E2E 通路交付算子在位不可达(GE 选核格式不匹配回退内置 aicpu_tf_kernel,bf16 全失败 EZ3002) - tiling(P1):搜索候选 totalCount 欠拷修复(bestRealCore 初值 1→0,首个可行候选必然记录;N>1 只处理首块的 50% 位错配);totalCount 按最终 (bestAxis,bestFactor) 对齐重算;workspace 设置统一到空/非空输出分发前 - infershape(P1):动态图下非 const crops 形状为未知描述符((-2,)→GetShapeSize=-2、(-1,-1)→1),原元素数校验误拒合法动态图;对齐 batch_to_space_nd 以 IsConstTensor 门控,非 const 校验交由运行时 tiling - golden:block_size=1 合法域(公开契约 >=1)改走 tf.raw_ops.BatchToSpaceND - UT:空输出 tiling 用例对齐 totalCount=1 现行契约;infershape 新增未知秩/未知维描述符回归用例 - 文档:README 数据类型全称化(BF16→BFLOAT16)、裁剪约束更正为 >=0 ### cosh - 0 维标量输入支持(P1):tiling 输入/输出形状经 EnsureNotScalar 归一化后比较;infershape rank-0 输出归一化为 {1}(平台标量约定,原 () 使 oom/DFX 代码生成 reduce(shape) 空序列崩溃) - golden:兼容 TF 2.6.5 零维 bfloat16 张量的 numpy 互操作(x.numpy() 中转) - 文档:README 移除 PyTorch API 调用说明行 ### diag_flat - 文档:aclnnDiagFlat.md 产品差异描述迁入「约束说明」并按产品打标签(npu="910"/"310p") - 测试资产:ST atk 用例回滚为原始 209 条 ## 关联的Issue - #4374 ## 测试 - TTK 上板回归(operator_test_case 用例库全量 L0+L1,Atlas 950PR / CANN 9.3.0,基线 c96b007d6): - diag_v2:aclnn 595/595、GEIR 1034/1034(含 uint16/32/64 231 例);kernel 全量 202/202(三模式+oom);异常 8 条(diagonal 越界/INT64_MIN/rank>2)均显式拒绝 - batch_to_space:GEIR 620/620、TF 620/620(cst/dyn 双模式) - cosh:aclnn 707/708、inplace 704/704、GEIR 687/687、TF 687/687(唯一未过为用例构造问题:零 stride 广播 out,非算子缺陷) - diag_flat:kernel 1120/1122、GEIR 1063/1063、aclnn 214/214(2 例声明形状 2^32 超 HBM 预检不可执行) - UT:BatchToSpaceTilingTest 11/11、BatchToSpaceInfershapeTest 8/8 - pre-commit 全钩子(trailing-whitespace/EOF/clang-format/ruff/codespell/OAT)通过 ## 文档更新 - conversion/diag_v2/README.md、docs/aclnnDiag.md、op_graph/diag_v2_proto.h - conversion/batch_to_space/README.md - conversion/diag_flat/docs/aclnnDiagFlat.md - math/cosh/README.md ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6769 | 3 天前 | |
math仓算子适配350 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !5906 merge master into master math仓算子适配350 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 math仓算子适配350 ## 关联的Issue [math仓算子适配350](https://gitcode.com/cann/ops-math/issues/3463) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5906 | 23 天前 | |
fix: 修复aclnnLtScalar非RegBase路径空指针错误码 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !6749 merge fix_LtScalar_1027 into master fix: 修复aclnnLtScalar非RegBase路径空指针错误码 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 背景 Issue #3913:aclnnLtScalar / aclnnInplaceLtScalar 在 self / other(原地 selfRef)传空指针时,非 RegBase(A2/A3)路径返回 ACLNN_ERR_INNER_NULLPTR(561103),与资料要求及 RegBase 路径的 ACLNN_ERR_PARAM_NULLPTR(161001) 不一致,且与同函数内 out 空指针的返回码矛盾。 ## 修改 math/less/op_api/aclnn_lt_scalar.cpp 非 RegBase 路径 aclnnLtScalarGetWorkspaceSize: - CHECK_RET(other != nullptr, ACLNN_ERR_INNER_NULLPTR) -> ACLNN_ERR_PARAM_NULLPTR - CHECK_RET(self != nullptr, ACLNN_ERR_INNER_NULLPTR) -> ACLNN_ERR_PARAM_NULLPTR aclnnInplaceLtScalarGetWorkspaceSize 经 const_cast 转发到同一函数,selfRef 场景自动覆盖。 ## UT 同步 同步更新 4 处 UT 空指针断言(test_lt_scalar.cpp / test_inplace_lt_scalar.cpp)为 ACLNN_ERR_PARAM_NULLPTR。 ## 验证 - A2(910B3)/ CANN 9.2.0 环境构建 opapi 库成功(bash build.sh --opapi) - 链接修改后构建的 libopapi_math.so 运行复现用例,6 场景全部符合预期: - 合法输入 -> 0(无回归) - self / other / selfRef 空指针 -> 161001 - out 空指针 -> 161001(与修改前一致) See merge request: cann/ops-math!6749 | 4 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
coalesce_sparse/cummin适配960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6776 merge backBlue1 into master coalesce_sparse/cummin适配960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 CoalesceSparse、Cummin 两个算子新增 Ascend960DT(NpuArch::DAV_9201)平台支持,使二者可在 Ascend960DT 上完成注册、编译与运行。 具体改动: - CoalesceSparse(conversion/coalesce_sparse): - 在 op_host/coalesce_sparse_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicore_config),完成 Ascend960DT 计算单元注册;同时对输入/输出 DataType、Format、UnknownShapeFormat 的换行格式做统一整改,并补齐文件末尾换行。 - 在 op_host/coalesce_sparse_tiling.cpp 的 TilingKeyCalcu、TilingDataCalcu 中,将 isAscend950 判定由仅 DAV_3510 扩展为 DAV_3510 || DAV_9201,使 Ascend960DT 复用 Ascend950 的 tiling key 与多核任务切分逻辑。 - 新增 op_host/config/ascend960dt/coalesce_sparse_binary.json,覆盖 12 组 dtype 组合(unique_len/unique_indices 为 int64/int32,indices 为 int64/int32,values 为 float32/float16/int32);新增 coalesce_sparse_simplified_key.ini(default=0)。 - Cummin(math/cummin): - 在 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 在 op_host/cummin_def.cpp 中新增 AddConfig("ascend960dt", aicoreConfig),并补齐文件末尾换行。 - 新增 op_host/config/ascend960dt/cummin_binary.json,覆盖 float16/bfloat16/float32/int32 四组 dtype(输入输出同 dtype,另输出 int32 的 argmin);新增 cummin_simplified_key.ini(default=0)。 - 二进制配置:在 scripts/kernel/binary_config/ascendc_config.json 中,为 CoalesceSparse 的 compute_units 增加 ascend960dt 并补充 ascend960dt 的 compile_options(-mllvm -cce-aicore-dcci-before-kernel-end=false);为 Cummin 的 compute_units 增加 ascend960dt。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 CoalesceSparse、Cummin 在 Ascend960DT 下均能正常注册与编译,并生成对应 kernel 二进制。 - 二进制/交付件验证:确认两算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含对应的 ascend960dt 编译单元。 - 功能验证:在 Ascend960DT 上分别运行两算子的 aclnn 用例,覆盖各自 binary 配置中的 dtype 与 shape 组合,结果与 Golden 一致。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6776 | 3 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
aclnn确定性开关配置变更和产品名变更,简化md表格语法,删除冗余css样式 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6613 merge master into master aclnn确定性开关配置变更和产品名变更,简化md表格语法,删除冗余css样式 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - aclnn确定性开关配置变更:aclrtCtxSetSysParamOpt改为aclrtSetSysParamOpt - 产品名变更 - 简化md表格语法,删除冗余css样式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [# 3833](https://gitcode.com/cann/ops-math/issues/3833) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> \*.md acl\*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6613 | 11 天前 | |
fix: 修复 cumulative_logsumexp 示例头文件引用路径 Co-authored-by: qq_37917228<yanmingkui@huawei.com> # message auto-generated for no-merge-commit merge: !6965 merge fix/cumulative-logsumexp-example into master fix: 修复 cumulative_logsumexp 示例头文件引用路径 Created-by: qq_37917228 Commit-by: qq_37917228 Merged-by: cann-robot Description: ## 描述 修复 cumulative_logsumexp 图模式示例的头文件引用路径问题。 math/cumulative_logsumexp/examples/test_geir_cumulative_logsumexp.cpp 原以 #include "cumulative_logsumexp_proto.h" 直接引用 proto 头文件,而该头文件实际位于 op_graph/ 目录,导致示例编译时找不到头文件。 改为相对路径 #include "../op_graph/cumulative_logsumexp_proto.h",与同仓其他算子示例(zeta、acosh、add 等)的引用方式保持一致。 ## 关联的Issue Fixes #4382 ## 测试 - 修复后示例 test_geir_cumulative_logsumexp 可正常编译,头文件正确解析 - 引用方式与同仓其余 20+ 个算子示例的 proto 头文件引用惯例一致 ## 文档更新 无需更新文档(仅示例代码修复) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6965 | 2 天前 | |
Math仓算子适配Ascend350平台 Co-authored-by: huairuchen<chenhuairu@huawei.com> # message auto-generated for no-merge-commit merge: !6372 merge dvlite-math-350-adapt into master Math仓算子适配Ascend350平台 Created-by: huairuchen Commit-by: huairuchen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Math仓部分随机数算子在350平台进行适配 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4202 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 算子泛化测试,冒烟测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6372 | 5 天前 | |
math仓算子适配350 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !5906 merge master into master math仓算子适配350 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 math仓算子适配350 ## 关联的Issue [math仓算子适配350](https://gitcode.com/cann/ops-math/issues/3463) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5906 | 23 天前 | |
DenseBincount算子检视意见闭环 Co-authored-by: tianyu52<tianyu52@huawei.com> # message auto-generated for no-merge-commit merge: !6942 merge master into master DenseBincount算子检视意见闭环 Created-by: tianyu52 Commit-by: tianyu52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 当前infershape层对size入参强校验,TF场景下合法{}分型会被拒绝,需要修改算子校验逻辑,infershape层允许放通{},tiling层使用仓内公共 EnsureNotScalar 将标量 {}规范化为 {1},再按“一维单元素”校验和取值。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> UT/ST ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6942 | 2 天前 | |
diag等算子冗余workspace改为分配0 Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !6418 merge new_ww into master diag等算子冗余workspace改为分配0 Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> diag等算子冗余workspace改为分配0 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3678 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码整改 See merge request: cann/ops-math!6418 | 13 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
修复issue的问题 Co-authored-by: sakuraqqz<furao15@h-partners.com> # message auto-generated for no-merge-commit merge: !6812 merge master into master 修复issue的问题 Created-by: sakuraqqz Commit-by: sakuraqqz Merged-by: cann-robot Description: ## 描述 本 PR 修复 6 个算子问题,均为 Bug 修复(含 1 项文档修正): 1. **is_inf 尾块越界读写(#3925)**:数据长度不足 32B 对齐时,尾块原先按 32B 整倍搬运导致 GM 越界读/写。修复为整块用 DataCopy、尾块用 DataCopyPad 按真实字节搬运,ComputePerCore 尾块输出按真实计数写出。math/is_inf/op_kernel/is_inf.h。 2. **addcmul value=NaN 走错快路径(#3894)**:IsEqualToOne 对 NaN 判等为 true(所有比较均 false 取反),导致 value=NaN 时误走 AxpyV2 快路径、缺失 value 项。修复为显式排除 NaN。math/addcmul/op_api/aclnn_addcmul.cpp。 3. **cdist 非法 shape 返回码(#3929)**:out 形状与推导不匹配时返回内部空指针错误 561103,修复为在 GetWorkspaceSize 增加 out 期望形状校验,返回标准参数错误 161002。math/cdist/op_api/aclnn_cdist.cpp。 4. **div 非法参数返回码(#3962)**:日志错误码与返回码不一致,统一返回 161002。math/div/op_api/aclnn_div.cpp。 5. **VarMean 文档矛盾(#4182)**:中英文档 self 维度列由 1-8 修正为 0-8(与「shape 支持 0 到 8 维」及 meanOut/varOut 的 0-8 保持一致);参数表 varOut/meanOut 行序与原型(varOut 为第 5 参、meanOut 为第 6 参)对齐。math/reduce_var/docs/。 6. **LinSpace legacy tiling 丢失 INT64 num 精度(#3347):** LinSpaceGetConstValue 的 DT_INT64 分支先将 int64_t 经 float 转换,num=16777219 被舍入为 16777220,与 InferShape 输出维度不一致;修复为直接读取 int64 数值、经 double 无损保留。math/lin_space/op_host/lin_space_tiling.cpp。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3925 - https://gitcode.com/cann/ops-math/issues/3894 - https://gitcode.com/cann/ops-math/issues/3929 - https://gitcode.com/cann/ops-math/issues/3962 - https://gitcode.com/cann/ops-math/issues/4182 - https://gitcode.com/cann/ops-math/issues/3347 ## 测试 910B3 / CANN 9.3.0 上板验证(2026-10-29): - **is_inf**:尾块用例长度 17/25/31/33/40(非 32B 对齐),尾部放置 inf/-inf/nan,输入输出 buffer 后 64B 金丝雀检测越界,5 组全部 PASS 且无越界读写。 - **addcmul**:value=NaN → out=NaN(修复前误得 7.0);value=1.0/2.0 回归正常。 - **cdist**:out 形状不匹配返回 161002,合法形状返回 0。 - **div**:shape 不匹配/非法 mode 均返回 161002。 - **VarMean**:issue 复现脚本实测命中 0 处(纯文档改动,无需上板)。 - **LinSpace**:tiling data 中 num=16777219 保留、InferShape 输出 [16777219](num=17 对照),Host UT 6/6 PASS,基线回归证实旧实现舍入为 16777220。 ## 文档更新 - math/reduce_var/docs/aclnnVarMean.md、math/reduce_var/docs/aclnnVarMean_en.md(维度范围与参数顺序修正)。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6812 | 3 天前 | |
fix(proto): 修复39个算子proto.h注释的拼写与语法错误 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !5815 merge fix/proto-comment-grammar into master fix(proto): 修复39个算子proto.h注释的拼写与语法错误 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 对 39 个算子的 op_graph/*_proto.h 注释做拼写与语法修复,仅注释与格式变更,不涉及任何代码逻辑: - **拼写错误**:select_v2 condittion→condition(2处)、axpy_v2 opratioan→operation、clip_by_value 英文 dtype 列表中的全角逗号改半角 - **系统性语法(历史模板复制扩散)**:Support broadcasting→Supports broadcasting(27个文件)、A ND→An ND(33个文件97处) - **单文件语法修复 71 处(含 signbit returns→Returns、axpy should→Should 两处句首大写补漏)**:ger has→have、addcmul/addcdiv multiply→multiplies、muls An required→A required、equal (x=y)→(x1==x2)、Elementwise→Element-wise、bias_add/lerp/gcd 语序与冠词修复、aicore→AiCore、mod/floor_mod 矛盾表述统一、句首大小写与标点空格等 - 附带 pre-commit 钩子强制规范化(clang-format 重排、尾随空白、文件末尾换行),并保留各文件原有行尾风格(CRLF/LF) 涉及算子:add/sub/mul/muls/div/real_div/floor_div/div_no_nan/pow/minimum/maximum/signbit/less/less_equal/greater/greater_equal/not_equal/equal/bias_add/squared_difference/lerp/logical_and/logical_or/bitwise_or/bitwise_and/bitwise_xor/tanh_grad/axpy/axpy_v2/addcmul/addcdiv/select/select_v2/mod/floor_mod/ger/gcd/clip_by_value/clip_by_value_v2 ## 关联的Issue - #3234 - https://gitcode.com/cann/ops-math/issues/3234 ## 测试 - 纯注释变更,无功能影响 - pre-commit 钩子全部通过(clang-format / trailing-whitespace / end-of-file-fixer / codespell / OAT 合规检查) - 严格限定在上述 39 个算子文件,全仓其余算子未改动(其余算子同类问题可后续另行清理) ## 文档更新 不涉及仓内 docs/ 目录;本 PR 即为 proto.h 注释(算子原型文档源)的修正 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5815 | 9 天前 | |
fix(math): align arch35 UT tiling key with opbase reduce template upgrade Co-authored-by: sunzhongwen1<sunzhongwen1@huawei.com> # message auto-generated for no-merge-commit merge: !6803 merge fix/issue-4193-4192-ut-tiling-key into master fix(math): align arch35 UT tiling key with opbase reduce template upgrade Created-by: sunzhongwen1 Commit-by: sunzhongwen1 Merged-by: cann-robot Description: ## 描述 opbase 依赖升级(cann/opbase!519「新增 batch 一致性需求的 reduce 模版」)在 pkg_inc/op_common/atvoss/reduce/reduce_tiling_key_decl.h 的 REDUCE_TPL_KEY_DECL() 中于 IsContiguous 之后插入 BatchInvariant(bool) 位,使 PatternID / LoopARCount / LoopInnerARCount 整体左移 1 位,同一 tiling 参数的 reduce 模板 tiling key 由 K 变为 2K-1。Dot 与 BiasAddGrad 的 arch35 op_host UT 仍冻结旧值,用例未随依赖升级同步而失败。 本 PR 同步两个算子的 UT 期望值: - BiasAddGradTiling:5161→10321、141375→282749、6167→12333、11839→23677 - DotTiling:5143→10285;同时同步 expectTilingData 中受同一次 opbase 升级影响的 useNddma 字段(8 字节打包字 1040187392→4467570830351532033) ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/4193 - https://gitcode.com/cann/ops-math/issues/4192 Fixes #4193 Fixes #4192 ## 测试 bash build.sh -u --opapi --ophost --soc=ascend950 --gtest_filter="DotTiling*:BiasAddGradTiling*" 结果:5/5 PASSED(改动前 5 个用例均失败) ## 文档更新 无 ## 类型标签 - [x] Bug修复 See merge request: cann/ops-math!6803 | 4 天前 | |
Math仓算子适配Ascend350平台 Co-authored-by: huairuchen<chenhuairu@huawei.com> # message auto-generated for no-merge-commit merge: !6372 merge dvlite-math-350-adapt into master Math仓算子适配Ascend350平台 Created-by: huairuchen Commit-by: huairuchen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Math仓部分随机数算子在350平台进行适配 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4202 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 算子泛化测试,冒烟测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6372 | 5 天前 | |
fix(math): 修正equal/frac/affine_grid算子文档与头文件描述对齐实现 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !6852 merge fix_MD_1029 into master fix(math): 修正equal/frac/affine_grid算子文档与头文件描述对齐实现 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 本 PR 汇总修正 4 处 math 算子文档/头文件注释与实现不一致的问题,均为描述性修正,不涉及代码逻辑改动: 1. **aclnnIsInScalarTensor**(math/equal/docs/aclnnIsInScalarTensor.md 及英文版):out 参数说明由「shape与testElements相同」修正为「0维标量」,维度列改为 0,并同步修正错误码表 161002 子项为「testElements的维度超过8维」「out的维度不是0维」,对齐实现 OP_CHECK_WRONG_DIMENSION(out, 0),消除文档自相矛盾。 2. **aclnnInplaceFrac**(math/sub/docs/aclnnFrac&aclnnInplaceFrac.md):inputRef 参数角色由「输入」修正为「输入/输出」,补充「计算结果原地写回该tensor」语义说明。 3. **aclnnAffineGrid**(math/affine_grid/docs/aclnnAffineGrid.md):错误码表 161002 新增「theta为空tensor」子项(对齐实现空 tensor 校验);约束说明补充「size中的C不参与计算,对取值无约束」。 4. **aclnnFrac**(math/sub/op_api/aclnn_frac.h):头文件注释三处 dtype 声明补齐 BFLOAT16,并注明「在Atlas训练系列产品上不支持该数据类型」,对齐资料与实现(A2/A3/950 支持 BF16,Atlas 训练系列不支持)。 ## 关联的Issue - #4109(aclnnIsInScalarTensor out shape 描述与实现矛盾) - #4134(aclnn_frac.h 头文件 dtype 声明缺 BFLOAT16) - [#4124](https://gitcode.com/cann/ops-math/issues/4124) - [#4129](https://gitcode.com/cann/ops-math/issues/4129) ## 测试 本次改动均为文档/注释修正,不涉及代码逻辑,无运行测试需求。 相关行为已由实现侧真机验证:aclnnIsInScalarTensor 在 A2 910B2 上 out 为 0 维标量正常返回(161002 仅在 out 非 0 维时上报);aclnnFrac 的 BFLOAT16 在 A2 上 407 条用例全部通过。 ## 文档更新 - math/equal/docs/aclnnIsInScalarTensor.md - math/equal/docs/aclnnIsInScalarTensor_en.md - math/sub/docs/aclnnFrac&aclnnInplaceFrac.md - math/affine_grid/docs/aclnnAffineGrid.md - math/sub/op_api/aclnn_frac.h(doxygen 注释) ## 类型标签 - [x] Bug修复 - [x] 文档更新 - [ ] 新特性 - [ ] 性能优化 - [ ] 其他,请描述: See merge request: cann/ops-math!6852 | 3 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
Kirin X90/9030支持Cast/Mul/Transpose/Add/ConcatD/StridedSlice算子 Co-authored-by: chenlong1<chenlong1@huawei.com> Co-authored-by: jinzy1999<jinzy@pku.edu.cn> # message auto-generated for no-merge-commit merge: !6581 merge master into master Kirin X90/9030支持Cast/Mul/Transpose/Add/ConcatD/StridedSlice算子 Created-by: chenlong1 Commit-by: chenlong1;jinzy1999 Merged-by: cann-robot Description: ## 描述 Kirin X90/9030支持Cast/Mul/Transpose/Add/ConcatD/StridedSlice算子 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3790 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6581 | 4 天前 | |
test: 修复exp_segsum_grad aclnn golden签名缺输出参数并对齐精度标准 Co-authored-by: qq_37917228<yanmingkui@huawei.com> # message auto-generated for no-merge-commit merge: !6814 merge fix/exp_segsum_grad_golden into master test: 修复exp_segsum_grad aclnn golden签名缺输出参数并对齐精度标准 Created-by: qq_37917228 Commit-by: qq_37917228 Merged-by: cann-robot Description: ## 描述 修复 exp_segsum_grad 的 aclnn golden( math/exp_segsum_grad/tests/assets/golden.py)三处问题: 1. **golden 签名缺输出参数**:ttk 框架的 aclnn golden 按头文件形参顺序位置下发全部张量形参(含输出)。aclnnExpSegsumBackward(gradOutput, gradSelf, gradInput) 是三个张量形参(见 math/exp_segsum_grad/op_host/op_api/aclnn_exp_segsum_backward.h:65),原签名只有 (gradOutput, gradSelf),ttk 调用即 TypeError → 用例 GOLDEN_FAILURE。现补齐 gradInput 输出占位参数(真值仍由 gradOutput/gradSelf 算出),与同仓 segsum 的 SegsumAclnnSpec 约定一致。 2. **空 shape 保护**:batch=0 或 N=0 时按 infershape 结果(gradOutput.shape[:-1])直接返回空 tensor 占位。 3. **精度标准对齐**:aclnn 侧 stat_rel_err → mix_tolerance,与仓内 golden 主流标准一致(segsum/erfc/inv 等)。 ## 关联的Issue close #4220 ## 测试 - [x] 全量回归完成:49/49 全部 PASS(100%) ## 文档更新 无需更新文档(仅测试 golden 脚本变更) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6814 | 1 天前 | |
feat: tile、expand、broadcast_to算子infershape整改 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !6797 merge dev_1030 into master feat: tile、expand、broadcast_to算子infershape整改 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> tile、expand、broadcast_to算子infershape整改,功能与RT1.0对齐 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4273 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6797 | 4 天前 | |
math仓算子适配350 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !5906 merge master into master math仓算子适配350 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 math仓算子适配350 ## 关联的Issue [math仓算子适配350](https://gitcode.com/cann/ops-math/issues/3463) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5906 | 23 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
docs: 修复math算子文档错误码表缺项并对齐数据类型约束与实现 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !6765 merge fix_mathMD_1028 into master docs: 修复math算子文档错误码表缺项并对齐数据类型约束与实现 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 本次PR针对多个math算子文档与实现不一致或错误码表缺项的问题进行修复,共涉及6份算子文档: 1. aclnnMaxDim:错误码表161002补充"self、out、indices维度大于8时"子项,与参数表维度0-8说明对齐; 2. aclnnBitwiseXorTensor:删除out不支持UINT16/UINT32/UINT64/COMPLEX64/COMPLEX128的约束描述,对齐实际实现的放行行为; 3. aclnnFloor:删除非连续Tensor列UINT16/UINT32/UINT64不支持的无效约束(A2真机实测非连续输入均正常支持); 4. aclnnLeScalar/aclnnLeTensor:补充out、selfRef不支持UINT32/UINT64的平台约束(910/310p、A3/910b),并合并到既有平台约束块; 5. aclnnNeTensor:补充Atlas A2/A3系列self、other不支持UINT64的约束说明(A2真机验证放开校验会产生错误结果,当前拒绝行为是安全的)。 ## 关联的Issue - #3884:aclnnMaxDim错误码表缺少维度大于8子项 - #3881:aclnnBitwiseXorTensor文档声明out不支持UINT16/UINT32/UINT64/COMPLEX64/COMPLEX128与实现不符 - #3883:aclnnFloor文档多写非连续Tensor不支持UINT16/UINT32/UINT64约束 - #3853:aclnnNeTensor A2平台UINT64支持说明与实现不符 - #3889:aclnnLeTensor/aclnnLeScalar out支持UINT32/UINT64与实现不符 ## 测试 本次为纯文档修改,无代码变更。各文档改动均经实现代码(dtype支持列表、校验逻辑)静态核对,并对以下场景在A2真机验证: - aclnnFloor非连续UINT16/UINT32/UINT64输入6组用例全部成功且结果正确; - aclnnNeTensor UINT64放开校验后输出全假并伴随堆内存损坏,确认kernel未实现UINT64模板,以文档约束闭环; - aclnnBitwiseXorTensor COMPLEX64/COMPLEX128输出语义验证通过。 ## 文档更新 - math/arg_max_with_value/docs/aclnnMaxDim.md - math/bitwise_xor/docs/aclnnBitwiseXorTensor&aclnnInplaceBitwiseXorTensor.md - math/floor/docs/aclnnFloor&aclnnInplaceFloor.md - math/less_equal/docs/aclnnLeScalar&aclnnInplaceLeScalar.md - math/less_equal/docs/aclnnLeTensor&aclnnInplaceLeTensor.md - math/not_equal/docs/aclnnNeTensor&aclnnInplaceNeTensor.md ## 类型标签 - [x] 文档更新 See merge request: cann/ops-math!6765 | 4 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
处理一些issues,修改部分文档 Co-authored-by: Boyang_Zhang<zhangboyang15@h-partners.com> # message auto-generated for no-merge-commit merge: !6858 merge issue4000 into master 处理一些issues,修改部分文档 Created-by: BoyangZhang Commit-by: Boyang_Zhang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 处理一些issues,修改部分文档 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4000 https://gitcode.com/cann/ops-math/issues/4001 https://gitcode.com/cann/ops-math/issues/4013 https://gitcode.com/cann/ops-math/issues/4015 https://gitcode.com/cann/ops-math/issues/4019 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6858 | 3 天前 | |
sinc等算子冗余workspace改为分配0 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !6261 merge workspace into master sinc等算子冗余workspace改为分配0 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> sinc等算子冗余workspace改为分配0 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3611 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 代码整改 See merge request: cann/ops-math!6261 | 18 天前 | |
[fresnel_sin] quality-hardening:算子质量加固修复(准入+检视问题整改) Co-authored-by: handsomeRobot_SK<suke13@huawei.com> # message auto-generated for no-merge-commit merge: !6194 merge fresnel_sin_quality_hardening into master [fresnel_sin] quality-hardening:算子质量加固修复(准入+检视问题整改) Created-by: handsomeRobot_SK Commit-by: handsomeRobot_SK Merged-by: cann-robot Description: # [fresnel_sin] quality-hardening:算子质量加固修复(准入+检视问题整改) ## 一、变更概述 本 PR 为 fresnel_sin 算子转测准入(ops-admission-scan 白盒)+ 代码检视(ascendc-code-review file-review 全量)双报告问题的整改合入: - **准入扫描(2026-09-23)**:唯一真实 FAIL 为 ascend950 ini [FresnelSin] section 残留(P-E3,已由上游 canndev legacy 下线删除闭环);另一自动化 FAIL(15.5 f_dtype)经人工复核为 README "DOUBLE" 措辞被 dtype 正则误命中的工具误报;另有提示级问题 P-D/P-D2/P-INFO。 - **代码检视(2026-09-23)**:LOG-1 裸 OP_LOGE FAIL 5 处(H1-H5)、SUSPICIOUS 6 项(L1-L6)、设计一致性偏差 5 项(M1-M5)、风格 3 项(S1-S3)、文档格式 3 处(D1-D3)。 修复对象覆盖主线(math/fresnel_sin/,GE 交付主体,TBE 结构)与实验侧(experimental/math/fresnel_sin/,Ascend C l0op + aclnn 两段式)**双实现**:日志结构化、UB 容量校验、TilingData 字段整治、输出舍入模式对齐、大值截断机制显式化(两实现口径一致)等;交付件 DESIGN.md/REQUIREMENTS.md 同步至 v1.1,测试用例补齐空 tensor/边界/压力用例。共 7 个代码 commit(基线 2a12b1423 起)+ 2 个交付件同步 commit(625b165/8a47e70 中本算子部分)。 **适用审阅视角**:主线/实验侧均为 kernel + tiling + host 混合改动;无属性算子(proto/def 无 ATTR),无 TensorList/SIMT/MC2 路径介入。 ## 二、分类修改清单 ### (一)代码(ops-math 仓,主线 math/fresnel_sin + 实验侧 experimental/math/fresnel_sin) | 文件(范围) | 修改内容 | 对应问题 | |---|---|---| | 实验侧 op_host/arch35/fresnel_sin_tiling.cpp | H1/H2 裸 OP_LOGE 改结构化宏(EZ0016/EZ0007);新增 GetTileUbBytes() UB 容量校验(不足报错);删除只写不读字段写入(L5);4 处单行 if 补大括号(S2) | H1/H2、L2、L5、S2 | | 实验侧 op_kernel/arch35/fresnel_sin_tiling_data.h | baseLength/tailLength 由 uint32_t 改 int64_t,防 GM 偏移截断 | L1 | | 实验侧 op_kernel/arch35/fresnel_sin.h | 输出 Cast 由 CAST_NONE 改 CAST_RINT(M1);1e-30f 魔数命名 EPS_GUARD(L3) | M1、L3 | | 实验侧 op_api/aclnn_fresnel_sin.cpp、op_api/fresnel_sin.cpp | 3 处裸 OP_LOGE 改 OP_LOGE_WITH_INVALID_INPUT_DTYPE / OP_LOGE_FOR_INVALID_SHAPES_WITH_REASON(H3/H4/H5) | H3/H4/H5 | | 实验侧 op_api/aclnn_fresnel_sin.h | 头注释空 tensor 措辞明确化(0-8 维任意 shape 含空 tensor) | P-D2 | | 主线 op_kernel/arch35/fresnel_sin.h | 死代码清理(未用常量、被覆盖的 NaN 掩码 Compare,L4);恢复 ASYM_THRESH=36974.0f 并接入 CompareScalar(GE) 显式截断分支(L6);单行 if 补大括号、成员变量分行声明(S1/S3) | L4、L6、S1、S3 | 修复机制说明(L6):主线大值截断由原先 |x|==|x|+1 饱和(≈2^24 起触发)改为显式 |x|≥36974(GE)阈值分支,[36974, 2^24) 区间按 DESIGN §1.3 显式截断为 sign(x)*0.5,±Inf 同落该掩码,与实验侧 maskClamp(Compare(maskClamp, |x|, 36974, GE))口径一致;结果数值等价,两实现机制对齐。 ### (二)资料(operator-artifacts/fresnel_sin 交付件) | 文件 | 修改内容 | 对应问题 | |---|---|---| | DESIGN.md(v1.1) | workspace 非 0(系统 Sin/Cos 临时空间)说明、arch22 未实现状态说明、双实现 TilingKey/TilingData 差异记录、输出 Cast 舍入 CAST_RINT、主线大值截断机制说明 | M3/M4/M5 收口 + L6 机制同步 | | REQUIREMENTS.md(v1.1) | workspaceSize 参数口径修正(GetLibApiWorkSpaceSize,可能非 0;空 tensor 时为 0)、Workspace/资源约束章节同步、GE 图模式静态/动态 shape 支持标记修正;"0-8 维" 空格清理(D1/D2) | M3/M4 + D1/D2 | | DESIGN.md:414 | "248 KB" 改 "248KB"(D3);v1.1 版本历史留痕 | D3 | ### (三)用例(operator-artifacts/fresnel_sin/测试用例) - fresnel_sin_tf_e2e_cases.csv:新增 18 条——rank5-8 各 1、1GiB 压力 fp32/fp16/bf16 各 1、特殊值(±0、NaN、±Inf)三 dtype 各 1、空 tensor 1D(fp16/bf16)与 2D 0×3(fp32/fp16/bf16)共 5、边界值(fp32 max/denorm、fp16 max/min、bf16)3; - test_cases_spec.csv:新增 5 条**空 tensor 边界用例**(1D 空、2D 0×3,fp16/bf16/fp32,带容差列),补齐覆盖度报告指出的空 tensor 专项用例缺口。 ## 三、逐 commit 摘要表 ops-math 分支(基线 2a12b1423 → HEAD,7 个): | # | commit | 标题 | 涉及文件 | 对应问题 | |---|---|---|---|---| | 1 | 32fc3c64c | fix: 实验侧 tiling LOG-1 结构化日志+UB 容量校验+TilingData 字段整治 | 实验侧 tiling.cpp、tiling_data.h | H1/H2、L1、L2、L5 | | 2 | ffcd16efe | fix: 实验侧 kernel 输出 Cast 改 CAST_RINT+命名 1e-30f 魔数 | 实验侧 kernel fresnel_sin.h | M1、L3 | | 3 | 8319a90ed | fix: 清理主线 kernel 死代码 | 主线 kernel fresnel_sin.h | L4 | | 4 | fa23a8441 | docs: 修正 aclnn 头注释空 tensor 措辞 | 实验侧 aclnn_fresnel_sin.h | P-D2 | | 5 | 34e9e4786 | fix: op_api 三处裸 OP_LOGE 改用结构化预定义宏 | 实验侧 aclnn_fresnel_sin.cpp、fresnel_sin.cpp | H3/H4/H5 | | 6 | 84d83c99e | style: 补齐 STYLE-2.4 大括号与 STYLE-2.8 变量分行 | 实验侧 tiling.cpp、主线 kernel fresnel_sin.h | S1/S2/S3 | | 7 | 02039ad1e | fix: 主线显式实现 36974 大值截断阈值(L6) | 主线 kernel fresnel_sin.h | L6 | 交付件同步(operator-artifacts 仓,本算子部分): | # | commit | 标题 | 涉及文件 | 对应问题 | |---|---|---|---|---| | 8 | 625b165 | quality-hardening: 19算子批量修复(本算子部分) | fresnel_sin/DESIGN.md(v1.1)、REQUIREMENTS.md(v1.1)、测试用例/fresnel_sin_tf_e2e_cases.csv(+18)、test_cases_spec.csv(+5) | M3/M4/M5、D1-D3、用例补齐 | | 9 | 8a47e70 | quality-hardening: 第二轮补修(本算子部分) | fresnel_sin/DESIGN.md(区间3 阈值符号 GT→GE、"两实现一致"口径)、REQUIREMENTS.md | L6 交付件口径同步 | 外部闭环:P-E3(ascend950 ini [FresnelSin] 残留)随 canndev 上游 legacy 下线提交(2026-09-18,删除含 FresnelSin 在内 20 个算子的 ascend950 ini 段)删除;已复核当前 ascend950 ini 无该 section。 ## 四、测试与验证 ### 构建(主线/实验侧两套实现均覆盖) - **主线包全量构建**(含 kernel bin 重编):通过(commit 02039ad1e 验证记录); - **实验侧全量构建**:通过(commit 34e9e4786 验证记录,含 opapi 目标日志栈隔离改动); - **代码风格**:clang-format dry-run 校验通过,大括号/分行整改不被格式化工具回退(commit 84d83c99e 验证记录)。 ### 白盒准入复扫(无 NPU 静态证据) - P-E3 修复后准入扫描无残留 FAIL 项(15.5 f_dtype 为工具误报另案,见未完成事项); - 异常三层检测(Tiling/op_api/LLM 审视)与工程规范 6 项(E1-E6)均 PASS; - 用例覆盖度:kernel 侧 95.9%、aclnn 侧 81.2%,均 PASS(≥80%),空 tensor 用例已按此轮改动补齐。 ### UT 与真机 - **UT**:受本地环境限制(ophost UT 进程无法找到算子 impl 注册 "not found FresnelSin",同仓 abs/fresnel_cos 对照也全挂),UT 未能跑通,待环境修复后复跑;本 PR 未改 UT 代码; - **精度/性能**:无 NPU 环境,未新增实测;沿用交付件历史精度/性能报告(operator-artifacts/fresnel_sin/测试报告/,2026-09-15/18,scipy golden 两方/三方)。M1(CAST_RINT)与 L6(显式 36974 阈值)均为机制对齐类修改:前者直接降低 fp16/bf16 舍入误差,后者数值与原饱和路径等价(区间 3 输出恰为 ±0.5 边界值),预期不影响既有精度结论,真机验证随转测执行。 ## 五、未完成事项与限制(审阅须知) ### 三禁区声明(需架构/产品裁决,不在本 PR 范围) 1. **ACLNN 接口交付范围未定**(admission P-D):实验侧手写 aclnn 两段式接口存在但当前 ACLNNTYPE=aclnn_exclude + DISABLE_IN_OPP,全仓无 docs/aclnnFresnelSin.md。若实验侧随交付则需补文档(含错误码表,覆盖 ACLNN_ERR_PARAM_NULLPTR/PARAM_INVALID);此 PR 未动 aclnn 交付配置与文档目录结构。 2. **910B(arch22/DAV_2201)产品支持矛盾**(code-review M2):spec.yaml/REQUIREMENTS/README 声明支持 Ascend910B,实现仅 arch35 且 l0op 强制 DAV_3510,无 op_kernel/arch22 目录;DESIGN v1.1 仅记录了"arch22 未实现"状态说明,spec/需求的声明未改动(删声明或补实现属产品决策)。 3. **主线(GE)与实验侧(Ascend C)双实现并存,交付侧别未收敛**(admission P-INFO + 检视附注 3):两实现算法同源但接口/结构差异大,REG_OP(FresnelSin) 仅主线有;收敛其一属大改动,需架构裁决。DESIGN v1.1 §3.2/§3.3 已记录双实现差异,未做收敛决策。 ### 环境限制 - **无 NPU/TTK**:GEIR TTK 动态 shape 真机测试、异常输入真机实测(admission 标记 UNAVAILABLE)及覆盖度报告残留缺口(DT_INT32 边界 ±2.14748e+09、UB 整除、aclnn 异常用例部分)未补证,待转测拿到 NPU 后执行 run_ttk_geir.sh / run_ttk_exception.sh 并回填测试报告目录。 ### 已知未修低危项 / 工具冲突 - README 约束说明 "不支持DOUBLE(FP64)" 措辞仍会触发扫描器 dtype 正则误报(P-W1,为规避需确认扫描器口径的文档措辞改动);无有意设计类未修项。 以上 5 项未修项的完整条目、决策人与修复条件,见 /home/s00947152/LongTail/guide/未修项明细/fresnel_sin_未修项明细.md。 See merge request: cann/ops-math!6194 | 20 天前 | |
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 1 个月前 | |
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 1 个月前 | |
OneHot,ConfusedTransposeD,FusedMulAddN等3个算子infershape&inferDataType缺失补充 Co-authored-by: tianyu52<tianyu52@huawei.com> # message auto-generated for no-merge-commit merge: !6617 merge feat/rt2-infer-4ops into master OneHot,ConfusedTransposeD,FusedMulAddN等3个算子infershape&inferDataType缺失补充 Created-by: tianyu52 Commit-by: tianyu52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> OneHot,ConfusedTransposeD,FusedMulAddN等3个算子infershape&inferDataType缺失补充 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> UT/ST ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6617 | 10 天前 | |
适配ascend350:11个conversion/math算子新增ascend350计算单元支持 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !6424 merge ascend350 into master 适配ascend350:11个conversion/math算子新增ascend350计算单元支持 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 11个conversion/math算子新增ascend350计算单元支持 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3649 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6424 | 15 天前 | |
docs(math): 修正Gcd README占位描述与实际交付不一致 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !6753 merge docs/gcd-readme into master docs(math): 修正Gcd README占位描述与实际交付不一致 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 math/gcd/README.md 为占位空壳,全文仅"本目录仅包含Gcd算子对应的aclnn接口"一句,与仓库事实矛盾:同目录 op_kernel/ 已有 AscendC 实现,op_host/gcd_def.cpp 注册的 opFile.value 即指向该 kernel 入口,而 docs/zh/op_list.md 索引直达该占位页。 本PR删除占位句,按算子README模板补齐章节: - 产品支持情况:与 docs/aclnnGcd.md 口径一致(含 Atlas 200I/500 A2推理产品不支持) - 功能说明:算子功能与计算公式 y = gcd(x1, x2) - 参数说明:参数表与 op_host/gcd_def.cpp 注册规格一致(x1/x2/y,UINT8、INT8、INT16、INT32、INT64,ND);分平台数据类型差异就近说明:Atlas A3/A2/推理系列产品不支持 UINT8、INT8,Atlas训练系列产品仅支持 INT32,与 op_api/aclnn_gcd.cpp 平台数据类型门控一致 - 约束说明:无(接口层约束见接口文档,不重复维护) - 调用说明:aclnn 样例、接口文档与算子IR(op_graph/gcd_proto.h)相对链接 ## 关联的Issue Closes #3718 ## 测试 纯文档修改,无代码与功能变更,无需上板验证。 - 参数表与 op_host/gcd_def.cpp 注册规格逐项一致;分平台数据类型差异说明与 op_api/aclnn_gcd.cpp 平台支持列表逐项一致;产品支持表与 docs/aclnnGcd.md 口径一致 - 相对链接逐项核验有效(docs/aclnnGcd.md、examples/test_aclnn_gcd.cpp、op_graph/gcd_proto.h) - pre-commit 通过 ## 文档更新 math/gcd/README.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6753 | 3 天前 | |
docs(math): 修正Ger README占位描述与实际交付不一致 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !6779 merge docs/ger-readme into master docs(math): 修正Ger README占位描述与实际交付不一致 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 math/ger/README.md为占位空壳,全文仅"本目录仅包含Ger算子对应的aclnn接口"一句,与仓库事实矛盾:同目录op_kernel/已有AscendC实现(入口ger_apt.cpp),op_host/ger_def.cpp亦注册了opFile.value指向该kernel入口,同目录还有接口文档docs/aclnnGer.md与样例examples/test_aclnn_ger.cpp,而docs/zh/op_list.md索引直达该占位页。 本PR删除占位句,按算子README模板补齐四个必选章节: - **产品支持情况**:与docs/aclnnGer.md产品支持口径一致 - **功能说明**:算子功能(一维向量外积)与计算公式 - **参数说明**:参数表与op_host/ger_def.cpp定义一致(x1/x2/y,BFLOAT16、FLOAT16、FLOAT,ND);分平台数据类型差异说明就近置于参数表下方:Atlas A3/A2/训练系列产品不支持BFLOAT16,与op_api/aclnn_ger.cpp平台数据类型门控一致 - **约束说明**:无(接口层约束见接口文档,不在README重复维护) - **调用说明**:aclnn API样例examples/test_aclnn_ger.cpp、接口文档与算子IR(op_graph/ger_proto.h)链接 ## 关联的Issue Closes #3719(拆分自#3691的13条"README声称仅接口但op_kernel已有实现"硬矛盾项之一) ## 测试 - 纯文档修改,无代码与功能变更,无需上板验证 - 相对链接逐项核验存在(docs/aclnnGer.md、examples/test_aclnn_ger.cpp、op_graph/ger_proto.h) - 参数表与op_host/ger_def.cpp注册规格逐项一致;分平台数据类型差异说明与op_api/aclnn_ger.cpp平台数据类型门控(RegBase分支)逐项一致;产品支持表与docs/aclnnGer.md口径一致 - pre-commit全部钩子通过(trailing-whitespace / end-of-file-fixer / codespell / OAT合规) - 按仓库wiki《算子README文档模板》质检清单自检通过(必选章节、markdownlint、中英文标点空格、数据类型顿号分隔、产品名精确匹配、敏感词) ## 文档更新 math/ger/README.md(单文件单提交) ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6779 | 3 天前 | |
fix(get_dynamic_dims): validate input data types Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !5953 merge fix/issue-3274-get-dynamic-dims-dtype-check into master fix(get_dynamic_dims): validate input data types Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 GetDynamicDims根据输出数据类型选择模板类型,并使用该类型读取所有动态输入。原实现未校验各输入与输出的数据类型是否一致,混合数据类型场景可能导致输入数据被错误解释。 本次修改在读取输入数据前校验所有动态输入的数据类型与输出一致;数据类型不一致时返回参数错误。同时补充算子原型和README中的数据类型约束,并增加首输入与输出类型不一致、后续动态输入类型不一致的回归用例。 ## 关联的Issue Fixes #3274 ## 测试 修改前执行: bash bash build.sh -u --opkernel_aicpu --ops=get_dynamic_dims \ --gtest_filter=GetDynamicDimsAicpuTest.* -j16 原有7个用例通过,新增2个混合数据类型用例失败,问题稳定复现。 修改后执行相同命令,9个用例全部通过。 执行以下pre-commit检查,全部通过: bash pre-commit run --files \ math/get_dynamic_dims/README.md \ math/get_dynamic_dims/op_graph/get_dynamic_dims_proto.h \ math/get_dynamic_dims/op_kernel_aicpu/get_dynamic_dims_aicpu.cpp \ math/get_dynamic_dims/tests/ut/op_kernel_aicpu/test_get_dynamic_dims.cpp ## 文档更新 更新math/get_dynamic_dims/README.md和get_dynamic_dims_proto.h,明确所有动态输入的数据类型必须一致,输出数据类型与输入一致。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5953 | 1 个月前 | |
feat(infershape): 补齐 12 个算子 op_graph InferDataType 注册 Co-authored-by: yangjinhan<yangjinhan@huawei.com> # message auto-generated for no-merge-commit merge: !6644 merge feat/register-infer-datatype into master feat(infershape): 补齐 12 个算子 op_graph InferDataType 注册 Created-by: Ruyue1550 Commit-by: yangjinhan Merged-by: cann-robot Description: ## 描述 按 RT1.0 到 RT2.0 推导框架迁移方案第 1 步(补齐缺失的 InferDataType 注册,零行为变更)要求,为 12 个缺失 InferDataType 注册的算子新增 op_graph/*_graph_infer.cpp 注册文件。本次变更只新增文件、不修改任何存量代码,共 12 个文件、240 行。 ### 改动点 | # | 算子 | 新增文件 | 注册方式 | |---|------|---------|---------| | 1 | Pad | conversion/pad/op_graph/pad_graph_infer.cpp | InferDataTypeOutputSameAsInput | | 2 | PadV2 | conversion/pad_v2/op_graph/pad_v2_graph_infer.cpp | 同上 | | 3 | PadV3 | conversion/pad_v3/op_graph/pad_v3_graph_infer.cpp | 同上 | | 4 | PadV3Grad | conversion/pad_v3_grad/op_graph/pad_v3_grad_graph_infer.cpp | 同上 | | 5 | MirrorPad | conversion/mirror_pad/op_graph/mirror_pad_graph_infer.cpp | 同上 | | 6 | BroadcastTo | conversion/broadcast_to/op_graph/broadcast_to_graph_infer.cpp | 同上 | | 7 | Transpose | conversion/transpose/op_graph/transpose_graph_infer.cpp | 同上 | | 8 | Rint | math/rint/op_graph/rint_graph_infer.cpp | 同上 | | 9 | TruncateDiv | math/truncate_div/op_graph/truncate_div_graph_infer.cpp | 同上 | | 10 | Expand | math/expand/op_graph/expand_graph_infer.cpp | 同上 | | 11 | GetShape | math/get_shape/op_graph/get_shape_graph_infer.cpp | 专门推导,输出固定 INT32 | | 12 | HistogramFixedWidth | math/histogram_fixed_width/op_graph/histogram_fixed_width_graph_infer.cpp | 专门推导,输出固定 INT32 | ### 改动原因 1. 背景:RT2.0 V2 路径的 dtype 推导在未注册 InferDataType 时依赖 IR(proto/def 的 TensorType)符号映射兜底。以显式注册替代隐式兜底,使推导逻辑代码自明、不依赖 IR 声明的隐式行为,并为后续推导框架切换就位 op_graph 注册设施。 2. dtype 语义逐算子以 RT1.0 SetDataType 为基线核对(迁移原则:非算子语义变更): - 上述 #1-#10 共 10 个算子的 canndev RT1.0 实现均为 SetDataType(input_dtype)(取输入 x 的类型,const/非 const/未知 rank 各分支一致),输出 dtype 跟随输入,故注册仓内公共推导函数 InferDataTypeOutputSameAsInput,与本仓已有 Tile/Erfc/TruncateMod 注册同构; - GetShape、HistogramFixedWidth 的 RT1.0 实现硬编码 SetDataType(DT_INT32),输出为形状值/直方图计数,与输入 dtype 无关,故注册输出固定 INT32 的专门推导,与两者 proto/def 中 OUTPUT(y, TensorType({DT_INT32})) 声明一致。 3. 零行为变更:注册结果与 IR 符号推导兜底结果一致,不改变任何现网推导行为。 4. 构建零改动:op_graph/*.cpp 由 CMake GLOB_RECURSE 自动收集(cmake/func.cmake),无需修改 CMakeLists。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4099 ## 测试 - 本地无 CANN 构建环境,未执行编译与 UT,请通过门禁验证(评论 compile 触发 CI) - 已完成静态核对:13 个注册的 dtype 语义与 canndev RT1.0 SetDataType 逐分支一致、与各算子 proto/def 输出声明一致、与本仓已有同款注册(tile/erfc/truncate_mod/circular_pad)代码风格一致 - UT dtype 断言用例(断言注册结果=兜底结果)可随检视意见补充 ## 文档更新 无需更新文档(纯推导注册代码,无接口与行为变化) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6644 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
docs: 订正 bitwise_not、cholesky、cummin、topk 等 8 个算子资料及头文件注释 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !6781 merge sync-1028 into master docs: 订正 bitwise_not、cholesky、cummin、topk 等 8 个算子资料及头文件注释 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本 PR 订正 8 个算子资料与头文件注释中与实现、产品支持情况不一致的描述。改动全部为文档(zh/en)与头文件注释,不涉及代码逻辑。 ### 改动原因 资料与头文件注释存在与实现、错误码表或产品支持情况互相矛盾的描述:dtype 列表漏项、产品支持范围与参数表结论不一致、参数语义描述错误、公式求和区间端点错误、退化点取值未声明等,逐条见「关联的Issue」。 ### 改动方法 1. **bitwise_not**( docs/aclnnBitwiseNot.md、aclnnBitwiseNot_en.md):self、out 补充数据类型支持描述,与资料及实现对齐(#3950)。 2. **bitwise_or**(docs/aclnnBitwiseOrScalar&aclnnInplaceBitwiseOrScalar.md、_en.md):self、other、selfRef补充数据类型支持描述,消除与产品支持情况分组的矛盾(#3995)。 3. **cdist_grad**(docs/aclnnCdistBackward.md、_en.md):新增说明——上述闭式仅在 cdist > 0 时适用;当 cdist = 0(x1 与 x2 在该点对上完全重合)时,该点对对 x1 的梯度贡献按 0 处理(#3956)。 4. **cholesky**(docs/aclnnLinalgCholesky.md、_en.md):产品支持情况中 Ascend 950PR&950DT 系列产品由「不支持」改为「支持」;self、out 的数据类型由「FLOAT、BFLOAT16」补充为「FLOAT、FLOAT16、BFLOAT16」(#3957)。 5. **cummin**(docs/aclnnCummin.md、_en.md):self、valuesOut 的 dtype 约束由统一规则改为「具体数据类型关系见下方产品支持情况」,并在产品支持情况新增两条分组说明——Ascend 950PR&950DT 系列产品下 self 为 INT8/UINT8/BOOL 时 valuesOut 可为不同的可转换数据类型,其余数据类型需与 self 一致;Atlas A3/A2、Atlas 200I/500 A2、Atlas 推理、Atlas 训练系列产品下 self 的数据类型需能转换为 valuesOut 的数据类型(#3969)。 6. **grouped_bias_add_grad**(docs/aclnnGroupedBiasAddGrad.md、_en.md):groupIdx 求和区间上端点由 groupIdxOptional(j) 改为不含端点的 groupIdxOptional(j)-1,j=0 分支同步改为 groupIdxOptional(0)-1;无可选输入时求和区间由 0 至 C 改为 0 至 C-1;文字说明中明确 groupIdxOptional(j) 表示第 j 组的结束位置(不包含)(#3948)。 7. **pow**(op_api/aclnn_pow.h 头文件注释):out 的数据类型要求由「数据类型、数据格式和shape与self一致」改为「数据格式和shape需与self一致,数据类型需为self与exponent推导后可转换的数据类型」(#3959)。 8. **topk、topkV2**(docs/aclnnTopk.md、aclnnTopk_en.md、aclnnTopkV2.md、aclnnTopkV2_en.md 共 4 个文件):largest 由「计算维度上的结果排序方式」改为「选取最大还是最小的 k 个值」;sorted 删除「当前该参数仅支持取 True」,改为 False 表示不要求输出有序,并明确不保证输出顺序及等值元素的索引稳定性(#3971)。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3995 https://gitcode.com/cann/ops-math/issues/3971 https://gitcode.com/cann/ops-math/issues/3969 https://gitcode.com/cann/ops-math/issues/3959 https://gitcode.com/cann/ops-math/issues/3957 https://gitcode.com/cann/ops-math/issues/3956 https://gitcode.com/cann/ops-math/issues/3950 https://gitcode.com/cann/ops-math/issues/3948 ## 测试 - 本 PR 仅修改资料与头文件注释,不涉及代码逻辑,未做代码测试; - 资料改动需通过仓库资料门禁/评审校验。 ## 文档更新 - math/bitwise_not/docs/aclnnBitwiseNot.md、aclnnBitwiseNot_en.md - math/bitwise_or/docs/aclnnBitwiseOrScalar&aclnnInplaceBitwiseOrScalar.md、aclnnBitwiseOrScalar&aclnnInplaceBitwiseOrScalar_en.md - math/cdist_grad/docs/aclnnCdistBackward.md、aclnnCdistBackward_en.md - math/cholesky/docs/aclnnLinalgCholesky.md、aclnnLinalgCholesky_en.md - math/cummin/docs/aclnnCummin.md、aclnnCummin_en.md - math/grouped_bias_add_grad/docs/aclnnGroupedBiasAddGrad.md、aclnnGroupedBiasAddGrad_en.md - math/topk/docs/aclnnTopk.md、aclnnTopk_en.md、aclnnTopkV2.md、aclnnTopkV2_en.md - 头文件注释:math/bitwise_not/op_api/aclnn_bitwise_not.h、math/pow/op_api/aclnn_pow.h ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6781 | 5 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
feat(infershape): 补齐 12 个算子 op_graph InferDataType 注册 Co-authored-by: yangjinhan<yangjinhan@huawei.com> # message auto-generated for no-merge-commit merge: !6644 merge feat/register-infer-datatype into master feat(infershape): 补齐 12 个算子 op_graph InferDataType 注册 Created-by: Ruyue1550 Commit-by: yangjinhan Merged-by: cann-robot Description: ## 描述 按 RT1.0 到 RT2.0 推导框架迁移方案第 1 步(补齐缺失的 InferDataType 注册,零行为变更)要求,为 12 个缺失 InferDataType 注册的算子新增 op_graph/*_graph_infer.cpp 注册文件。本次变更只新增文件、不修改任何存量代码,共 12 个文件、240 行。 ### 改动点 | # | 算子 | 新增文件 | 注册方式 | |---|------|---------|---------| | 1 | Pad | conversion/pad/op_graph/pad_graph_infer.cpp | InferDataTypeOutputSameAsInput | | 2 | PadV2 | conversion/pad_v2/op_graph/pad_v2_graph_infer.cpp | 同上 | | 3 | PadV3 | conversion/pad_v3/op_graph/pad_v3_graph_infer.cpp | 同上 | | 4 | PadV3Grad | conversion/pad_v3_grad/op_graph/pad_v3_grad_graph_infer.cpp | 同上 | | 5 | MirrorPad | conversion/mirror_pad/op_graph/mirror_pad_graph_infer.cpp | 同上 | | 6 | BroadcastTo | conversion/broadcast_to/op_graph/broadcast_to_graph_infer.cpp | 同上 | | 7 | Transpose | conversion/transpose/op_graph/transpose_graph_infer.cpp | 同上 | | 8 | Rint | math/rint/op_graph/rint_graph_infer.cpp | 同上 | | 9 | TruncateDiv | math/truncate_div/op_graph/truncate_div_graph_infer.cpp | 同上 | | 10 | Expand | math/expand/op_graph/expand_graph_infer.cpp | 同上 | | 11 | GetShape | math/get_shape/op_graph/get_shape_graph_infer.cpp | 专门推导,输出固定 INT32 | | 12 | HistogramFixedWidth | math/histogram_fixed_width/op_graph/histogram_fixed_width_graph_infer.cpp | 专门推导,输出固定 INT32 | ### 改动原因 1. 背景:RT2.0 V2 路径的 dtype 推导在未注册 InferDataType 时依赖 IR(proto/def 的 TensorType)符号映射兜底。以显式注册替代隐式兜底,使推导逻辑代码自明、不依赖 IR 声明的隐式行为,并为后续推导框架切换就位 op_graph 注册设施。 2. dtype 语义逐算子以 RT1.0 SetDataType 为基线核对(迁移原则:非算子语义变更): - 上述 #1-#10 共 10 个算子的 canndev RT1.0 实现均为 SetDataType(input_dtype)(取输入 x 的类型,const/非 const/未知 rank 各分支一致),输出 dtype 跟随输入,故注册仓内公共推导函数 InferDataTypeOutputSameAsInput,与本仓已有 Tile/Erfc/TruncateMod 注册同构; - GetShape、HistogramFixedWidth 的 RT1.0 实现硬编码 SetDataType(DT_INT32),输出为形状值/直方图计数,与输入 dtype 无关,故注册输出固定 INT32 的专门推导,与两者 proto/def 中 OUTPUT(y, TensorType({DT_INT32})) 声明一致。 3. 零行为变更:注册结果与 IR 符号推导兜底结果一致,不改变任何现网推导行为。 4. 构建零改动:op_graph/*.cpp 由 CMake GLOB_RECURSE 自动收集(cmake/func.cmake),无需修改 CMakeLists。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4099 ## 测试 - 本地无 CANN 构建环境,未执行编译与 UT,请通过门禁验证(评论 compile 触发 CI) - 已完成静态核对:13 个注册的 dtype 语义与 canndev RT1.0 SetDataType 逐分支一致、与各算子 proto/def 输出声明一致、与本仓已有同款注册(tile/erfc/truncate_mod/circular_pad)代码风格一致 - UT dtype 断言用例(断言注册结果=兜底结果)可随检视意见补充 ## 文档更新 无需更新文档(纯推导注册代码,无接口与行为变化) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6644 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 1 个月前 | |
Inv 算子 golden 容差从 mix_tolerance 改为 cross_check L1 Co-authored-by: JasonZhang88<jason.zhangshen@huawei.com> # message auto-generated for no-merge-commit merge: !6955 merge master_new into master Inv 算子 golden 容差从 mix_tolerance 改为 cross_check L1 Created-by: JasonZhang88 Commit-by: JasonZhang88 Merged-by: cann-robot Description: ## 描述 Inv 算子 golden 容差从 mix_tolerance 改为 cross_check L1(1 文件 +7/-9)。 两处 tolerance dict(InvTestSpec、InvTensorFlowTestSpec)的浮点条目从 mix_tolerance rtol/atol 改为 cross_check L1,int32 保持 binary_equal 不变。 cross_check 为三方判据(NPU 输出 + CPU golden + XPU 第三方参考),需要 TTK XPU Server 支持(ttk.conf.yaml 配置)。 ## 关联的 Issue https://gitcode.com/cann/ops-math/issues/4381 ## 测试 **上板精度验证**(Ascend950PR + XPU Server CPU 三方参考,cross_check L1): - L0 全量 **43/43 PASS(100%)**,覆盖全 dtype: - float32: 14/14 - float16: 15/15(含次正规、rank-0 标量、2^31 边界、空 Tensor) - bfloat16: 7/7(含次正规、rank-0 标量、空 Tensor) - int32: 7/7(三值映射含 INT_MIN/MAX) - 零精度失败、零 PROFILE_CRASH ## 文档更新 不涉及。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6955 | 1 天前 | |
Math仓算子适配Ascend350平台 Co-authored-by: huairuchen<chenhuairu@huawei.com> # message auto-generated for no-merge-commit merge: !6372 merge dvlite-math-350-adapt into master Math仓算子适配Ascend350平台 Created-by: huairuchen Commit-by: huairuchen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Math仓部分随机数算子在350平台进行适配 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4202 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 算子泛化测试,冒烟测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6372 | 5 天前 | |
diag等算子冗余workspace改为分配0 Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !6418 merge new_ww into master diag等算子冗余workspace改为分配0 Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> diag等算子冗余workspace改为分配0 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3678 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码整改 See merge request: cann/ops-math!6418 | 13 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
修复issue的问题 Co-authored-by: sakuraqqz<furao15@h-partners.com> # message auto-generated for no-merge-commit merge: !6812 merge master into master 修复issue的问题 Created-by: sakuraqqz Commit-by: sakuraqqz Merged-by: cann-robot Description: ## 描述 本 PR 修复 6 个算子问题,均为 Bug 修复(含 1 项文档修正): 1. **is_inf 尾块越界读写(#3925)**:数据长度不足 32B 对齐时,尾块原先按 32B 整倍搬运导致 GM 越界读/写。修复为整块用 DataCopy、尾块用 DataCopyPad 按真实字节搬运,ComputePerCore 尾块输出按真实计数写出。math/is_inf/op_kernel/is_inf.h。 2. **addcmul value=NaN 走错快路径(#3894)**:IsEqualToOne 对 NaN 判等为 true(所有比较均 false 取反),导致 value=NaN 时误走 AxpyV2 快路径、缺失 value 项。修复为显式排除 NaN。math/addcmul/op_api/aclnn_addcmul.cpp。 3. **cdist 非法 shape 返回码(#3929)**:out 形状与推导不匹配时返回内部空指针错误 561103,修复为在 GetWorkspaceSize 增加 out 期望形状校验,返回标准参数错误 161002。math/cdist/op_api/aclnn_cdist.cpp。 4. **div 非法参数返回码(#3962)**:日志错误码与返回码不一致,统一返回 161002。math/div/op_api/aclnn_div.cpp。 5. **VarMean 文档矛盾(#4182)**:中英文档 self 维度列由 1-8 修正为 0-8(与「shape 支持 0 到 8 维」及 meanOut/varOut 的 0-8 保持一致);参数表 varOut/meanOut 行序与原型(varOut 为第 5 参、meanOut 为第 6 参)对齐。math/reduce_var/docs/。 6. **LinSpace legacy tiling 丢失 INT64 num 精度(#3347):** LinSpaceGetConstValue 的 DT_INT64 分支先将 int64_t 经 float 转换,num=16777219 被舍入为 16777220,与 InferShape 输出维度不一致;修复为直接读取 int64 数值、经 double 无损保留。math/lin_space/op_host/lin_space_tiling.cpp。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3925 - https://gitcode.com/cann/ops-math/issues/3894 - https://gitcode.com/cann/ops-math/issues/3929 - https://gitcode.com/cann/ops-math/issues/3962 - https://gitcode.com/cann/ops-math/issues/4182 - https://gitcode.com/cann/ops-math/issues/3347 ## 测试 910B3 / CANN 9.3.0 上板验证(2026-10-29): - **is_inf**:尾块用例长度 17/25/31/33/40(非 32B 对齐),尾部放置 inf/-inf/nan,输入输出 buffer 后 64B 金丝雀检测越界,5 组全部 PASS 且无越界读写。 - **addcmul**:value=NaN → out=NaN(修复前误得 7.0);value=1.0/2.0 回归正常。 - **cdist**:out 形状不匹配返回 161002,合法形状返回 0。 - **div**:shape 不匹配/非法 mode 均返回 161002。 - **VarMean**:issue 复现脚本实测命中 0 处(纯文档改动,无需上板)。 - **LinSpace**:tiling data 中 num=16777219 保留、InferShape 输出 [16777219](num=17 对照),Host UT 6/6 PASS,基线回归证实旧实现舍入为 16777220。 ## 文档更新 - math/reduce_var/docs/aclnnVarMean.md、math/reduce_var/docs/aclnnVarMean_en.md(维度范围与参数顺序修正)。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6812 | 3 天前 | |
math仓121算子迁蓝 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5762 merge master into master math仓121算子迁蓝 Created-by: qq_52874943 Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 math仓部分121算子黄迁蓝,只进行960dt适配,以及算子二进制补充,不动kernel和tiling代码。 ## 关联的Issue 关联Issue[#3650](https://gitcode.com/cann/ops-math/issues/3650) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5762 | 14 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
fix(kl_div): 支持通过环境变量选择设备 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !6966 merge fix_example into master fix(kl_div): 支持通过环境变量选择设备 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 kl_div 图示例硬编码 deviceId 为 1,在仅有 NPU 0 的环境中会导致 GE 初始化失败。现改为读取 ASCEND_DEVICE_ID,未设置时默认使用 0,避免设备环境差异导致执行失败。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4385 ## 测试 分别验证未设置 ASCEND_DEVICE_ID 和显式设置 ASCEND_DEVICE_ID=0: - kl_div:54/54 passed,execute samples success。 ## 文档更新 无 ## 类型标签 - [x] Bug修复 See merge request: cann/ops-math!6966 | 2 天前 | |
aclnnCdist/aclnnkldiv消除多余的broadcast调用 Co-authored-by: sunzhongwen1<sunzhongwen1@huawei.com> # message auto-generated for no-merge-commit merge: !6732 merge bugfix/aclnncdist/aclnnkldiv into master aclnnCdist/aclnnkldiv消除多余的broadcast调用 Created-by: sunzhongwen1 Commit-by: sunzhongwen1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6732 | 5 天前 | |
fix(left_shift): 修复只读参数const规范问题 Co-authored-by: xiafengkou<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !6768 merge fix/left-shift-codecheck into master fix(left_shift): 修复只读参数const规范问题 Created-by: xiafengkou Commit-by: xiafengkou Merged-by: cann-robot Description: ## 描述 修复 left_shift 算子 op_api 代码中的两条 G.CNS.04-CPP 只读参数规范问题。 将 CheckPromoteType 和 CheckPromoteTypeScalar 函数中仅用于读取数据类型的 out 参数由 aclTensor* 修改为 const aclTensor*,明确参数的只读语义。本次仅增加 const 限定,不涉及计算逻辑、数据处理流程及接口功能变更。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4171 ## 测试 1. 执行 pre-commit 检查,全部通过。 2. 编译 ophost_math_opapi_obj 目标,编译通过。 3. 构建 math_op_api_ut 测试目标,构建通过。 4. 执行 left_shift、left_shifts 相关 op_api UT,共 56 个用例,全部通过。 5. 执行 git diff --check,检查通过。 ## 文档更新 无,本次修改不涉及文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6768 | 5 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
fix: 修复aclnnLtScalar非RegBase路径空指针错误码 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !6749 merge fix_LtScalar_1027 into master fix: 修复aclnnLtScalar非RegBase路径空指针错误码 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 背景 Issue #3913:aclnnLtScalar / aclnnInplaceLtScalar 在 self / other(原地 selfRef)传空指针时,非 RegBase(A2/A3)路径返回 ACLNN_ERR_INNER_NULLPTR(561103),与资料要求及 RegBase 路径的 ACLNN_ERR_PARAM_NULLPTR(161001) 不一致,且与同函数内 out 空指针的返回码矛盾。 ## 修改 math/less/op_api/aclnn_lt_scalar.cpp 非 RegBase 路径 aclnnLtScalarGetWorkspaceSize: - CHECK_RET(other != nullptr, ACLNN_ERR_INNER_NULLPTR) -> ACLNN_ERR_PARAM_NULLPTR - CHECK_RET(self != nullptr, ACLNN_ERR_INNER_NULLPTR) -> ACLNN_ERR_PARAM_NULLPTR aclnnInplaceLtScalarGetWorkspaceSize 经 const_cast 转发到同一函数,selfRef 场景自动覆盖。 ## UT 同步 同步更新 4 处 UT 空指针断言(test_lt_scalar.cpp / test_inplace_lt_scalar.cpp)为 ACLNN_ERR_PARAM_NULLPTR。 ## 验证 - A2(910B3)/ CANN 9.2.0 环境构建 opapi 库成功(bash build.sh --opapi) - 链接修改后构建的 libopapi_math.so 运行复现用例,6 场景全部符合预期: - 合法输入 -> 0(无回归) - self / other / selfRef 空指针 -> 161001 - out 空指针 -> 161001(与修改前一致) See merge request: cann/ops-math!6749 | 4 天前 | |
docs: 修复math算子文档错误码表缺项并对齐数据类型约束与实现 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !6765 merge fix_mathMD_1028 into master docs: 修复math算子文档错误码表缺项并对齐数据类型约束与实现 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 本次PR针对多个math算子文档与实现不一致或错误码表缺项的问题进行修复,共涉及6份算子文档: 1. aclnnMaxDim:错误码表161002补充"self、out、indices维度大于8时"子项,与参数表维度0-8说明对齐; 2. aclnnBitwiseXorTensor:删除out不支持UINT16/UINT32/UINT64/COMPLEX64/COMPLEX128的约束描述,对齐实际实现的放行行为; 3. aclnnFloor:删除非连续Tensor列UINT16/UINT32/UINT64不支持的无效约束(A2真机实测非连续输入均正常支持); 4. aclnnLeScalar/aclnnLeTensor:补充out、selfRef不支持UINT32/UINT64的平台约束(910/310p、A3/910b),并合并到既有平台约束块; 5. aclnnNeTensor:补充Atlas A2/A3系列self、other不支持UINT64的约束说明(A2真机验证放开校验会产生错误结果,当前拒绝行为是安全的)。 ## 关联的Issue - #3884:aclnnMaxDim错误码表缺少维度大于8子项 - #3881:aclnnBitwiseXorTensor文档声明out不支持UINT16/UINT32/UINT64/COMPLEX64/COMPLEX128与实现不符 - #3883:aclnnFloor文档多写非连续Tensor不支持UINT16/UINT32/UINT64约束 - #3853:aclnnNeTensor A2平台UINT64支持说明与实现不符 - #3889:aclnnLeTensor/aclnnLeScalar out支持UINT32/UINT64与实现不符 ## 测试 本次为纯文档修改,无代码变更。各文档改动均经实现代码(dtype支持列表、校验逻辑)静态核对,并对以下场景在A2真机验证: - aclnnFloor非连续UINT16/UINT32/UINT64输入6组用例全部成功且结果正确; - aclnnNeTensor UINT64放开校验后输出全假并伴随堆内存损坏,确认kernel未实现UINT64模板,以文档约束闭环; - aclnnBitwiseXorTensor COMPLEX64/COMPLEX128输出语义验证通过。 ## 文档更新 - math/arg_max_with_value/docs/aclnnMaxDim.md - math/bitwise_xor/docs/aclnnBitwiseXorTensor&aclnnInplaceBitwiseXorTensor.md - math/floor/docs/aclnnFloor&aclnnInplaceFloor.md - math/less_equal/docs/aclnnLeScalar&aclnnInplaceLeScalar.md - math/less_equal/docs/aclnnLeTensor&aclnnInplaceLeTensor.md - math/not_equal/docs/aclnnNeTensor&aclnnInplaceNeTensor.md ## 类型标签 - [x] 文档更新 See merge request: cann/ops-math!6765 | 4 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
修复issue的问题 Co-authored-by: sakuraqqz<furao15@h-partners.com> # message auto-generated for no-merge-commit merge: !6812 merge master into master 修复issue的问题 Created-by: sakuraqqz Commit-by: sakuraqqz Merged-by: cann-robot Description: ## 描述 本 PR 修复 6 个算子问题,均为 Bug 修复(含 1 项文档修正): 1. **is_inf 尾块越界读写(#3925)**:数据长度不足 32B 对齐时,尾块原先按 32B 整倍搬运导致 GM 越界读/写。修复为整块用 DataCopy、尾块用 DataCopyPad 按真实字节搬运,ComputePerCore 尾块输出按真实计数写出。math/is_inf/op_kernel/is_inf.h。 2. **addcmul value=NaN 走错快路径(#3894)**:IsEqualToOne 对 NaN 判等为 true(所有比较均 false 取反),导致 value=NaN 时误走 AxpyV2 快路径、缺失 value 项。修复为显式排除 NaN。math/addcmul/op_api/aclnn_addcmul.cpp。 3. **cdist 非法 shape 返回码(#3929)**:out 形状与推导不匹配时返回内部空指针错误 561103,修复为在 GetWorkspaceSize 增加 out 期望形状校验,返回标准参数错误 161002。math/cdist/op_api/aclnn_cdist.cpp。 4. **div 非法参数返回码(#3962)**:日志错误码与返回码不一致,统一返回 161002。math/div/op_api/aclnn_div.cpp。 5. **VarMean 文档矛盾(#4182)**:中英文档 self 维度列由 1-8 修正为 0-8(与「shape 支持 0 到 8 维」及 meanOut/varOut 的 0-8 保持一致);参数表 varOut/meanOut 行序与原型(varOut 为第 5 参、meanOut 为第 6 参)对齐。math/reduce_var/docs/。 6. **LinSpace legacy tiling 丢失 INT64 num 精度(#3347):** LinSpaceGetConstValue 的 DT_INT64 分支先将 int64_t 经 float 转换,num=16777219 被舍入为 16777220,与 InferShape 输出维度不一致;修复为直接读取 int64 数值、经 double 无损保留。math/lin_space/op_host/lin_space_tiling.cpp。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3925 - https://gitcode.com/cann/ops-math/issues/3894 - https://gitcode.com/cann/ops-math/issues/3929 - https://gitcode.com/cann/ops-math/issues/3962 - https://gitcode.com/cann/ops-math/issues/4182 - https://gitcode.com/cann/ops-math/issues/3347 ## 测试 910B3 / CANN 9.3.0 上板验证(2026-10-29): - **is_inf**:尾块用例长度 17/25/31/33/40(非 32B 对齐),尾部放置 inf/-inf/nan,输入输出 buffer 后 64B 金丝雀检测越界,5 组全部 PASS 且无越界读写。 - **addcmul**:value=NaN → out=NaN(修复前误得 7.0);value=1.0/2.0 回归正常。 - **cdist**:out 形状不匹配返回 161002,合法形状返回 0。 - **div**:shape 不匹配/非法 mode 均返回 161002。 - **VarMean**:issue 复现脚本实测命中 0 处(纯文档改动,无需上板)。 - **LinSpace**:tiling data 中 num=16777219 保留、InferShape 输出 [16777219](num=17 对照),Host UT 6/6 PASS,基线回归证实旧实现舍入为 16777220。 ## 文档更新 - math/reduce_var/docs/aclnnVarMean.md、math/reduce_var/docs/aclnnVarMean_en.md(维度范围与参数顺序修正)。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6812 | 3 天前 | |
处理一些issues,修改部分文档 Co-authored-by: Boyang_Zhang<zhangboyang15@h-partners.com> # message auto-generated for no-merge-commit merge: !6858 merge issue4000 into master 处理一些issues,修改部分文档 Created-by: BoyangZhang Commit-by: Boyang_Zhang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 处理一些issues,修改部分文档 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4000 https://gitcode.com/cann/ops-math/issues/4001 https://gitcode.com/cann/ops-math/issues/4013 https://gitcode.com/cann/ops-math/issues/4015 https://gitcode.com/cann/ops-math/issues/4019 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6858 | 3 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 1 个月前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
fix: [maximum_grad/minimum_grad] golden 三方标杆与 e2e 通路统一为 tf.function 纯反向口径 Co-authored-by: Hana77<wangtianqi27@huawei.com> # message auto-generated for no-merge-commit merge: !6802 merge mm into master fix: [maximum_grad/minimum_grad] golden 三方标杆与 e2e 通路统一为 tf.function 纯反向口径 Created-by: Hana77 Commit-by: Hana77 Merged-by: cann-robot Description: ## 描述 修正 maximum_grad / minimum_grad 测试资产(tests/assets/golden.py 三方标杆与 *_e2e.py e2e 通路)中浮点反向的实现与计时口径。 ### 改动原因 - 旧实现浮点路径每次调用裸起 tf.GradientTape,前向(maximum/minimum 与 Mul)随反向一同进入执行与计时窗口,GPU 三方标杆采集的 device_us 并非纯反向耗时,与 NPU 侧 e2e 通路口径不对称。 - 旧 e2e 实现为规避 npu_device 动态图 GE 会话模型缓存按算子节点名复用导致的常量串台问题,每次调用都以唯一 name_scope 强制 graph_id 错开,代价是每次调用重新编译,同签名用例无法共享已编译图。 ### 改动方法 - **golden.py(三方标杆)**:浮点路径改为 tf.function 包裹的 tape 反向,只返回梯度,前向为死代码被剪除,计时窗口纯反向;int32 无梯度定义,抽出手拼分支(GreaterEqual/LessEqual + SelectV2×2 + Sum,与 golden 同口径)。 - **\*_e2e.py(e2e 通路)**:浮点路径改为 tf.function 包裹的 tape 反向且只返回梯度,NPU 执行纯反向链(融合后 te_maximumgrad/te_minimumgrad + te_reducesum),与 GPU 侧标杆口径对称;tf.function 按 (shape,dtype) 签名缓存 concrete function,同签名共享编译图(输入为 placeholder,无常量串台),跨签名 trace 时以 _TRACE_SEQ 唯一化 name_scope 错开 graph_id;int32 保留手拼路径。 - numpy golden(kernel/geir 通路 oracle)与精度判据(binary_equal、三比值)不变;融合规则的 gradient_tape scope 检查按名字分段匹配,前缀不影响。 ## 关联的Issue - #4204 ## 测试 - 变更仅涉及 tests/assets 测试资产,不改动算子实现(op_host/op_kernel/op_graph)。 - 验证方式:复用进程批跑 maximum_grad / minimum_grad 的 e2e 用例,确认浮点 golden 三比值 cross_check 通过、int32 binary_equal 通过、device_us 采集正常且同签名用例不重复触发编译。 ## 文档更新 - 无(不涉及 README / docs 变更)。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6802 | 4 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
fix: [maximum_grad/minimum_grad] golden 三方标杆与 e2e 通路统一为 tf.function 纯反向口径 Co-authored-by: Hana77<wangtianqi27@huawei.com> # message auto-generated for no-merge-commit merge: !6802 merge mm into master fix: [maximum_grad/minimum_grad] golden 三方标杆与 e2e 通路统一为 tf.function 纯反向口径 Created-by: Hana77 Commit-by: Hana77 Merged-by: cann-robot Description: ## 描述 修正 maximum_grad / minimum_grad 测试资产(tests/assets/golden.py 三方标杆与 *_e2e.py e2e 通路)中浮点反向的实现与计时口径。 ### 改动原因 - 旧实现浮点路径每次调用裸起 tf.GradientTape,前向(maximum/minimum 与 Mul)随反向一同进入执行与计时窗口,GPU 三方标杆采集的 device_us 并非纯反向耗时,与 NPU 侧 e2e 通路口径不对称。 - 旧 e2e 实现为规避 npu_device 动态图 GE 会话模型缓存按算子节点名复用导致的常量串台问题,每次调用都以唯一 name_scope 强制 graph_id 错开,代价是每次调用重新编译,同签名用例无法共享已编译图。 ### 改动方法 - **golden.py(三方标杆)**:浮点路径改为 tf.function 包裹的 tape 反向,只返回梯度,前向为死代码被剪除,计时窗口纯反向;int32 无梯度定义,抽出手拼分支(GreaterEqual/LessEqual + SelectV2×2 + Sum,与 golden 同口径)。 - **\*_e2e.py(e2e 通路)**:浮点路径改为 tf.function 包裹的 tape 反向且只返回梯度,NPU 执行纯反向链(融合后 te_maximumgrad/te_minimumgrad + te_reducesum),与 GPU 侧标杆口径对称;tf.function 按 (shape,dtype) 签名缓存 concrete function,同签名共享编译图(输入为 placeholder,无常量串台),跨签名 trace 时以 _TRACE_SEQ 唯一化 name_scope 错开 graph_id;int32 保留手拼路径。 - numpy golden(kernel/geir 通路 oracle)与精度判据(binary_equal、三比值)不变;融合规则的 gradient_tape scope 检查按名字分段匹配,前缀不影响。 ## 关联的Issue - #4204 ## 测试 - 变更仅涉及 tests/assets 测试资产,不改动算子实现(op_host/op_kernel/op_graph)。 - 验证方式:复用进程批跑 maximum_grad / minimum_grad 的 e2e 用例,确认浮点 golden 三比值 cross_check 通过、int32 binary_equal 通过、device_us 采集正常且同签名用例不重复触发编译。 ## 文档更新 - 无(不涉及 README / docs 变更)。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6802 | 4 天前 | |
[BugFix] 修正FmodScalar空标量错误码并补充AddN回归 Co-authored-by: zhouyuanhang30083383<zhouyuanhang4@h-partners.com> # message auto-generated for no-merge-commit merge: !6853 merge fix/error-code-fmod-scalar into master [BugFix] 修正FmodScalar空标量错误码并补充AddN回归 Created-by: m0_55003149 Commit-by: zhouyuanhang30083383 Merged-by: cann-robot Description: ## 描述 修正 aclnnFmodScalar / aclnnInplaceFmodScalar 在 other 为空的 aclScalar 时返回内部错误 561103 的问题,统一返回参数错误 ACLNN_ERR_PARAM_NULLPTR(161001)。 ## 关联的 Issue https://gitcode.com/cann/ops-math/issues/4176 ## 测试 同时补充回归用例: - AddN 使用 fp32 输入和 fp16 输出时返回 161002,覆盖 #3653 的接口场景。 - 运行结果:24/24 通过。 ## 文档更新 不涉及。现有接口资料已经声明空指针应返回 161001,本次修改使实现与资料一致。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6853 | 4 天前 | |
Kirin X90/9030支持Cast/Mul/Transpose/Add/ConcatD/StridedSlice算子 Co-authored-by: chenlong1<chenlong1@huawei.com> Co-authored-by: jinzy1999<jinzy@pku.edu.cn> # message auto-generated for no-merge-commit merge: !6581 merge master into master Kirin X90/9030支持Cast/Mul/Transpose/Add/ConcatD/StridedSlice算子 Created-by: chenlong1 Commit-by: chenlong1;jinzy1999 Merged-by: cann-robot Description: ## 描述 Kirin X90/9030支持Cast/Mul/Transpose/Add/ConcatD/StridedSlice算子 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3790 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6581 | 4 天前 | |
docs: 修正 math 算子 README 文档中的描述与数据类型说明 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !6158 merge 3246 into master docs: 修正 math 算子 README 文档中的描述与数据类型说明 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 修正 math 目录下 13 个算子 README.md 文档中的描述问题,提升文档准确性与术语一致性,具体包括: - 数据类型说明修正: abs 输出类型列表去掉重复的 FLOAT16、FLOAT,改为 COMPLEX32、COMPLEX64;assign_sub 修正拼写 BFOAT16 → BFLOAT16。 - 属性名拼写修正:hans_encode 的 reshuff → reshuffle。 - 术语大小写统一:arg_min 的 infershape → InferShape;reduce_all 的 tenor → Tensor。 - 表述/用词修正:add_n 的"主元素相加"→"逐元素相加";add_lora 的"Lora"→"LoRa";cholesky 的"需为"→"须为";cosine_similarity 的"显示指定"→"显式指定";cumsum 的"累计求和"→"累积求和";lgamma 的"输入张量x1"→"输入张量x";mul_addn 表述精简;asinh_grad 的"通过图模式方式调用"→"通过图模式调用"。 ### 改动原因 文档中存在错别字、术语拼写与大小写不统一、数据类型说明错误等问题,影响可读性与准确性。 ### 改动方法 逐文件校对并修正上述 README.md 中的文本与类型说明,仅涉及文档,不改变任何代码逻辑。 ## 关联的Issue #3426 ## 测试 文档变更,无需代码测试。 ## 文档更新 更新 math 目录下以下 13 个 README.md: math/abs、math/add_lora、math/add_n、math/arg_min、math/asinh_grad、math/assign_sub、math/cholesky、math/cosine_similarity、math/cumsum、math/hans_encode、math/lgamma、math/mul_addn、math/reduce_all ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6158 | 25 天前 | |
fix: harden July math operators and relocate MulNoNan dtype inference Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !6533 merge fix/july-five-ops-hardening-20261020 into master fix: harden July math operators and relocate MulNoNan dtype inference Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 TensorRedirect示例以字节填充生成FLOAT数据,且未完整设置Data输出描述、校验输出和传播文件写入错误;AddV2示例的两个Data使用相同索引,也未把输出校验和文件写入结果作为成功条件。本次修正这些路径,补齐相关资源清理,使示例在结果或文件写入异常时返回失败。 同步将TensorRedirect在Ascend 950PR&950DT系列产品上的rank描述对齐为[0,8],包括标量;AddV2约束说明对齐其参数表和实际支持类型。 基于主仓master 21854b2844e6d65ceecd2de0c7cb65efa44e41de,前次两算子修订受测提交:44980699fb1a7d5df1d5fd1a0d5b23141183ce40。 **MulNoNan:编译信息布局、CPU参考及GE示例** - math/mul_no_nan/op_host/arch35/mul_no_nan_tiling_arch35.h:用Ops::Base::BroadcastCompileInfo替代私有两字段结构。原结构为16字节,而BroadcastBaseTiling在平台对象为空时按带isAscendC字段的24字节结构读取,存在coreNum错位及ubSize越界读取风险;统一类型后沿用既有TilingPrepare初始化逻辑。现有Host UT的聚合初始化同步增加isAscendC字段。 - tests/assets/golden.py:CPU参考改用PyTorch乘法和where,移除Kernel/GEIR路径对TensorFlow的导入依赖;浮点中间值使用float64,普通模式回传原dtype,Promote模式保留高精度;INT32保留原生整数乘法回绕,x2为0时仍严格选择0。TensorFlow E2E原有注册与默认CPU回退保持原样。 - examples/arch35/test_geir_mul_no_nan.cpp:四种dtype的输入缓冲使用unique_ptr,检查分配和SetData;第二Data索引改为1并补齐输出描述;检查Session创建;严格核对输出数量、完整shape、dtype、缓冲大小和所有数值。保留原有27个场景,新增--list和单场景选择,并按仓库要求格式化。 - examples/arch35/CMakeLists.txt:新增独立GE示例构建配置,按ASCEND_HOME_PATH查找本套CANN的头文件及GE库。 - README与Proto:将950产品rank≤8限定到产品差异说明,补充GE空Tensor输出语义;将不存在的tf.math.multiply_no_nans改为tf.math.multiply_no_nan并区分浮点对应关系和INT32扩展;统一dtype标点及GE图模式入口。其他产品支持标记不变。 **MulNoNan:接手推导注册迁移** - dtype推导从op_host/mul_no_nan_infershape.cpp迁入op_graph/mul_no_nan_graph_infer.cpp,增加空context、两个输入dtype一致性检查,并返回输出dtype写入状态。 - 原4条dtype UT随注册移动至Graph测试目录,增加混合dtype拒绝用例。既有广播shape、编译信息修复、PyTorch golden和27场景示例保留,未修改Kernel算法。 - 仅导入源PR #6548中的MulNoNan部分;RaggedBinCount的3个文件没有导入,也不改写或关闭包含该排除项的原PR:https://gitcode.com/cann/ops-math/pull/6548。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3692 ## 测试 2026-10-21文档精简提交de3b179a823a7a9aa20e5813c9d74d680edf7b94:完成本次范围的README检查、链接/调用表渲染、diff及提交钩子检查;确认相对上一提交仅README变化,未重跑NPU、TTK或构建。此前设备验证仍归属原受测提交。 **接手合并后验证** - 受测提交:b0526c4e37ee8ba6abbab528e5adba66c7c02caa;定向JIT包构建/部署通过,构建并行度≤8。 - 当前普通CANN环境下,MulNoNan 6条用例、静态/动态12次执行通过:FP32/FP16/BF16/INT32等形、标量、交叉广播;混合dtype1条到达GE并由当前包的存量MulNoNanVerify按预期拒绝,不计作新V2 dtype分支执行覆盖。 - 使用July本地TTK 92496503b70e2e05892d15dd5b78d1f80eae77df、算子仓golden、已核对哈希的冻结输入,显式--pc=1,Promote/stat_rel_err;未使用LD_PRELOAD或注册屏蔽。 - 另有相同6条/12次诊断执行通过,用于迁移入口排查,独立标记,不能替代正式canndev产品包验证。配套canndev PR:https://gitcode.com/cann/canndev/pull/82602,目前受内部SDK依赖阻塞。 - 本次pre-commit/OAT、diff核对通过;MulNoNan示例/文档在本阶段未再修改,原27场景记录继续对应下述补扫提交。本次未重跑Host/Graph UT或全量本地CI。 补扫阶段受测提交:129d2d00dac66ed7d351ad5691dd2fd80b2c3171。以下该阶段结果保持原始归属,不重复计作接手后重跑。 **本次MulNoNan补扫验证** - build.sh --pkg --jit --soc=ascend950 --ops=tensor_redirect,add_v2,mul_no_nan -j8构建及定向vendor部署通过。 - TTK GEIR正向8/8:FP32、FP16、BF16、INT32、双向广播、标量、rank=8和空Tensor。 - TTK动态GEIR普通FP32 1/1通过。 - TTK GEIR特殊值4/4:三种浮点dtype覆盖NaN/Inf乘零、负零、仅x2判零及非零乘法传播;INT32覆盖边界溢出回绕。适配器调用仓内golden并对固定数学期望、返回dtype和Promote结果作独立断言。 - 最终GE示例27/27场景通过,逐场景独立进程执行;错误场景名和多余参数两条负向调用返回预期255。 - 补扫阶段的4条构建调用命令均实际执行通过;产物与27个场景验证使用的二进制哈希一致。pre-commit、OAT及文档检查通过。 - Host UT源码同步适配结构初始化,未单独执行;本次未运行全量本地CI、性能测试或其他产品验证。 **此前已交付算子的验证记录(对应此前受测提交)** 环境:Ascend950PR_9579,CANN 9.3.0~weekly.20260923.01,Python 3.12.9,TTK 92496503b70e2e05892d15dd5b78d1f80eae77df。构建并行度不超过8,TTK均显式使用--pc=1。 - build.sh --pkg --jit --soc=ascend950 --ops=tensor_redirect,add_v2 -j8构建及部署通过。 - TTK GEIR正向8/8:TensorRedirect覆盖标量、rank=8、普通及空Tensor;AddV2覆盖普通、广播、标量及空Tensor。 - 两个交付GE示例均原样编译、在NPU运行并退出0;校验shape/dtype,TensorRedirect逐bit比较输出,AddV2逐元素检查预期4.0。 - 两个示例分别将输入dump目标预置为目录,图执行成功后文件打开失败,程序均按预期返回255。 - pre-commit、全部5个修改文件的OAT和git diff --check通过;README链接、产品行、参数能力并集及渲染结构检查通过。 ## 文档更新 MulNoNan README删除多余的编译运行段落及场景选择说明,保留原有调用表、示例和算子IR链接。示例源码、CMake配置及算子实现未变。 新增算子的逐文件文档修订见上文;已按本次文档与示例指引核对产品完整名称、能力并集、链接、围栏和渲染,运行全部修改后的示例场景。40条原始扫描记录已逐项处置:对缺少其他产品实现、基线INI shape=all或私有format等证据不足项,保留既有支持信息和当前框架限制,不据此修改注册范围。 TensorRedirect的950产品rank及Proto说明对齐当前实现和标量用例,其他产品既有rank说明保留。AddV2明确不支持DOUBLE/COMPLEX128并指向既有产品差异说明。其他产品的运行行为未在本次设备上认证。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6533 | 11 天前 | |
[Docs] 删除 Muls 数据类型表中的空注释 Co-authored-by: zhang-song-rui<zhangsongrui@h-partners.com> # message auto-generated for no-merge-commit merge: !6763 merge docs/issue-3906-muls-empty-note into master [Docs] 删除 Muls 数据类型表中的空注释 Created-by: zhang-song-rui Commit-by: zhang-song-rui Merged-by: cann-robot Description: ## 描述 Muls 的 self 数据类型单元格末尾有无正文的 <br>注:,删除该空标记。现有类型列表、类型推导链接和产品限制说明保持完整,无法由空标记推断出的额外约束不予补写。 仓内同类写法:参照同一参数表 other、out 及原地接口 selfRef 的数据类型单元格:相同类型列表均无空注释。 ## 关联的Issue Fixes #3906 https://gitcode.com/cann/ops-math/issues/3906 ## 测试 - 对照最新主干 6d7d49d9e 的函数原型、相关参数检查或类型推导实现,核实资料问题。 - 使用 MarkdownIt 渲染修改后的页面,检查目标表格内容、参数名及错误码行跨度。 - git diff --check 通过。仅修改文档,未运行算子编译或设备数值测试。 ## 文档更新 - math/muls/docs/aclnnMuls&aclnnInplaceMuls.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!6763 | 5 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
Math仓算子适配Ascend350平台 Co-authored-by: huairuchen<chenhuairu@huawei.com> # message auto-generated for no-merge-commit merge: !6372 merge dvlite-math-350-adapt into master Math仓算子适配Ascend350平台 Created-by: huairuchen Commit-by: huairuchen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Math仓部分随机数算子在350平台进行适配 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4202 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 算子泛化测试,冒烟测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6372 | 5 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
fix: E*9****内部错误码整改为正式语义码并保留内部异常EZ9999上报 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !6606 merge fix_errorNum_1021 into master fix: E*9****内部错误码整改为正式语义码并保留内部异常EZ9999上报 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次 PR 整改以下 43 个算子中非法使用的内部错误码(E*9****),使其符合错误码使用规范: - cholesky / complex / cross / cummax / cummin / cumprod / get_shape / histogram_v2 / is_finite / is_inf - kl_div_v2 / lin_space / log_add_exp / non_finite_check / pdist / polar / pows / radix_top_k - reduce_log_sum / reduce_log_sum_exp / reduce_max / reduce_mean / reduce_mean_with_count / reduce_min - reduce_nansum / reduce_std_with_mean / rfft1_d / search_sorted / signbit / sin / sinc / sinkhorn / topk - affine_grid / amp_update_scale / angle_v2 / arg_max_v2 / arg_min / arg_min_with_value / atan2 / bessel_i1e / cdist_grad - conversion/tril 改动原因:上述算子 op_host / op_api / op_graph 源码中存在裸 OP_LOGE (EZ9999 兜底上报)、 OP_CHECK_NULL_WITH_CONTEXT / OP_CHECK_NOTNULL (EZ9999 上报)等不符合错误码使用规范的上报路径,需按失败原因分类整改为正式语义码或内部透传。 采取的方法: - op_host 参数/输入校验类(shape / dtype / format / attr 值域等)裸 OP_LOGE → 正式语义宏(EZ0004 / EZ0008–EZ0038) - op_host 内部 API 失败类(平台能力查询、tiling API 失败等)→ OP_LOGE_WITHOUT_REPORT 透传,去掉 EZ9999 上报、保留日志 - OP_CHECK_NULL_WITH_CONTEXT (EZ9999)→ 显式空指针检查 + 正式码宏 - op_api OP_CHECK_NOTNULL (EZ9999)→ 显式检查 + OP_LOGE_WITHOUT_REPORT(ACLNN_ERR_INNER_NULLPTR) + 返回公共错误码 - op_api OP_LOGE(ACLNN_ERR_INNER_* / RUNTIME_ERROR) (561xxx / 361xxx)→ OP_LOGE_WITHOUT_REPORT ;正式参数码 ACLNN_ERR_PARAM_* (161xxx)保留 - 删除 CREATE_EXECUTOR 之后不可达的空指针死检查( CHECK_RET(executor.get()!=nullptr, ACLNN_ERR_INNER_CREATE_EXECUTOR) ,40 处) - op_graph(histogram_v2 / reduce_mean 融合 pass)E9 上报 → 正式码或透传 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3977 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 43 算子 op_host / op_api / op_graph 全量编译通过,exit 0(910b + 950/arch35) - 本地增加ut测试130 用例全量通过(910b 83 + 950 47),日志级验证触发 78 次正式 EZ 错误码上报,覆盖 14 个正式错误码 - 原版 math_op_host_ut 300 用例全量通过,无回归 - 静态复扫:范围内 E*9**** 正式上报清零(残留均为 CHECK_RET 返回公共码 / 动态 return 等允许项) - 附:适配 CANN 9.3.0 atvoss 库 tiling key 编码变化,更新 reduce_max / reduce_mean_with_count 测试的 9 处 expectedTilingKey (官方 master 在 9.3.0 下同样失败,非本 PR 引入) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6606 | 7 天前 | |
docs: 修复math算子文档错误码表缺项并对齐数据类型约束与实现 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !6765 merge fix_mathMD_1028 into master docs: 修复math算子文档错误码表缺项并对齐数据类型约束与实现 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 本次PR针对多个math算子文档与实现不一致或错误码表缺项的问题进行修复,共涉及6份算子文档: 1. aclnnMaxDim:错误码表161002补充"self、out、indices维度大于8时"子项,与参数表维度0-8说明对齐; 2. aclnnBitwiseXorTensor:删除out不支持UINT16/UINT32/UINT64/COMPLEX64/COMPLEX128的约束描述,对齐实际实现的放行行为; 3. aclnnFloor:删除非连续Tensor列UINT16/UINT32/UINT64不支持的无效约束(A2真机实测非连续输入均正常支持); 4. aclnnLeScalar/aclnnLeTensor:补充out、selfRef不支持UINT32/UINT64的平台约束(910/310p、A3/910b),并合并到既有平台约束块; 5. aclnnNeTensor:补充Atlas A2/A3系列self、other不支持UINT64的约束说明(A2真机验证放开校验会产生错误结果,当前拒绝行为是安全的)。 ## 关联的Issue - #3884:aclnnMaxDim错误码表缺少维度大于8子项 - #3881:aclnnBitwiseXorTensor文档声明out不支持UINT16/UINT32/UINT64/COMPLEX64/COMPLEX128与实现不符 - #3883:aclnnFloor文档多写非连续Tensor不支持UINT16/UINT32/UINT64约束 - #3853:aclnnNeTensor A2平台UINT64支持说明与实现不符 - #3889:aclnnLeTensor/aclnnLeScalar out支持UINT32/UINT64与实现不符 ## 测试 本次为纯文档修改,无代码变更。各文档改动均经实现代码(dtype支持列表、校验逻辑)静态核对,并对以下场景在A2真机验证: - aclnnFloor非连续UINT16/UINT32/UINT64输入6组用例全部成功且结果正确; - aclnnNeTensor UINT64放开校验后输出全假并伴随堆内存损坏,确认kernel未实现UINT64模板,以文档约束闭环; - aclnnBitwiseXorTensor COMPLEX64/COMPLEX128输出语义验证通过。 ## 文档更新 - math/arg_max_with_value/docs/aclnnMaxDim.md - math/bitwise_xor/docs/aclnnBitwiseXorTensor&aclnnInplaceBitwiseXorTensor.md - math/floor/docs/aclnnFloor&aclnnInplaceFloor.md - math/less_equal/docs/aclnnLeScalar&aclnnInplaceLeScalar.md - math/less_equal/docs/aclnnLeTensor&aclnnInplaceLeTensor.md - math/not_equal/docs/aclnnNeTensor&aclnnInplaceNeTensor.md ## 类型标签 - [x] 文档更新 See merge request: cann/ops-math!6765 | 4 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
[CANNBOT] Pdist新增Ascend950 pypto实现 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !5438 merge pdist_pypto into master [CANNBOT] Pdist新增Ascend950 pypto实现 Created-by: SimonZzz Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 pdist 算子新增 Ascend 950PR/950DT 系列(reg-base,DAV_3510/DAV_5102)PyPTO 内核实现,补齐 host 侧 tiling、GE 注册/推导到测试资产的全链路改动: - **PyPTO kernel(op_kernel/pdist.py)**:m-lane row-major 布局(零转置,消除 v1 pair-lane 转置布局下 vscatter 导致的 UB bank 串行化,fp16 [8192,512] 由 963ms 优化至约 20.6ms);M_BLK=128 分块 ping-pong 部分和累加(含 p=1/inf 分支的 NaN 计数);按 PBranch 编译期折叠的无分支内层 m 循环;提供 fp32/fp16 双 dtype 实例(fp16 以 pl.cast 展宽至 fp32 计算、出口 CAST_RINT 收窄) - **host tiling(op_host/arch35/pdist_tiling.cpp/.h)**:p 值映射 0-5 的 PBranch 分支并以 GET_TPL_TILING_KEY 编码 TilingKey;闭式 PdistFloorSum 计算 64 对任务块数 B,按核连续块域切分,MIX 发射方式计算 blockDim;tiling 数据含 N/M/B/p_val/inv_p 字段 - **GE 注册与推导(op_host/pdist_def.cpp、pdist_infershape.cpp)**:ascend950 AICore 配置及 DynamicShapeSupportFlag 等动态开关;输出 y=[N*(N-1)/2],dtype 与输入一致 - **测试资产**:examples/test_aclnn_pdist.cpp 重构为带 golden 容差比对的用例(fp32 覆盖 p=0/0.5/1/2/3/inf、大 M 多块场景及 fp16 用例);新增 GE IR RunGraph 用例 test_geir_pdist.cpp;tests/assets/golden.py 提供上三角行优先输出语义的参考实现与 TTK TestSpec(PdistTestSpec/AclnnPdistTestSpec/AclnnPdistForwardTestSpec)注册及 fp16/fp32 容差配置 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4169 ## 测试 - kernel 移植自 Stage-4 验证通过的 PyPTO-Pro v2 交付(verifier PASS 15/15、16/16 用例,附 Stage 5 性能证据) - eager 模式示例 fp32(p=0/0.5/1/2/3/inf、大 M 多块)与 fp16 用例均与 golden 容差比对通过 - 本地 pre-commit 全量通过(clang-format / ruff / codespell / OAT 合规),CI CodeCheck 门禁通过;PreSmoke 示例已去除 securec 依赖修复链接失败,随本提交重新验证 ## 文档更新 更新 math/pdist/README.md、docs/aclnnPdist.md、docs/aclnnPdistForward.md(实现方案、参数与产品支持说明) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5438 | 4 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
perf(population_count): 小shape性能优化:核扇出收敛+SWAR寄存器链 Co-authored-by: babeiee<125106023003@njust.edu.cn> # message auto-generated for no-merge-commit merge: !6383 merge perf/population-count-small-shape into master perf(population_count): 小shape性能优化:核扇出收敛+SWAR寄存器链 Created-by: babeiee Commit-by: babeiee Merged-by: cann-robot Description: ## 问题单 比率0.544 < 带宽折算(均值)=0.556,15 例小 shape(n=84~152K,int16/uint16)性能均值不过。 ## 根因(实测修正) 1. **主因:小 shape 核数扇出**。旧 tiling 以 32 元素最小块对齐( blockFactor = CeilAlign(CeilDiv(n, coreNum), ubBlockSize)),小 shape 被铺满核(n=3544 → 56 核 × 64 元素)。AIV 块调度成本随核数线性增长(实测 ~7-10ns/核),而 launch-bound 小 kernel 每核计算仅 1 个 VF tile。对照 abs(atvoss 调度器 512 元素对齐,n=3544 仅 7 核)floor 1.50us vs 修复前 2.01us。 2. **次因:SWAR 计算链 UB 驻留形态**(实测稳态差 ~0.1us,方差显著)。 ## 修复内容(3 文件 +100/-57) - **tiling**(population_count_tiling_arch35.cpp):blockFactor 对齐 512 元素(1KB/核,int16),小 shape 收敛至少数核;双 buffer 仅在 loopCount>=2(blockFactor > ubFactorSingle)时启用 - **kernel**(population_count.h):Compute 改为 __VEC_SCOPE__ 寄存器驻留 SWAR 链——DIST_NORM 128 元素/拍打包装载,DIST_PACK_B16 store 取每 16-bit lane 低字节直出 uint8(省去 Cast/0x00FF 掩码/VECCALC tmpBuf) - 入口补 KERNEL_TASK_TYPE_DEFAULT(KERNEL_TYPE_AIV_ONLY)(仓内标准写法) 数值正确性:step3 后 0x0F0F 掩码保留(nibble 残留会污染 bit4,popcount=16 输入出错);step4 后高字节残留由 PACK_B16 低字节选取自然丢弃。 ## 验证(Ascend950PR_9599 / CANN 9.3.0 / ttk v3.0.0 e2e,CI framework-api 同链路) - **15 失败例 CST 均值 0.519 → 0.697(阈值 0.556,余量 +25%),逐例 0.62~0.77 全过线** - 精度 **49/49 逐位一致**(15 失败例 + 26 边界例[标量/空张量/非对齐尾拍/1M/10M × int16+uint16] + 8 极值例[全0/全-1/±32767/65535]) - 大 shape 带宽不回归:10M 例 ~1871 GB/s ≥ 旧版 1779 GB/s - 大 shape 段比值原有 2.3~2.7 优势不变(未改动其执行路径参数) ## 复测注意 - 改 host tiling 后需清理 GE 图编译缓存(kernel_meta/),否则旧 tiling 被缓存冻结 - 自定义包 e2e 首跑含在线编译,判定用 per-call 稳态(min)或缓存预热后重跑 ## 关联的Issue - #3605(https://gitcode.com/cann/ops-math/issues/3605) See merge request: cann/ops-math!6383 | 15 天前 | |
fix(pow/sub): A2/A3补充out dtype白名单校验(#3964) Co-authored-by: doufloat<baijinxiang@huawei.com> # message auto-generated for no-merge-commit merge: !6800 merge fix/pow-out-dtype-whitelist into master fix(pow/sub): A2/A3补充out dtype白名单校验(#3964) Created-by: doufloat Commit-by: doufloat Merged-by: cann-robot Description: ## 描述 **问题** aclnnPowScalarTensor、aclnnPowTensorScalar、aclnnPowTensorTensor、aclnnSubs 和 aclnnSub 在 out 传入资料输出支持列表之外的 dtype(如 DT_INT4)时,A2/A3 会继续进入 Build/Cast 并返回内部错误码,而不是第一段接口约定的 161002。 **根因** 输出类型此前只经过可转换关系检查。部分非法 dtype 能被 CanCast 放行,随后在 Build/Cast 阶段失败,导致参数非法被降级为内部错误。 **方案** - 新增 out dtype 白名单校验,但仅在 NpuArch::DAV_2201(A2/A3)启用。 - aclnn_pow.cpp 和 aclnn_pow_tensor_tensor.cpp 覆盖 aclnnPowScalarTensor、aclnnPowTensorScalar、aclnnPowTensorTensor 三个 out-of-place 入口。 - aclnn_sub.cpp 在 CheckParamsScalar 和 CheckParams 中覆盖 aclnnSubs、aclnnSub;原地接口继续沿用原有输入别名校验。 - A5 走 DAV_3510 路径,不启用新增白名单,保持原有 CanCast 及后续 Build 行为不变。 - A2/A3 合法 out dtype 路径不变,仅将非法 dtype 的返回码修正为 ACLNN_ERR_PARAM_INVALID(161002)。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3964 ## 测试 **A2:Ascend 910B3,CANN 9.2.0** - math_op_api_ut:158/158 PASS,包含新增 A2 非法 out 校验和 A5 不拦截回归用例。 - 当前补丁真机矩阵:PowScalarTensor/PowTensorScalar/PowTensorTensor/Subs/Sub 的 INT4/UINT1/HIFLOAT8/FLOAT8_E5M2/COMPLEX32 均返回 161002。 - 合法路径未被误拦截:三个 Pow 入口的 INT64 -> UINT16/UINT32/UINT64 均返回 0;FLOAT/FLOAT16/DOUBLE/BF16/COMPLEX64/COMPLEX128 输出在对应可转换输入下保持 0。 **A5:Ascend 950PR,CANN 9.2.0** - math_op_api_ut:158/158 PASS,包含 Ascend950_out_dtype_check_not_applied 回归用例。 - 当前补丁真机矩阵与基线一致: | out dtype | PowScalarTensor | PowTensorScalar / PowTensorTensor / Subs / Sub | | --- | --- | --- | | INT4 / UINT1 / COMPLEX32 | 561000 | 561103 | | HIFLOAT8 / FLOAT8_E5M2 | 0 | 0 | - 新增 A2/A3 out 白名单在 A5 未生效;合法 INT64 -> UINT16/UINT32/UINT64 仍返回 0。 **实现路径说明** A3 与 A2 均走 DAV_2201 路径,共用同一实现。本轮完成 A2 和 A5 真机验证。 ## 文档更新 不涉及。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他(请说明) See merge request: cann/ops-math!6800 | 3 天前 | |
feat: StridedSliceGrad、Power 算子适配 ascend960dt/ascend960pr 平台 Co-authored-by: esok11<yangsifa@huawei.com> # message auto-generated for no-merge-commit merge: !6530 merge t1020 into master feat: StridedSliceGrad、Power 算子适配 ascend960dt/ascend960pr 平台 Created-by: esok11 Commit-by: esok11 Merged-by: cann-robot Description: ## 描述 为 StridedSliceGrad、Power 算子新增 ascend960dt / ascend960pr 平台的支持,并同步补充 Asin 算子在新平台的编译配置。 ### 改动原因 上述算子此前仅注册了 ascend950、ascend350 等平台(StridedSliceGrad 另含 ascend310p、ascend910_93、ascend910b),缺少 ascend960dt / ascend960pr 的算子定义注册、编译单元与二进制配置,导致新平台无法编译与下发。 ### 改动方法 **StridedSliceGrad(conversion/strided_slice_grad)** - CMakeLists.txt:SUPPORT_COMPUTE_UNIT 增加 ascend960dt,对应 SUPPORT_TILING_DIR 增加 arch35(复用 arch35 tiling)。 - op_host/strided_slice_grad_def.cpp:AICore().AddConfig("ascend960dt", aicoreConfig),沿用已有 aicoreConfig(DynamicShape 支持、opFile 为 strided_slice_grad_apt)。 - 新增 op_host/config/ascend960dt/strided_slice_grad_binary.json(28 条二进制配置)与 strided_slice_grad_simplified_key.ini(default=0);二进制配置内容与 ascend950 配置一致。 - 二进制配置覆盖数据类型:bfloat16、float16、float32、double、int8、int16、int32、int64、uint8、uint16、uint32、uint64、complex32、complex64;输入 shape/begin/end/strides 为 int32,格式均为 ND。 **Power(math/power)** - CMakeLists.txt:SUPPORT_COMPUTE_UNIT 增加 ascend960pr、ascend960dt,tiling 目录均为 arch35;新增 add_kernel_sources,以 COMPUTE_UNITS ascend960dt ascend960pr、AUTO_SYNC false、OPTIONS "-mllvm -cce-aicore-dcci-before-kernel-end=false" 编译 power_apt.cpp。 - op_host/power_def.cpp:新增 AICore().AddConfig("ascend960pr", aicoreConfig) 与 AICore().AddConfig("ascend960dt", aicoreConfig)。 - 新增 op_host/config/ascend960dt、op_host/config/ascend960pr 两组配置,各含 power_binary.json(fp16/fp32/bf16 共 3 条)与 power_simplified_key.ini(default=0)。 **scripts/kernel/binary_config/ascendc_config.json** - Asin:compute_units 增加 ascend960pr、ascend960dt,并为两者配置编译选项 -mllvm -cce-aicore-dcci-before-kernel-end=false。 - StridedSliceGrad:compute_units 增加 ascend960dt,并配置相同编译选项。 ## 关联的Issue - #3688 ## 测试 本次 PR 未包含测试代码与测试结果说明。变更涉及新平台的算子注册与二进制配置,建议在 ascend960dt、ascend960pr 环境完成算子泛化与二级冒烟验证后补充结果。 ## 文档更新 无(未修改文档)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6530 | 13 天前 | |
fix: E*9****内部错误码整改为正式语义码并保留内部异常EZ9999上报 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !6606 merge fix_errorNum_1021 into master fix: E*9****内部错误码整改为正式语义码并保留内部异常EZ9999上报 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次 PR 整改以下 43 个算子中非法使用的内部错误码(E*9****),使其符合错误码使用规范: - cholesky / complex / cross / cummax / cummin / cumprod / get_shape / histogram_v2 / is_finite / is_inf - kl_div_v2 / lin_space / log_add_exp / non_finite_check / pdist / polar / pows / radix_top_k - reduce_log_sum / reduce_log_sum_exp / reduce_max / reduce_mean / reduce_mean_with_count / reduce_min - reduce_nansum / reduce_std_with_mean / rfft1_d / search_sorted / signbit / sin / sinc / sinkhorn / topk - affine_grid / amp_update_scale / angle_v2 / arg_max_v2 / arg_min / arg_min_with_value / atan2 / bessel_i1e / cdist_grad - conversion/tril 改动原因:上述算子 op_host / op_api / op_graph 源码中存在裸 OP_LOGE (EZ9999 兜底上报)、 OP_CHECK_NULL_WITH_CONTEXT / OP_CHECK_NOTNULL (EZ9999 上报)等不符合错误码使用规范的上报路径,需按失败原因分类整改为正式语义码或内部透传。 采取的方法: - op_host 参数/输入校验类(shape / dtype / format / attr 值域等)裸 OP_LOGE → 正式语义宏(EZ0004 / EZ0008–EZ0038) - op_host 内部 API 失败类(平台能力查询、tiling API 失败等)→ OP_LOGE_WITHOUT_REPORT 透传,去掉 EZ9999 上报、保留日志 - OP_CHECK_NULL_WITH_CONTEXT (EZ9999)→ 显式空指针检查 + 正式码宏 - op_api OP_CHECK_NOTNULL (EZ9999)→ 显式检查 + OP_LOGE_WITHOUT_REPORT(ACLNN_ERR_INNER_NULLPTR) + 返回公共错误码 - op_api OP_LOGE(ACLNN_ERR_INNER_* / RUNTIME_ERROR) (561xxx / 361xxx)→ OP_LOGE_WITHOUT_REPORT ;正式参数码 ACLNN_ERR_PARAM_* (161xxx)保留 - 删除 CREATE_EXECUTOR 之后不可达的空指针死检查( CHECK_RET(executor.get()!=nullptr, ACLNN_ERR_INNER_CREATE_EXECUTOR) ,40 处) - op_graph(histogram_v2 / reduce_mean 融合 pass)E9 上报 → 正式码或透传 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3977 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 43 算子 op_host / op_api / op_graph 全量编译通过,exit 0(910b + 950/arch35) - 本地增加ut测试130 用例全量通过(910b 83 + 950 47),日志级验证触发 78 次正式 EZ 错误码上报,覆盖 14 个正式错误码 - 原版 math_op_host_ut 300 用例全量通过,无回归 - 静态复扫:范围内 E*9**** 正式上报清零(残留均为 CHECK_RET 返回公共码 / 动态 return 等允许项) - 附:适配 CANN 9.3.0 atvoss 库 tiling key 编码变化,更新 reduce_max / reduce_mean_with_count 测试的 9 处 expectedTilingKey (官方 master 在 9.3.0 下同样失败,非本 PR 引入) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6606 | 7 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
fix 950 ut编译失败 Co-authored-by: chenqi317<CF2usBBbA386a-MRyWP5pYfd> # message auto-generated for no-merge-commit merge: !6699 merge master into master fix 950 ut编译失败 Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> fix 950 ut 编译失败 [2026-10-26 17:42:42] make[3]: *** [tests/ut/op_host/CMakeFiles/math_op_host_ut.dir/build.make:110: tests/ut/op_host/math_op_host_ut] Error 1 [2026-10-26 17:42:42] make[2]: *** [CMakeFiles/Makefile2:14718: tests/ut/op_host/CMakeFiles/math_op_host_ut.dir/all] Error 2 [2026-10-26 17:42:42] make[1]: *** [CMakeFiles/Makefile2:14725: tests/ut/op_host/CMakeFiles/math_op_host_ut.dir/rule] Error 2 [2026-10-26 17:42:42] make: *** [Makefile:1152: math_op_host_ut] Error 2 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6699 | 7 天前 | |
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 1 个月前 | |
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 1 个月前 | |
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 1 个月前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
fix: E*9****内部错误码整改为正式语义码并保留内部异常EZ9999上报 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !6606 merge fix_errorNum_1021 into master fix: E*9****内部错误码整改为正式语义码并保留内部异常EZ9999上报 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次 PR 整改以下 43 个算子中非法使用的内部错误码(E*9****),使其符合错误码使用规范: - cholesky / complex / cross / cummax / cummin / cumprod / get_shape / histogram_v2 / is_finite / is_inf - kl_div_v2 / lin_space / log_add_exp / non_finite_check / pdist / polar / pows / radix_top_k - reduce_log_sum / reduce_log_sum_exp / reduce_max / reduce_mean / reduce_mean_with_count / reduce_min - reduce_nansum / reduce_std_with_mean / rfft1_d / search_sorted / signbit / sin / sinc / sinkhorn / topk - affine_grid / amp_update_scale / angle_v2 / arg_max_v2 / arg_min / arg_min_with_value / atan2 / bessel_i1e / cdist_grad - conversion/tril 改动原因:上述算子 op_host / op_api / op_graph 源码中存在裸 OP_LOGE (EZ9999 兜底上报)、 OP_CHECK_NULL_WITH_CONTEXT / OP_CHECK_NOTNULL (EZ9999 上报)等不符合错误码使用规范的上报路径,需按失败原因分类整改为正式语义码或内部透传。 采取的方法: - op_host 参数/输入校验类(shape / dtype / format / attr 值域等)裸 OP_LOGE → 正式语义宏(EZ0004 / EZ0008–EZ0038) - op_host 内部 API 失败类(平台能力查询、tiling API 失败等)→ OP_LOGE_WITHOUT_REPORT 透传,去掉 EZ9999 上报、保留日志 - OP_CHECK_NULL_WITH_CONTEXT (EZ9999)→ 显式空指针检查 + 正式码宏 - op_api OP_CHECK_NOTNULL (EZ9999)→ 显式检查 + OP_LOGE_WITHOUT_REPORT(ACLNN_ERR_INNER_NULLPTR) + 返回公共错误码 - op_api OP_LOGE(ACLNN_ERR_INNER_* / RUNTIME_ERROR) (561xxx / 361xxx)→ OP_LOGE_WITHOUT_REPORT ;正式参数码 ACLNN_ERR_PARAM_* (161xxx)保留 - 删除 CREATE_EXECUTOR 之后不可达的空指针死检查( CHECK_RET(executor.get()!=nullptr, ACLNN_ERR_INNER_CREATE_EXECUTOR) ,40 处) - op_graph(histogram_v2 / reduce_mean 融合 pass)E9 上报 → 正式码或透传 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3977 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 43 算子 op_host / op_api / op_graph 全量编译通过,exit 0(910b + 950/arch35) - 本地增加ut测试130 用例全量通过(910b 83 + 950 47),日志级验证触发 78 次正式 EZ 错误码上报,覆盖 14 个正式错误码 - 原版 math_op_host_ut 300 用例全量通过,无回归 - 静态复扫:范围内 E*9**** 正式上报清零(残留均为 CHECK_RET 返回公共码 / 动态 return 等允许项) - 附:适配 CANN 9.3.0 atvoss 库 tiling key 编码变化,更新 reduce_max / reduce_mean_with_count 测试的 9 处 expectedTilingKey (官方 master 在 9.3.0 下同样失败,非本 PR 引入) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6606 | 7 天前 | |
fix: 修复 RaggedBinCount 边界、TF 标量适配和 Golden,精简 ST 用例 Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !6648 merge fix/august-scan-followup-20261023 into master fix: 修复 RaggedBinCount 边界、TF 标量适配和 Golden,精简 ST 用例 Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 修复 RaggedBinCount 在 Ascend 950 上的三处问题:私有直方图容量/流量计算在大元数据下溢出导致 Tiling 进程异常;合法标量 values 被 V2 InferShape 和 Tiling 拒绝;TensorFlow 源算子注册名误写为 RaggedBinCount,实际名称应为 RaggedBincount。 TF 标量 size 适配补齐:在保留标准源名 RaggedBincount 的基础上,设置 original_type 并通过图展开插入真实 Reshape,将 FP32 weights 路径的标量 size 转为原生要求的 [1],保持 int32/int64 的值依赖。整数与 FP64 weights 保留小写旧目标,不强制转 FP32。新增 4 条框架 UT,通过 RaggedBinCount 自己的 CMake 接入;未改公共 CMake、Kernel 或原生 size 接口。实际测试确认仅修正名称会在 GE 推导失败,适配后标准 TF GraphDef 可执行至 NPU。 Golden 的单 FP64 累加器会把 [2^100, 1, -2^100] 算成 0。为有限、异号的 Promote 输入使用 Torch 残差部分和,保留框架传入的 dtype 和非有限数语义;不根据用例名称选择计算方法。补充相消、标量图模式及仅编译的大元数据回归。 删除图模式样例中无用的 experiment_ops.h 依赖,把样例的 size 建成 Const 并显式设置输入描述,避免图编译读不到分箱数后错误恢复空 weights 形状;修正 dtype 错误日志。README同步标量范围,按现行要求移除产品差异表,调用说明保留GE图模式示例和算子IR入口。生产代码、Golden、样例和文档变更位于 math/ragged_bin_count;SquareSumAll 仅整理 ST CSV。未修改公共代码、Kernel 或 TTK 框架。 此前 CSV 整理阶段仅整理代码仓 arch35 ST CSV:RaggedBinCount 150→31 条(18 条 Kernel、13 条 GEIR),7 个 CSV 合并为 2 个,两个模式因表头不同分开;SquareSumAll 1200→18 条,两种模式共用一个表头一致的 CSV,保留 ttk_kernel_ 文件名以适配现有流水线发现规则。保留分块边界、标量、空输入、dtype、布局和数值回归代表;单个输入最多 8193 个元素。生成脚本及其他测例仓不改,Ragged 的 5 条仅编译元数据 UT 不在本次 ST 精简范围。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3861 ## 测试 2026-10-27最终文档修复后的完整本地CI:**PASS**。受测提交d663e469efc3f3fc5c2db4f20cadcf4bed399217,官方master快照062cd425274de90c33afb82df32ae03049cb4881。 - README调用说明移除TF适配源码及节点/shape转换说明,保留GE图模式的真实示例和算子IR入口。仅删除该行5行HTML;产品、原生参数约束、生产代码、CSV及示例均未改变。用户指定的文档指引文件未修改。 - 两个相对链接、表格渲染、diff及文档检查通过;GE示例和TF插件源码哈希匹配此前实测版本,未重复运行NPU/GPU测试,也不把历史运行记为本次新上板结果。 - 指定本地CI统一入口串行覆盖950/A2:Host UT分别132/132、61/61,Graph UT各1/1;两平台定向package、GE依赖、完整pre-commit、15个现存变更文件隔离OAT、文档链接、Golden语法、示例语法及SKIP契约通过。API实际0条,Kernel UT阶段无实际用例计数,均不计数值覆盖。 - squash前后同原基点完整binary/mode diff及Git tree一致,再rebase到上述官方master;rebase后完整PR diff及19个文件状态一致。最终只有一个提交。线上CI针对该受测SHA单独触发,不与本地PASS混用。 以下保留此前阶段验证记录: 2026-10-26 TF 适配增量后的完整本地 CI:**PASS**。受测提交 f0b96ef53c7f1e8bc64a72bb7dfe0a80e5b01c56,本轮官方 master 快照 73b55be428c754e9b2e2fe32cf5da1cd379d8aef。使用指定 /workspace/CI-skills/ci_local_check.sh,按 PR 全部变更识别 RaggedBinCount、SquareSumAll,950/A2 串行定向构建,最大 8 jobs。 - 950 Host UT 132/132、A2 Host UT 61/61;Graph UT 各 1/1。API 实际均 0 条;Kernel UT 阶段未产生实际用例计数,不计数值覆盖。 - 两平台定向 package、生产库/Host UT 的 GE 依赖检查通过;完整 pre-commit、15 个现存变更文件的隔离 OAT、Markdown 链接、Golden Python 语法、图样例语法及 SKIP 退出契约检查通过。 - 原三个提交先 squash 为一个,同原始基点的完整 binary/mode diff 与 Git tree 不变,再 rebase 本轮官方 master;rebase 后全部 PR 文件内容及完整 PR diff 也未变化。没有为 CI 新增生产代码修改。 - 本轮未追加 NPU/GPU 算子测试。此前 TF/GEIR 回归保留原受测版本和同源码证明;GPU SSH 与小规模 CUDA 运算现已恢复,按本次 TF 形状适配范围不把额外三方作为阻塞。线上 CI 单独触发和记录,不能把本地通过称为线上通过。 以下为本次 CI 前的原验证记录: TF 定向回归时 HEAD:32002c41ad100500bc715663db5789c209f63ded;本轮 fetch 的官方 master:6a71e83e286cca85c0098543e72c6bf0eaed2f9b。此次按用户要求只做必要回归,不重跑完整本地 CI。 - 最终提交重新构建 RaggedBinCount Host UT:90/90 PASS,含新增 TF 图转换 UT 4 条。真实 size 连接、OriginShape、int32/int64、binary、旧 dtype 路由和非法属性均覆盖;Issue6 大形状只检查元数据,不分配大张量。 - 真实 TensorFlow GraphDef 经官方 CANN parser 导入后,5 个小用例在 Ascend 950 执行成功:4 个非空输出与 TensorFlow CPU 参考逐字节一致;size=0 检查空输出 shape/dtype,不能计为有效数值覆盖。涵盖 int32/int64、不同 rank 同元素数 weights、空 weights、binary;values 最多 6 个元素。 - 仓库正式 optf_plugin_math 目标构建通过;最终插件放入任务内 vendor/framework 自动加载,未显式 dlopen、未 LD_PRELOAD,标准 TF 标量 size 经 Reshape 进入大写 RaggedBinCount,输出 [2,4] 全值正确。测试后移除临时部署插件。 - 原版本标量 size 失败已实际复现;负 size 和多元素 size 各 1 条正确拒绝。原生 size=[1] 的 TTK GEIR 6 例、静态/动态 12 路径 PASS,显式 --pc=1,TTK 固定 5bc080fe。首轮内存压力下的超时记录保留,不改写为通过。 - 旧 int32/int64/FP64 weights 各做修改前后对照,均导入小写目标,并在旧 RaggedBincountVerify(math_ops.cc:393)相同 dtype 校验失败。未执行到 Kernel,不计精度 PASS,也不据此宣称旧路径完整验证通过。 - GPU SSH 仍在 banner exchange 超时,本轮 TF 用例仅与真实 TensorFlow CPU 参考比较,尚无 GPU 三方结果;此前 GPU 测试不转记到新输入。其他失败和未覆盖范围原样保留。 - 最终构建/测试全程使用任务内独立 CANN,实际 TF 执行使用已授权的正式 weekly20261021.01 包;构建最大 8 jobs,测试串行。pre-commit、3 文件增量 OAT 与本次增量 diff 检查通过。新增修复独立提交,rebase 后完整 binary/mode diff 与 rebase 前一致;本次没有套用旧提交的完整本地 CI 通过结论。 以下保留 2026-10-25 CSV 整理阶段及此前的验证记录,不代表当前提交已通过完整本地或线上 CI。 2026-10-25 CSV 阶段 HEAD:e1fdc59e35e6ee35f9d77ec5faf69551299e0500。CSV 精简前 HEAD:7005de3cdf0406df39345ec5d8c472a90500a1a2;两者之间仅有 CSV 改动。 - 本次检查:3 个 CSV 共 49 条记录完成结构检查;TTK --validate --pc=1 分模式解析共 67 valid / 0 invalid(SquareSumAll 的 18 条分别按 Kernel/GEIR 解析)。检查列数、用例名唯一性、shape 上限和手工数据依赖,git diff --check 通过。 - 按本次任务要求不重跑完整本地 CI,本次未新增 Math NPU 批次。当前提交推送后触发线上 CI,结果以该提交对应任务为准;不能将解析通过表述为实机精度通过。 - SquareSumAll 的共享 CSV 经两种模式解析确认;默认 ST 脚本按文件前缀发现 Kernel 用例,不声称合并后会自动重复执行 GEIR。 以下为 CSV 精简前的验证记录;不替代本次最终 CSV 的完整实机验收。 - 指定本地 CI 统一入口通过,受测 SHA 与下列提交一致;Ascend 950/A2 定向包、GE ABI、完整 pre-commit、全量 12 文件隔离 OAT、Markdown 链接和图样例语法检查通过。Host UT 分别 86/86、47/47,Graph UT 各 1/1;API 实际 0 条,Kernel UT 阶段未产生实际用例数,不额外计入精度覆盖。 - 首次本地 CI 暴露一条旧 UT 仍要求拒绝合法 scalar values;修正为成功并检查输出形状 [2,5],保留 rank 3 等非法输入拒绝测试。原 85/86 失败日志保留;修改后完整入口重新通过。该次补改只涉及算子自己的 UT。 - GPU 已恢复,使用未修改 TTK 官方 master 5bc080fe42c25b2a11654e514de10ac08771cb02、Promote、cross_check L1、显式 --pc=1:19 条冻结历史输入 17 PASS / 2 FAIL,新增 7 条相消排列/符号回归 7/7 PASS。两条 FAIL 中 GPU 为 Inf,NPU 分别为 1.0 和 1.0000001192092896,等于 FP64 参考的正确 FP32 舍入;框架特殊值分支要求 FP32 与未舍入 FP64 精确相等,仍报 NaN/Inf mismatch。未改比较器、阈值或 FAIL 记录,未重新启用已关闭的 TTK PR483。 - 正式 weekly20261021.01 Toolkit+950-ops 安装上部署当前生产源码对应的 custom_math 包,14/14 GEIR、静态/动态共 28/28 路径通过,包含原先失败的两条 int64 标量和未知 rank。此组无 LD_PRELOAD、无 V1 跳过、无安装库改写;真实进程加载路径全部来自新周包。另两条只记录的诊断四路径通过:V1 调用正常返回,V2 查询选中 custom_math 原生推导;不把查询次数当作调用次数。 - 保留旧 weekly20260923.01 包直接 GEIR 10/12、两条 V1 干扰失败的历史记录;新正式周包集成结果不是 canndev 源码整包构建,也不回写旧版本为通过。 - 受影响生产、Golden 和样例文件与既有实测源码一致:大元数据仅编译测试 5/5 BINARY_MATCH(原主线 4/5 Tiling 异常);release Kernel 新相消 7/7、常规 20/20、精度边界 48/48;确定性 GEIR 3 条各 3 次精度/MD5 通过;仓库入口构建运行图样例、独立核对 FP32 [2,4] 的 8 个值全部正确。超大元数据组不分配超大张量、不执行 Kernel。 - 任务内独立 CANN_Master/CANN_Revise 保留,新周包另装在任务内独立目录;构建最多 8 jobs,测试和两个仓库串行。未将 A2 构建和 Host UT 表述为 A2/A3 实机测试;TF 插件编译通过,TF 端到端未执行。Kernel 确定性选项的框架 number/string 序列化缺口仍保留。 - 通用部署脚本的 SUCCESS 文本/inc 目录误判原日志保留;实际包载荷哈希、逐文件 include 检查和执行分别核验,没有改公共脚本或虚造目录。 CSV精简前本地CI受测提交:7005de3cdf0406df39345ec5d8c472a90500a1a2 主线基点:584b2ea6cbaeba684a51a74296d82d4d50ab3b0f。已按单提交、完整 diff/tree 不变检查、最新主线 rebase 顺序整理,本地 CI 验证对应上述 CSV 精简前的提交,本次新增 CSV 提交未重跑完整本地 CI。 此前 2026-10-25 本地 CI 复验(CSV 精简前): 按指定统一入口串行复验,Ascend 950/A2定向构建及本地CI均通过;Host UT分别86/86、47/47,Graph UT两平台各1/1,API实际均为0条。完整pre-commit、隔离OAT、链接及样例静态检查通过;Kernel UT阶段未产生实际用例计数,不额外计入数值覆盖。该轮仅整理提交并rebase,无新增算子或文档修改,未重复运行NPU三方测试。 CSV精简前的CI受测提交:7005de3cdf0406df39345ec5d8c472a90500a1a2;官方master快照:584b2ea6cbaeba684a51a74296d82d4d50ab3b0f。保留原始提交、完整diff/tree核验记录及未跟踪日志;rebase前后目标算子内容一致。线上CI状态单独记录,不以本地通过代替线上通过。 ## 文档更新 局部更新README参数与约束;调用说明保留GE图模式的真实示例和算子IR入口,移除TF适配源码及内部转换说明,不增加环境安装或构建说明。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!6648 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
feat: 迁移gelocal控制流与基础算子交付件(含While/If/Case/For/PartitionedCall、TF控制流插件、reshape),实现RT2.0交付 Co-authored-by: Dazhou_Cao<caodazhou@huawei.com> # message auto-generated for no-merge-commit merge: !6621 merge migrate-gelocal-delivery into master feat: 迁移gelocal控制流与基础算子交付件(含While/If/Case/For/PartitionedCall、TF控制流插件、reshape),实现RT2.0交付 Created-by: Dazhou_Cao Commit-by: Dazhou_Cao Merged-by: cann-robot Description: ## 描述 汇总迁移 gelocal(RT2.0)算子交付件: - **基础/GE 控制流算子**:size、rank、LoopCond、NextIteration、RefIdentity、SwitchByIndex、aipp_data、End、squeezev2、unsqueezev2,以及 enter/exit/merge/switch/switch_n/ref_* 等 - **子图控制流算子**:If、Case、For、PartitionedCall、While(原型注册 + RT2.0 推导注册 + UT + README,If/Case/For/PartitionedCall 含 GeIR 示例;均归入 ge 分类) - **TF 控制流插件**:If/_If/StatelessIf、While/_While/StatelessWhile、Case/StatelessCase、PartitionedCall/StatefulPartitionedCall 变体合并映射 - **reshape**:infershape 对齐 RT1.0 语义、allowzero/shape 属性注册、信息库 - **文档**:README 产品支持表统一(全部√)、gather_shapes 归入 conversion、op_list 同步登记 ## 测试 - bash build.sh --ophost --opgraph -j8 构建通过(含各算子 REG_OP 注册校验) - 宿主侧全量 UT:2594/2594 PASSED(384 test suites) ## 说明 - 内容汇总自此前迁移 PR(6474 / 6522 / 6208)的交付件,本 PR 为其合并后的统一交付 See merge request: cann/ops-math!6621 | 7 天前 | |
Math仓算子适配Ascend350平台 Co-authored-by: huairuchen<chenhuairu@huawei.com> # message auto-generated for no-merge-commit merge: !6372 merge dvlite-math-350-adapt into master Math仓算子适配Ascend350平台 Created-by: huairuchen Commit-by: huairuchen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Math仓部分随机数算子在350平台进行适配 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4202 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 算子泛化测试,冒烟测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6372 | 5 天前 | |
fix(proto): 修复39个算子proto.h注释的拼写与语法错误 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !5815 merge fix/proto-comment-grammar into master fix(proto): 修复39个算子proto.h注释的拼写与语法错误 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 对 39 个算子的 op_graph/*_proto.h 注释做拼写与语法修复,仅注释与格式变更,不涉及任何代码逻辑: - **拼写错误**:select_v2 condittion→condition(2处)、axpy_v2 opratioan→operation、clip_by_value 英文 dtype 列表中的全角逗号改半角 - **系统性语法(历史模板复制扩散)**:Support broadcasting→Supports broadcasting(27个文件)、A ND→An ND(33个文件97处) - **单文件语法修复 71 处(含 signbit returns→Returns、axpy should→Should 两处句首大写补漏)**:ger has→have、addcmul/addcdiv multiply→multiplies、muls An required→A required、equal (x=y)→(x1==x2)、Elementwise→Element-wise、bias_add/lerp/gcd 语序与冠词修复、aicore→AiCore、mod/floor_mod 矛盾表述统一、句首大小写与标点空格等 - 附带 pre-commit 钩子强制规范化(clang-format 重排、尾随空白、文件末尾换行),并保留各文件原有行尾风格(CRLF/LF) 涉及算子:add/sub/mul/muls/div/real_div/floor_div/div_no_nan/pow/minimum/maximum/signbit/less/less_equal/greater/greater_equal/not_equal/equal/bias_add/squared_difference/lerp/logical_and/logical_or/bitwise_or/bitwise_and/bitwise_xor/tanh_grad/axpy/axpy_v2/addcmul/addcdiv/select/select_v2/mod/floor_mod/ger/gcd/clip_by_value/clip_by_value_v2 ## 关联的Issue - #3234 - https://gitcode.com/cann/ops-math/issues/3234 ## 测试 - 纯注释变更,无功能影响 - pre-commit 钩子全部通过(clang-format / trailing-whitespace / end-of-file-fixer / codespell / OAT 合规检查) - 严格限定在上述 39 个算子文件,全仓其余算子未改动(其余算子同类问题可后续另行清理) ## 文档更新 不涉及仓内 docs/ 目录;本 PR 即为 proto.h 注释(算子原型文档源)的修正 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5815 | 9 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
reciprocal_grad新增 ascend960dt/ascend960pr 平台支持 Co-authored-by: liushaxiangdong<jinpeng11@huawei.com> # message auto-generated for no-merge-commit merge: !6536 merge master into master reciprocal_grad新增 ascend960dt/ascend960pr 平台支持 Created-by: liushaxiangdong Commit-by: liushaxiangdong Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> reciprocal_grad新增 ascend960dt/ascend960pr 平台支持 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 验证冒烟用例,算子用例 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6536 | 12 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
docs(reduce): 修改 MeanV2/MaxV2/AminmaxAll 接口约束 Co-authored-by: zhouyuanhang30083383<zhouyuanhang4@h-partners.com> # message auto-generated for no-merge-commit merge: !6949 merge docs/reduce-contract-clarify into master docs(reduce): 修改 MeanV2/MaxV2/AminmaxAll 接口约束 Created-by: m0_55003149 Commit-by: zhouyuanhang30083383 Merged-by: cann-robot Description: ## 描述 aclnnMeanV2:删除无法触发的 format 161002 子项,并说明当前实现不校验 aclFormat、按 ND 语义处理;调用方应使用 ND,非 ND 物理布局不受支持。 aclnnMaxV2:补充 out shape 与 dims/keepDims/noopWithEmptyDims 推导不一致时返回 161002。 aclnnAminmaxAll:补充 minOut/maxOut 的 shape 约束,以及出参元素数与归约结果不一致时返回 161002。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4260 https://gitcode.com/cann/ops-math/issues/4262 https://gitcode.com/cann/ops-math/issues/4287 ## 测试 ## 文档更新 更新了: math/reduce_max/docs/aclnnMaxV2.md math/reduce_max/docs/aclnnMaxV2_en.md math/reduce_mean/docs/aclnnMeanV2.md math/reduce_mean/docs/aclnnMeanV2_en.md math/reduce_min/docs/aclnnAminmaxAll.md math/reduce_min/docs/aclnnAminmaxAll_en.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6949 | 1 天前 | |
docs(reduce): 修改 MeanV2/MaxV2/AminmaxAll 接口约束 Co-authored-by: zhouyuanhang30083383<zhouyuanhang4@h-partners.com> # message auto-generated for no-merge-commit merge: !6949 merge docs/reduce-contract-clarify into master docs(reduce): 修改 MeanV2/MaxV2/AminmaxAll 接口约束 Created-by: m0_55003149 Commit-by: zhouyuanhang30083383 Merged-by: cann-robot Description: ## 描述 aclnnMeanV2:删除无法触发的 format 161002 子项,并说明当前实现不校验 aclFormat、按 ND 语义处理;调用方应使用 ND,非 ND 物理布局不受支持。 aclnnMaxV2:补充 out shape 与 dims/keepDims/noopWithEmptyDims 推导不一致时返回 161002。 aclnnAminmaxAll:补充 minOut/maxOut 的 shape 约束,以及出参元素数与归约结果不一致时返回 161002。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4260 https://gitcode.com/cann/ops-math/issues/4262 https://gitcode.com/cann/ops-math/issues/4287 ## 测试 ## 文档更新 更新了: math/reduce_max/docs/aclnnMaxV2.md math/reduce_max/docs/aclnnMaxV2_en.md math/reduce_mean/docs/aclnnMeanV2.md math/reduce_mean/docs/aclnnMeanV2_en.md math/reduce_min/docs/aclnnAminmaxAll.md math/reduce_min/docs/aclnnAminmaxAll_en.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6949 | 1 天前 | |
fix: E*9****内部错误码整改为正式语义码并保留内部异常EZ9999上报 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !6606 merge fix_errorNum_1021 into master fix: E*9****内部错误码整改为正式语义码并保留内部异常EZ9999上报 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次 PR 整改以下 43 个算子中非法使用的内部错误码(E*9****),使其符合错误码使用规范: - cholesky / complex / cross / cummax / cummin / cumprod / get_shape / histogram_v2 / is_finite / is_inf - kl_div_v2 / lin_space / log_add_exp / non_finite_check / pdist / polar / pows / radix_top_k - reduce_log_sum / reduce_log_sum_exp / reduce_max / reduce_mean / reduce_mean_with_count / reduce_min - reduce_nansum / reduce_std_with_mean / rfft1_d / search_sorted / signbit / sin / sinc / sinkhorn / topk - affine_grid / amp_update_scale / angle_v2 / arg_max_v2 / arg_min / arg_min_with_value / atan2 / bessel_i1e / cdist_grad - conversion/tril 改动原因:上述算子 op_host / op_api / op_graph 源码中存在裸 OP_LOGE (EZ9999 兜底上报)、 OP_CHECK_NULL_WITH_CONTEXT / OP_CHECK_NOTNULL (EZ9999 上报)等不符合错误码使用规范的上报路径,需按失败原因分类整改为正式语义码或内部透传。 采取的方法: - op_host 参数/输入校验类(shape / dtype / format / attr 值域等)裸 OP_LOGE → 正式语义宏(EZ0004 / EZ0008–EZ0038) - op_host 内部 API 失败类(平台能力查询、tiling API 失败等)→ OP_LOGE_WITHOUT_REPORT 透传,去掉 EZ9999 上报、保留日志 - OP_CHECK_NULL_WITH_CONTEXT (EZ9999)→ 显式空指针检查 + 正式码宏 - op_api OP_CHECK_NOTNULL (EZ9999)→ 显式检查 + OP_LOGE_WITHOUT_REPORT(ACLNN_ERR_INNER_NULLPTR) + 返回公共错误码 - op_api OP_LOGE(ACLNN_ERR_INNER_* / RUNTIME_ERROR) (561xxx / 361xxx)→ OP_LOGE_WITHOUT_REPORT ;正式参数码 ACLNN_ERR_PARAM_* (161xxx)保留 - 删除 CREATE_EXECUTOR 之后不可达的空指针死检查( CHECK_RET(executor.get()!=nullptr, ACLNN_ERR_INNER_CREATE_EXECUTOR) ,40 处) - op_graph(histogram_v2 / reduce_mean 融合 pass)E9 上报 → 正式码或透传 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3977 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 43 算子 op_host / op_api / op_graph 全量编译通过,exit 0(910b + 950/arch35) - 本地增加ut测试130 用例全量通过(910b 83 + 950 47),日志级验证触发 78 次正式 EZ 错误码上报,覆盖 14 个正式错误码 - 原版 math_op_host_ut 300 用例全量通过,无回归 - 静态复扫:范围内 E*9**** 正式上报清零(残留均为 CHECK_RET 返回公共码 / 动态 return 等允许项) - 附:适配 CANN 9.3.0 atvoss 库 tiling key 编码变化,更新 reduce_max / reduce_mean_with_count 测试的 9 处 expectedTilingKey (官方 master 在 9.3.0 下同样失败,非本 PR 引入) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6606 | 7 天前 | |
docs(reduce): 修改 MeanV2/MaxV2/AminmaxAll 接口约束 Co-authored-by: zhouyuanhang30083383<zhouyuanhang4@h-partners.com> # message auto-generated for no-merge-commit merge: !6949 merge docs/reduce-contract-clarify into master docs(reduce): 修改 MeanV2/MaxV2/AminmaxAll 接口约束 Created-by: m0_55003149 Commit-by: zhouyuanhang30083383 Merged-by: cann-robot Description: ## 描述 aclnnMeanV2:删除无法触发的 format 161002 子项,并说明当前实现不校验 aclFormat、按 ND 语义处理;调用方应使用 ND,非 ND 物理布局不受支持。 aclnnMaxV2:补充 out shape 与 dims/keepDims/noopWithEmptyDims 推导不一致时返回 161002。 aclnnAminmaxAll:补充 minOut/maxOut 的 shape 约束,以及出参元素数与归约结果不一致时返回 161002。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4260 https://gitcode.com/cann/ops-math/issues/4262 https://gitcode.com/cann/ops-math/issues/4287 ## 测试 ## 文档更新 更新了: math/reduce_max/docs/aclnnMaxV2.md math/reduce_max/docs/aclnnMaxV2_en.md math/reduce_mean/docs/aclnnMeanV2.md math/reduce_mean/docs/aclnnMeanV2_en.md math/reduce_min/docs/aclnnAminmaxAll.md math/reduce_min/docs/aclnnAminmaxAll_en.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6949 | 1 天前 | |
fix(reduce_nansum): 0维标量输入按NaN->0语义处理,与向量路径一致(#3983) Co-authored-by: bjx<bjx@localhost> # message auto-generated for no-merge-commit merge: !6771 merge fix/reduce-nansum-scalar-nan into master fix(reduce_nansum): 0维标量输入按NaN->0语义处理,与向量路径一致(#3983) Created-by: doufloat Commit-by: bjx Merged-by: cann-robot Description: ## 描述 **问题** aclnnReduceNansum 对接口文档承诺"将 tensor 中 NaN 处理为 0 后求和"且 self 支持 0-8 维,但 rank-0 标量输入走了 L0 提前返回分支,NaN 被原样穿透: - 输入 FLOAT32 标量 NaN(shape 为 {})、dim=[0] 时,输出仍为 NaN; - 对照单元素向量 [1](rank=1)相同 NaN 输入,内核 CopyIn 的 Compare+Select 预处理生效,输出为 0。 同一算子标量分支与向量分支统计语义不一致,违反资料的无条件 NaN→0 承诺。 **根因** math/reduce_nansum/op_api/reduce_nansum.cpp 的 ReduceNansum 对 GetViewShape().GetDimNum() == 0 直接 return self,跳过了内核路径中内嵌的 NaN→0 预处理(reduce_nansum_apt.cpp 注释自述的 Compare(x,x,EQ)+Select 流程)。 **方案** 标量分支保留"不调用算子"的原有结构,浮点类型(FLOAT/FLOAT16/BF16,即 L0 实际承载的类型)先经 l0op::NanToNum(self, nan=0, posinf=+inf, neginf=-inf) 将 NaN 替换为 0(±inf 保持语义不变)再返回;整型标量无 NaN 概念,返回原值不变。顺带清除不应入库的 [DIRECT DEBUG] printf 调试残留。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3983 ## 测试 - 环境:Ascend 910B2,CANN 9.2.0。 - 端到端真机验证(符号覆盖法):将 PR 的 reduce_nansum.cpp 与基线版分别单独编译为共享库,以 LD_PRELOAD 仅覆盖 l0op::ReduceNansum 符号(规避与内置库的全量重复注册)后实跑 issue 复现程序: - 基线覆盖:FLOAT32 标量 NaN → 输出 NaN(缺陷复现),[1] 向量 NaN → 0; - 修复覆盖:**FLOAT32 标量 NaN → 输出 0**,[1] 向量 NaN → 0(原行为保持),标量 5.0 → 5.0(非 NaN 值不受影响)。 - 单测:math_op_api_ut(--ops=reduce_nansum -u --opapi --soc=ascend910b)**23/23 通过**,含判别用例 ascend910B2_case_test_scalar_nan_path:浮点标量(FLOAT/FLOAT16/BF16)断言 L0 不再原样返回输入 tensor,整型标量断言仍返回原值。回归有效性双向验证:将修复代码回退到基线后,该用例如预期失败。 - 编译验证:分支当前状态 bash build.sh --ops=reduce_nansum --soc=ascend910b -j16 全量构建通过(Build binary success)。 - pre-commit:全部通过(trailing-whitespace、end-of-file、clang-format、codespell、OAT 合规检查)。 ## 文档更新 不涉及。资料已承诺 NaN→0 与零维支持,本次使实现与资料一致。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他(请说明) See merge request: cann/ops-math!6771 | 5 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
feat: ReduceStdV2Update 和 ReduceStdWithMean 适配 ascend960 Co-authored-by: wkyan<yanwenkai@huawei.com> # message auto-generated for no-merge-commit merge: !6555 merge 1020_reduce into master feat: ReduceStdV2Update 和 ReduceStdWithMean 适配 ascend960 Created-by: wkyan Commit-by: wkyan Merged-by: cann-robot Description: ## 描述 为 ReduceStdV2Update 和 ReduceStdWithMean 增加 ascend960dt 平台支持,并补充对应的 RegBase 路径与系统 workspace 配置。 ### 改动原因 两个算子原有构建配置和 AICore 注册仅包含 ascend950、ascend350,无法按当前算子实现配置在 ascend960dt 平台使用。 ### 改动方法 1. math/reduce_std_v2_update/CMakeLists.txt:将 ascend960dt 加入 SUPPORT_COMPUTE_UNIT,并复用 arch35 tiling 目录。 2. math/reduce_std_v2_update/op_host/reduce_std_v2_update_def.cpp:为 ReduceStdV2Update 增加 ascend960dt AICore 配置。 3. math/reduce_std_v2_update/op_kernel/arch35/reduce_std_v2_update.h:将 SetLoopModePara / ResetLoopModePara 的可用架构扩展为 __NPU_ARCH__ == 3510 || __NPU_ARCH__ == 9201,并同步更新不支持平台的编译错误信息。 4. math/reduce_std_with_mean/CMakeLists.txt:将 ascend960dt 加入 SUPPORT_COMPUTE_UNIT,并复用 arch35 tiling 目录。 5. math/reduce_std_with_mean/op_host/reduce_std_with_mean_def.cpp:为 ReduceStdWithMean 增加 ascend960dt AICore 配置。 6. math/reduce_std_with_mean/op_api/reduce_std_with_mean.cpp:引入 op_api/aclnn_check.h,使用 IsRegBase() 判断 AICore 路径,并更新 950/960DT 平台说明。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4014 ## 测试 本次 PR diff 未包含测试文件或可核验的测试结果;变更涉及 ascend960dt 编译平台注册、LoopMode 架构条件及系统 workspace 配置,需在对应平台完成编译、精度和算子泛化验证。 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6555 | 5 天前 | |
fix(reduce): 修改 StdMeanCorrection 错误码并归一 ReduceSum 负轴 Co-authored-by: zhouyuanhang30083383<zhouyuanhang4@h-partners.com> # message auto-generated for no-merge-commit merge: !6953 merge fix/reduce-std-shape-and-reduce-sum-neg-dim into master fix(reduce): 修改 StdMeanCorrection 错误码并归一 ReduceSum 负轴 Created-by: m0_55003149 Commit-by: zhouyuanhang30083383 Merged-by: cann-robot Description: ## 描述 aclnnStdMeanCorrection:保持原有 shape 推导/校验逻辑不变,仅将 meanOut 拷贝失败时的返回码从 561103(ACLNN_ERR_INNER_NULLPTR)改为 161002 aclnnReduceSum:在 BOOL→INT64 的 promoteType 判断中先归一负轴,再乘归约维度,避免负索引越界导致误选 FLOAT。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4298 https://gitcode.com/cann/ops-math/issues/4249 ## 测试 ## 文档更新 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6953 | 1 天前 | |
fix(reduce): 修改 StdMeanCorrection 错误码并归一 ReduceSum 负轴 Co-authored-by: zhouyuanhang30083383<zhouyuanhang4@h-partners.com> # message auto-generated for no-merge-commit merge: !6953 merge fix/reduce-std-shape-and-reduce-sum-neg-dim into master fix(reduce): 修改 StdMeanCorrection 错误码并归一 ReduceSum 负轴 Created-by: m0_55003149 Commit-by: zhouyuanhang30083383 Merged-by: cann-robot Description: ## 描述 aclnnStdMeanCorrection:保持原有 shape 推导/校验逻辑不变,仅将 meanOut 拷贝失败时的返回码从 561103(ACLNN_ERR_INNER_NULLPTR)改为 161002 aclnnReduceSum:在 BOOL→INT64 的 promoteType 判断中先归一负轴,再乘归约维度,避免负索引越界导致误选 FLOAT。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4298 https://gitcode.com/cann/ops-math/issues/4249 ## 测试 ## 文档更新 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6953 | 1 天前 | |
修复issue的问题 Co-authored-by: sakuraqqz<furao15@h-partners.com> # message auto-generated for no-merge-commit merge: !6812 merge master into master 修复issue的问题 Created-by: sakuraqqz Commit-by: sakuraqqz Merged-by: cann-robot Description: ## 描述 本 PR 修复 6 个算子问题,均为 Bug 修复(含 1 项文档修正): 1. **is_inf 尾块越界读写(#3925)**:数据长度不足 32B 对齐时,尾块原先按 32B 整倍搬运导致 GM 越界读/写。修复为整块用 DataCopy、尾块用 DataCopyPad 按真实字节搬运,ComputePerCore 尾块输出按真实计数写出。math/is_inf/op_kernel/is_inf.h。 2. **addcmul value=NaN 走错快路径(#3894)**:IsEqualToOne 对 NaN 判等为 true(所有比较均 false 取反),导致 value=NaN 时误走 AxpyV2 快路径、缺失 value 项。修复为显式排除 NaN。math/addcmul/op_api/aclnn_addcmul.cpp。 3. **cdist 非法 shape 返回码(#3929)**:out 形状与推导不匹配时返回内部空指针错误 561103,修复为在 GetWorkspaceSize 增加 out 期望形状校验,返回标准参数错误 161002。math/cdist/op_api/aclnn_cdist.cpp。 4. **div 非法参数返回码(#3962)**:日志错误码与返回码不一致,统一返回 161002。math/div/op_api/aclnn_div.cpp。 5. **VarMean 文档矛盾(#4182)**:中英文档 self 维度列由 1-8 修正为 0-8(与「shape 支持 0 到 8 维」及 meanOut/varOut 的 0-8 保持一致);参数表 varOut/meanOut 行序与原型(varOut 为第 5 参、meanOut 为第 6 参)对齐。math/reduce_var/docs/。 6. **LinSpace legacy tiling 丢失 INT64 num 精度(#3347):** LinSpaceGetConstValue 的 DT_INT64 分支先将 int64_t 经 float 转换,num=16777219 被舍入为 16777220,与 InferShape 输出维度不一致;修复为直接读取 int64 数值、经 double 无损保留。math/lin_space/op_host/lin_space_tiling.cpp。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3925 - https://gitcode.com/cann/ops-math/issues/3894 - https://gitcode.com/cann/ops-math/issues/3929 - https://gitcode.com/cann/ops-math/issues/3962 - https://gitcode.com/cann/ops-math/issues/4182 - https://gitcode.com/cann/ops-math/issues/3347 ## 测试 910B3 / CANN 9.3.0 上板验证(2026-10-29): - **is_inf**:尾块用例长度 17/25/31/33/40(非 32B 对齐),尾部放置 inf/-inf/nan,输入输出 buffer 后 64B 金丝雀检测越界,5 组全部 PASS 且无越界读写。 - **addcmul**:value=NaN → out=NaN(修复前误得 7.0);value=1.0/2.0 回归正常。 - **cdist**:out 形状不匹配返回 161002,合法形状返回 0。 - **div**:shape 不匹配/非法 mode 均返回 161002。 - **VarMean**:issue 复现脚本实测命中 0 处(纯文档改动,无需上板)。 - **LinSpace**:tiling data 中 num=16777219 保留、InferShape 输出 [16777219](num=17 对照),Host UT 6/6 PASS,基线回归证实旧实现舍入为 16777220。 ## 文档更新 - math/reduce_var/docs/aclnnVarMean.md、math/reduce_var/docs/aclnnVarMean_en.md(维度范围与参数顺序修正)。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6812 | 3 天前 | |
fix: E*9****内部错误码整改为正式语义码并保留内部异常EZ9999上报 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !6606 merge fix_errorNum_1021 into master fix: E*9****内部错误码整改为正式语义码并保留内部异常EZ9999上报 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次 PR 整改以下 43 个算子中非法使用的内部错误码(E*9****),使其符合错误码使用规范: - cholesky / complex / cross / cummax / cummin / cumprod / get_shape / histogram_v2 / is_finite / is_inf - kl_div_v2 / lin_space / log_add_exp / non_finite_check / pdist / polar / pows / radix_top_k - reduce_log_sum / reduce_log_sum_exp / reduce_max / reduce_mean / reduce_mean_with_count / reduce_min - reduce_nansum / reduce_std_with_mean / rfft1_d / search_sorted / signbit / sin / sinc / sinkhorn / topk - affine_grid / amp_update_scale / angle_v2 / arg_max_v2 / arg_min / arg_min_with_value / atan2 / bessel_i1e / cdist_grad - conversion/tril 改动原因:上述算子 op_host / op_api / op_graph 源码中存在裸 OP_LOGE (EZ9999 兜底上报)、 OP_CHECK_NULL_WITH_CONTEXT / OP_CHECK_NOTNULL (EZ9999 上报)等不符合错误码使用规范的上报路径,需按失败原因分类整改为正式语义码或内部透传。 采取的方法: - op_host 参数/输入校验类(shape / dtype / format / attr 值域等)裸 OP_LOGE → 正式语义宏(EZ0004 / EZ0008–EZ0038) - op_host 内部 API 失败类(平台能力查询、tiling API 失败等)→ OP_LOGE_WITHOUT_REPORT 透传,去掉 EZ9999 上报、保留日志 - OP_CHECK_NULL_WITH_CONTEXT (EZ9999)→ 显式空指针检查 + 正式码宏 - op_api OP_CHECK_NOTNULL (EZ9999)→ 显式检查 + OP_LOGE_WITHOUT_REPORT(ACLNN_ERR_INNER_NULLPTR) + 返回公共错误码 - op_api OP_LOGE(ACLNN_ERR_INNER_* / RUNTIME_ERROR) (561xxx / 361xxx)→ OP_LOGE_WITHOUT_REPORT ;正式参数码 ACLNN_ERR_PARAM_* (161xxx)保留 - 删除 CREATE_EXECUTOR 之后不可达的空指针死检查( CHECK_RET(executor.get()!=nullptr, ACLNN_ERR_INNER_CREATE_EXECUTOR) ,40 处) - op_graph(histogram_v2 / reduce_mean 融合 pass)E9 上报 → 正式码或透传 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3977 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 43 算子 op_host / op_api / op_graph 全量编译通过,exit 0(910b + 950/arch35) - 本地增加ut测试130 用例全量通过(910b 83 + 950 47),日志级验证触发 78 次正式 EZ 错误码上报,覆盖 14 个正式错误码 - 原版 math_op_host_ut 300 用例全量通过,无回归 - 静态复扫:范围内 E*9**** 正式上报清零(残留均为 CHECK_RET 返回公共码 / 动态 return 等允许项) - 附:适配 CANN 9.3.0 atvoss 库 tiling key 编码变化,更新 reduce_max / reduce_mean_with_count 测试的 9 处 expectedTilingKey (官方 master 在 9.3.0 下同样失败,非本 PR 引入) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6606 | 7 天前 | |
RightShift示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4743 merge raii-right_shift into master RightShift示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/right_shift/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 验证文件:math/right_shift/examples/test_aclnn_right_shift.cpp。 C++11 编译、链接通过。 输入为 [10,20,30,40],右移位数为 [1,2,3,4],期望输出为 [5,5,3,2],实际输出与期望一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4743 | 2 天前 | |
feat(infershape): 补齐 12 个算子 op_graph InferDataType 注册 Co-authored-by: yangjinhan<yangjinhan@huawei.com> # message auto-generated for no-merge-commit merge: !6644 merge feat/register-infer-datatype into master feat(infershape): 补齐 12 个算子 op_graph InferDataType 注册 Created-by: Ruyue1550 Commit-by: yangjinhan Merged-by: cann-robot Description: ## 描述 按 RT1.0 到 RT2.0 推导框架迁移方案第 1 步(补齐缺失的 InferDataType 注册,零行为变更)要求,为 12 个缺失 InferDataType 注册的算子新增 op_graph/*_graph_infer.cpp 注册文件。本次变更只新增文件、不修改任何存量代码,共 12 个文件、240 行。 ### 改动点 | # | 算子 | 新增文件 | 注册方式 | |---|------|---------|---------| | 1 | Pad | conversion/pad/op_graph/pad_graph_infer.cpp | InferDataTypeOutputSameAsInput | | 2 | PadV2 | conversion/pad_v2/op_graph/pad_v2_graph_infer.cpp | 同上 | | 3 | PadV3 | conversion/pad_v3/op_graph/pad_v3_graph_infer.cpp | 同上 | | 4 | PadV3Grad | conversion/pad_v3_grad/op_graph/pad_v3_grad_graph_infer.cpp | 同上 | | 5 | MirrorPad | conversion/mirror_pad/op_graph/mirror_pad_graph_infer.cpp | 同上 | | 6 | BroadcastTo | conversion/broadcast_to/op_graph/broadcast_to_graph_infer.cpp | 同上 | | 7 | Transpose | conversion/transpose/op_graph/transpose_graph_infer.cpp | 同上 | | 8 | Rint | math/rint/op_graph/rint_graph_infer.cpp | 同上 | | 9 | TruncateDiv | math/truncate_div/op_graph/truncate_div_graph_infer.cpp | 同上 | | 10 | Expand | math/expand/op_graph/expand_graph_infer.cpp | 同上 | | 11 | GetShape | math/get_shape/op_graph/get_shape_graph_infer.cpp | 专门推导,输出固定 INT32 | | 12 | HistogramFixedWidth | math/histogram_fixed_width/op_graph/histogram_fixed_width_graph_infer.cpp | 专门推导,输出固定 INT32 | ### 改动原因 1. 背景:RT2.0 V2 路径的 dtype 推导在未注册 InferDataType 时依赖 IR(proto/def 的 TensorType)符号映射兜底。以显式注册替代隐式兜底,使推导逻辑代码自明、不依赖 IR 声明的隐式行为,并为后续推导框架切换就位 op_graph 注册设施。 2. dtype 语义逐算子以 RT1.0 SetDataType 为基线核对(迁移原则:非算子语义变更): - 上述 #1-#10 共 10 个算子的 canndev RT1.0 实现均为 SetDataType(input_dtype)(取输入 x 的类型,const/非 const/未知 rank 各分支一致),输出 dtype 跟随输入,故注册仓内公共推导函数 InferDataTypeOutputSameAsInput,与本仓已有 Tile/Erfc/TruncateMod 注册同构; - GetShape、HistogramFixedWidth 的 RT1.0 实现硬编码 SetDataType(DT_INT32),输出为形状值/直方图计数,与输入 dtype 无关,故注册输出固定 INT32 的专门推导,与两者 proto/def 中 OUTPUT(y, TensorType({DT_INT32})) 声明一致。 3. 零行为变更:注册结果与 IR 符号推导兜底结果一致,不改变任何现网推导行为。 4. 构建零改动:op_graph/*.cpp 由 CMake GLOB_RECURSE 自动收集(cmake/func.cmake),无需修改 CMakeLists。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4099 ## 测试 - 本地无 CANN 构建环境,未执行编译与 UT,请通过门禁验证(评论 compile 触发 CI) - 已完成静态核对:13 个注册的 dtype 语义与 canndev RT1.0 SetDataType 逐分支一致、与各算子 proto/def 输出声明一致、与本仓已有同款注册(tile/erfc/truncate_mod/circular_pad)代码风格一致 - UT dtype 断言用例(断言注册结果=兜底结果)可随检视意见补充 ## 文档更新 无需更新文档(纯推导注册代码,无接口与行为变化) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6644 | 6 天前 | |
Round示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4744 merge raii-round into master Round示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/round/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 验证文件: - math/round/examples/test_aclnn_round.cpp - math/round/examples/test_aclnn_round_decimals.cpp C++11 编译、链接通过。 test_aclnn_round.cpp:输入为 [1.1,2.8,3.5],期望输出为 [1,3,4],实际输出与期望一致。 test_aclnn_round_decimals.cpp:输入为 [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8],decimals 为 0,期望输出为 [0,0,0,0,0,1,1,1],实际输出与期望一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4744 | 2 天前 | |
Rsqrt示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4745 merge raii-rsqrt into master Rsqrt示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/rsqrt/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 验证文件:math/rsqrt/examples/test_aclnn_rsqrt.cpp。 C++11 编译、链接通过。 输入为 [1,2,3,4],期望输出约为 [1,0.707107,0.577350,0.5],实际输出与期望一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4745 | 2 天前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 13 天前 | |
style(scale): isolate formatting and license header cleanup Co-authored-by: Bright0313<liwenbo84@huawei.com> # message auto-generated for no-merge-commit merge: !6941 merge codex/scale-format-only into master style(scale): isolate formatting and license header cleanup Created-by: Bright0313 Commit-by: Bright0313 Merged-by: cann-robot Description: 本 PR 仅整理 Scale 的格式、文件末换行、注释和许可头,共15个文件;不修改算子计算、参数校验、接口签名或测试断言。 范围: - aclnn_scale.h、scale.cpp、scale.h及2个kernel/tiling结构头的排版。 - 7个测试CMake文件的注释和许可头。 - 2个已有UT源文件的排版,以及ATK JSON的文件末换行。 验证: - 所有C++文件去除注释/空白后令牌完全一致;CMake去除注释/空白后命令完全一致;JSON解析对象完全一致,共15/15。 - 相对origin/master的全部变更文件pre-commit通过;另外以单次调用检查全部15个文件,OAT全部通过;git diff --cached --check通过。 - 纯规范变更没有重新宣称设备精度或性能结果。 功能、回归测试及README/API契约修改单列在 https://gitcode.com/cann/ops-math/merge_requests/6933 ,两个PR的文件集合互不重叠。原实现目录和构建配置绑定的入口改名留在功能PR中。 See merge request: cann/ops-math!6941 | 1 天前 | |
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 6 天前 | |
fix(segsum): arch22末条带输入搬运长度改用行向钳位值,修复GM越界读 Co-authored-by: wanshilin<wanshilin@h-partners.com> # message auto-generated for no-merge-commit merge: !6936 merge fix_segsum into master fix(segsum): arch22末条带输入搬运长度改用行向钳位值,修复GM越界读 Created-by: wanshilin Commit-by: wanshilin Merged-by: cann-robot Description: ## 描述 MODE 0路径(tiling key 1000, tailDimSize > slideSize)中,SegsumND::Compute的CopyInBatch搬运长度误用列向钳位值calCount,而起点inOffset按行向(batchIdx * tailDimSize + rowIdx)计算,二者不同源。当T % slideSize != 0时末行条带读窗口越过x张量行末,造成GM越界读;多读数据不被消费,数值结果不受影响。 修复:输入搬运长度改为与inOffset同源的行向钳位值loopCount(即Min(slideSize, tailDimSize - rowIdx));calCount仍保留列条纹宽度语义供processY/CopyOutBatch消费,输出侧不受影响。 ## 关联的Issue fix #3845 ## 测试 1. 910B3 UT全通过:op_host 1、op_api 14、kernel 3 2. example通过:test_aclnn_segsum execute samples success 3. msSanitizer memcheck前后对比(fp32 T=13000, 2batch, ACL_MEM_MALLOC_NORMAL_ONLY):修复前illegal read of size 45952(与issue报告一致),修复后No error detected 4. 数值抽检(171点)修复前后一致,修复不引入数值变化 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6936 | 2 天前 | |
Select示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4748 merge raii-select into master Select示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/select/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 验证文件:math/select/examples/test_aclnn_s_where.cpp。 C++11 编译、链接、clang-format 18.1.8 和 OAT 检查通过。 self 为 [0,0,0,0,0,0,0,7],other 为 [0,1,2,3,4,5,6,7],condition 为 [false,false,false,false,true,true,true,true],期望输出为 [0,1,2,3,0,0,0,7],实际输出与期望一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4748 | 2 天前 | |
docs(math): 补齐select_v2算子README资料入口 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !6778 merge docs/select-v2-readme into master docs(math): 补齐select_v2算子README资料入口 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 **问题**(#3788,拆分自 #3499): math/select_v2 目录含交付件(op_host 算子定义与 tiling、AICore/AI CPU 双 kernel、op_graph 原型、图模式样例、tests),但目录内无 README,未提供算子资料入口;docs/zh/op_list.md 已收录该算子(AI Core/AI CPU),链接直指目录却无资料可读。 **方案**:按仓内标准算子 README 模板新增 math/select_v2/README.md,五个章节: - **产品支持情况**:按 aclnnSWhere 接口文档口径(950PR&950DT、A3、A2、Atlas推理、Atlas训练支持,200I/500 A2 不支持)。aclnnSWhere 接口的计算由 SelectV2 算子承载(math/select/op_api/aclnn_s_where.cpp 经 l0op::SelectV2 派发至本目录交付的 AICore/AI CPU 实现)。 - **功能说明**:根据条件张量condition选取x1或x2中对应元素并返回(支持广播),兼容 TensorFlow SelectV2(op_graph/select_v2_proto.h 原型声明);计算公式与数值示例按 op_host/select_v2_def.cpp 参数口径。 - **参数说明**:condition/x1/x2/y 四参数表,参数名、参数顺序与数据类型均按 op_host/select_v2_def.cpp(AI Core)注册口径。 - **约束说明**:无。广播关系按仓内先例(mul/sub/maximum 等约束均为"无"、gcd README)在参数表描述列承载。 - **调用说明**:aclnn 与图模式两行。select_v2 支持 aclnn 调用,接口为 aclnnSWhere,由 select 目录交付(历史原因未随算子实现目录放置):样例链 ../select/examples/test_aclnn_s_where.cpp、说明链 ../select/docs/aclnnSWhere.md;图模式样例链 examples/test_geir_select_v2.cpp、说明链 op_graph/select_v2_proto.h。 **口径说明**: 1. 产品支持表照 aclnnSWhere 接口文档口径填写(安装 CANN 包后用户视角,符合 wiki《算子README文档模板》"不以源码开源的平台为准"标准);接口文档产品能力与算子能力的对应依据为 aclnn_s_where.cpp 的 l0op::SelectV2 唯一派发链。 2. 参数名与数据类型均按 op_host/select_v2_def.cpp(AI Core)注册口径填写。本算子 op_graph 原型与 AI CPU 侧注册名为 condition/then/else/result,与 AI Core def 的 condition/x1/x2/y 为同一位置参数(输入顺序一致,输出与第二个输入同型);AI CPU 实现与 aclnn 接口层支持类型更广(含 BOOL、UINT16、UINT32、UINT64、INT16、DOUBLE、COMPLEX64、COMPLEX128),如需在资料中一并呈现,请评审指示。 **索引同步**(2026-10-30 追加第二个提交,响应评审侧「请检查op_list.md内容是否要同步刷新」):docs/zh/op_list.md 中 select_v2 行链接原直指算子目录(无 README.md 后缀),同步更新为指向本 PR 新增的 README 入口,与索引内其余算子行链接口径一致;该行说明列与实现矩阵(op_kernel/op_host/op_api/op_graph、AI Core/AI CPU)经核对无需变更。同批 gcd(!6753)、ger(!6779)两 PR 经核查 op_list.md 均无需变更。同一 PR 交付索引链接与链接目标,合入即同时生效。 **aclnn 调用归属修正**(2026-10-30 第三个提交):math/select/op_api/ 四文件(aclnn_s_where.cpp/.h、select.cpp/.h)注册与派发的均为 SelectV2 算子(select.cpp OP_TYPE_REGISTER(SelectV2)、select.h 声明 l0op::SelectV2、aclnn_s_where.cpp 经 l0op::SelectV2 派发),select 算子自身无 aclnn 接口交付。op_list.md 按算子承载归属修正 aclnn 调用(op_api)列:select_v2 行 ×→√(aclnnSWhere 承载算子即 SelectV2,与 README 调用说明一致),select 行 √→×(其 op_api 目录交付均属 SelectV2)。该口径与接口文件物理位置(select 目录,历史原因)解耦。 ## 关联的Issue Closes #3788 ## 测试 纯文档变更(新增 README + 索引链接同步),无代码改动: - pre-commit 全部 hook 通过(trailing-whitespace / end-of-file-fixer / codespell / OAT 合规检查) - 相对链接核验:./examples/test_geir_select_v2.cpp、./op_graph/select_v2_proto.h、../select/examples/test_aclnn_s_where.cpp、../select/docs/aclnnSWhere.md 均存在于 master - 逐句核对事实源:功能与约束对应 op_graph/select_v2_proto.h;参数对应 op_host/select_v2_def.cpp(AI Core)注册;产品支持表对应 math/select/docs/aclnnSWhere.md;aclnn 调用链对应 math/select/op_api/aclnn_s_where.cpp(l0op::SelectV2 派发) - 索引链接同步提交:pre-commit 全部 hook 通过;全表链接口径核查——有 README 的算子行均链接至 <op>/README.md,本 PR 合入后全表仅剩 affine_grid、logspace、precision_compare 三个无 README 算子仍直指目录 - aclnn 调用归属:math/select/op_api/select.cpp OP_TYPE_REGISTER(SelectV2)、select.h l0op::SelectV2 声明、aclnn_s_where.cpp l0op::SelectV2 派发链逐项核验,select 算子无自有 aclnn 接口交付;矩阵修正提交 pre-commit 全部 hook 通过 ## 文档更新 - math/select_v2/README.md(新增,+47) - docs/zh/op_list.md(select_v2 行索引链接同步 +1/−1;select/select_v2 行 aclnn 调用归属修正 +2/−2) ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6778 | 2 天前 | |
feat: 迁移gelocal控制流与基础算子交付件(含While/If/Case/For/PartitionedCall、TF控制流插件、reshape),实现RT2.0交付 Co-authored-by: Dazhou_Cao<caodazhou@huawei.com> # message auto-generated for no-merge-commit merge: !6621 merge migrate-gelocal-delivery into master feat: 迁移gelocal控制流与基础算子交付件(含While/If/Case/For/PartitionedCall、TF控制流插件、reshape),实现RT2.0交付 Created-by: Dazhou_Cao Commit-by: Dazhou_Cao Merged-by: cann-robot Description: ## 描述 汇总迁移 gelocal(RT2.0)算子交付件: - **基础/GE 控制流算子**:size、rank、LoopCond、NextIteration、RefIdentity、SwitchByIndex、aipp_data、End、squeezev2、unsqueezev2,以及 enter/exit/merge/switch/switch_n/ref_* 等 - **子图控制流算子**:If、Case、For、PartitionedCall、While(原型注册 + RT2.0 推导注册 + UT + README,If/Case/For/PartitionedCall 含 GeIR 示例;均归入 ge 分类) - **TF 控制流插件**:If/_If/StatelessIf、While/_While/StatelessWhile、Case/StatelessCase、PartitionedCall/StatefulPartitionedCall 变体合并映射 - **reshape**:infershape 对齐 RT1.0 语义、allowzero/shape 属性注册、信息库 - **文档**:README 产品支持表统一(全部√)、gather_shapes 归入 conversion、op_list 同步登记 ## 测试 - bash build.sh --ophost --opgraph -j8 构建通过(含各算子 REG_OP 注册校验) - 宿主侧全量 UT:2594/2594 PASSED(384 test suites) ## 说明 - 内容汇总自此前迁移 PR(6474 / 6522 / 6208)的交付件,本 PR 为其合并后的统一交付 See merge request: cann/ops-math!6621 | 7 天前 | |
feat: 迁移gelocal控制流与基础算子交付件(含While/If/Case/For/PartitionedCall、TF控制流插件、reshape),实现RT2.0交付 Co-authored-by: Dazhou_Cao<caodazhou@huawei.com> # message auto-generated for no-merge-commit merge: !6621 merge migrate-gelocal-delivery into master feat: 迁移gelocal控制流与基础算子交付件(含While/If/Case/For/PartitionedCall、TF控制流插件、reshape),实现RT2.0交付 Created-by: Dazhou_Cao Commit-by: Dazhou_Cao Merged-by: cann-robot Description: ## 描述 汇总迁移 gelocal(RT2.0)算子交付件: - **基础/GE 控制流算子**:size、rank、LoopCond、NextIteration、RefIdentity、SwitchByIndex、aipp_data、End、squeezev2、unsqueezev2,以及 enter/exit/merge/switch/switch_n/ref_* 等 - **子图控制流算子**:If、Case、For、PartitionedCall、While(原型注册 + RT2.0 推导注册 + UT + README,If/Case/For/PartitionedCall 含 GeIR 示例;均归入 ge 分类) - **TF 控制流插件**:If/_If/StatelessIf、While/_While/StatelessWhile、Case/StatelessCase、PartitionedCall/StatefulPartitionedCall 变体合并映射 - **reshape**:infershape 对齐 RT1.0 语义、allowzero/shape 属性注册、信息库 - **文档**:README 产品支持表统一(全部√)、gather_shapes 归入 conversion、op_list 同步登记 ## 测试 - bash build.sh --ophost --opgraph -j8 构建通过(含各算子 REG_OP 注册校验) - 宿主侧全量 UT:2594/2594 PASSED(384 test suites) ## 说明 - 内容汇总自此前迁移 PR(6474 / 6522 / 6208)的交付件,本 PR 为其合并后的统一交付 See merge request: cann/ops-math!6621 | 7 天前 | |
Sign示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4749 merge raii-sign into master Sign示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/sign/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 验证文件:math/sign/examples/test_aclnn_sign.cpp。 C++11 编译、链接通过。 输入为 [1,2,3,4,5,6,7,8],期望输出为 [1,1,1,1,1,1,1,1],实际输出与期望一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4749 | 2 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 6 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 6 天前 | ||
| 22 天前 | ||
| 4 天前 | ||
| 20 天前 | ||
| 23 天前 | ||
| 4 天前 | ||
| 2 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 11 天前 | ||
| 6 天前 | ||
| 3 天前 | ||
| 6 天前 | ||
| 20 天前 | ||
| 17 天前 | ||
| 3 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 1 个月前 | ||
| 6 天前 | ||
| 4 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 9 天前 | ||
| 6 天前 | ||
| 25 天前 | ||
| 14 天前 | ||
| 14 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 4 天前 | ||
| 2 天前 | ||
| 9 天前 | ||
| 8 天前 | ||
| 19 天前 | ||
| 1 天前 | ||
| 5 天前 | ||
| 9 天前 | ||
| 4 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 5 天前 | ||
| 3 天前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 3 天前 | ||
| 5 天前 | ||
| 6 天前 | ||
| 5 天前 | ||
| 12 天前 | ||
| 1 个月前 | ||
| 6 天前 | ||
| 3 天前 | ||
| 1 天前 | ||
| 1 个月前 | ||
| 6 天前 | ||
| 3 天前 | ||
| 23 天前 | ||
| 4 天前 | ||
| 6 天前 | ||
| 3 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 11 天前 | ||
| 2 天前 | ||
| 5 天前 | ||
| 23 天前 | ||
| 2 天前 | ||
| 13 天前 | ||
| 6 天前 | ||
| 3 天前 | ||
| 9 天前 | ||
| 4 天前 | ||
| 5 天前 | ||
| 3 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 4 天前 | ||
| 1 天前 | ||
| 4 天前 | ||
| 23 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 4 天前 | ||
| 6 天前 | ||
| 3 天前 | ||
| 18 天前 | ||
| 20 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 10 天前 | ||
| 15 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 1 个月前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 5 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 1 个月前 | ||
| 1 天前 | ||
| 5 天前 | ||
| 13 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 3 天前 | ||
| 14 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 2 天前 | ||
| 5 天前 | ||
| 5 天前 | ||
| 6 天前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 6 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 1 个月前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 4 天前 | ||
| 6 天前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 25 天前 | ||
| 11 天前 | ||
| 5 天前 | ||
| 6 天前 | ||
| 5 天前 | ||
| 6 天前 | ||
| 7 天前 | ||
| 4 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 4 天前 | ||
| 6 天前 | ||
| 15 天前 | ||
| 3 天前 | ||
| 13 天前 | ||
| 7 天前 | ||
| 6 天前 | ||
| 7 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 6 天前 | ||
| 7 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 7 天前 | ||
| 5 天前 | ||
| 9 天前 | ||
| 6 天前 | ||
| 12 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 1 天前 | ||
| 1 天前 | ||
| 7 天前 | ||
| 1 天前 | ||
| 5 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 5 天前 | ||
| 1 天前 | ||
| 1 天前 | ||
| 3 天前 | ||
| 7 天前 | ||
| 2 天前 | ||
| 6 天前 | ||
| 2 天前 | ||
| 2 天前 | ||
| 13 天前 | ||
| 1 天前 | ||
| 6 天前 | ||
| 2 天前 | ||
| 2 天前 | ||
| 2 天前 | ||
| 7 天前 | ||
| 7 天前 | ||
| 2 天前 |