| Files | Last commit | Last update |
|---|---|---|
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 | 16 days ago | |
适配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 | 14 days ago | |
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 | 14 days ago | |
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 | 16 days ago | |
适配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 | 1 month ago | |
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 | 15 days ago | |
[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 | 1 month ago | |
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 | 1 month ago | |
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 | 15 days ago | |
fix(e9): add_lora算子泛化内部错误码整改为注册错误码 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !6809 merge fix/e9-errcode-math into master fix(e9): add_lora算子泛化内部错误码整改为注册错误码 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 add_lora 算子中已登记的泛化内部错误码调用落入 E*9***(EZ9999/E89999 等),上报为自由文本,无法归类定位。 整改方法(对应 #4215 设计方案): - 保留原有判定条件、返回状态与资源清理逻辑,仅替换错误上报方式; - 空指针/参数类失败携带注册参数名映射参数错误码; - shape/取值约束按语义映射正式错误码并携带实际值; - 内部 Tiling 失败映射 EZ1008/EZ1014,携带 opName/reason。 本 PR 覆盖 2 个生产文件、49 个登记点,对应 #4215 全部整改范围,单 PR 交付。 ## 关联的Issue - Closes #4215 ## 测试 - 编译通过 - 以 CI 流水线为准 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!6809 | 15 days ago | |
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 | 14 days ago | |
[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 | 14 days ago | |
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 | 22 days ago | |
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 | 16 days ago | |
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 | 16 days ago | |
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 | 16 days ago | |
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 | 1 month ago | |
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 | 28 days ago | |
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 | 14 days ago | |
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 | 16 days ago | |
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 | 16 days ago | |
产品名变更 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 month ago | |
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 | 16 days ago | |
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 | 15 days ago | |
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 | 16 days ago | |
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 | 16 days ago | |
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 | 16 days ago | |
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 | 20 days ago | |
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 | 16 days ago | |
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 | 1 month ago | |
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 | 25 days ago | |
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 | 25 days ago | |
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 | 16 days ago | |
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 | 16 days ago | |
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 | 15 days ago | |
[CANNBot]质量加固:Atanh Co-authored-by: yourealize<chenzhanxi1@huawei.com> # message auto-generated for no-merge-commit merge: !6703 merge codex/atanh-bias-quality-20261026 into master [CANNBot]质量加固:Atanh Created-by: yourealize Commit-by: yourealize Merged-by: cann-robot Description: ## 描述 加固 Ascend 950 的 Atanh Host/API 校验:工作区输出指针为空、输入输出元数据不匹配或 shape 非法时,返回失败并按具体原因上报错误。同时完善实际输出 dtype 的 Golden 参考和回归用例。 - 校验 workspace/executor 空指针、输出分配失败,以及输入输出 shape、dtype、ND 格式、负维度和元素数溢出;覆盖标量、空张量和动态推导。 - 缺失参数、shape、dtype、format 分别使用 SDK 标准错误宏;内部 Tiling/推导错误使用 EZ1008、EZ1014。移除上层重复报错,每次失败只上报一次;AICORE/AICPU 入队失败保留实际返回码。 - 在算子实际加载的 math/atanh/CMakeLists.txt 为 Host UT 配置 SDK pkg_inc 路径及 error_manager、nnopbase 依赖,解决标准 UT 构建找不到 registry 头文件的问题。 - Golden 使用 Torch 计算,将完整结果转换到实际输出 dtype,并支持原生 TestSpec、普通输出及原地写回。Kernel/GEIR 输出映射只声明 FP16、BF16、FP32,精度标准统一为 cross_check/L0。 - 补齐 Host 单测入口和 ACLNN 参数检查用例,整理 2217 条不依赖手工输入二进制的回归用例,保留用例 ID、输入定义和数值阈值。 改动限定于 math/atanh/,kernel 数值实现及 REG_OP 定义未变。 ## 关联的 issue 无。 ## 测试 - 对完整 PR 改动范围执行仓库原始配置的 pre-commit run --from-ref cb6b7761771cf0cc924f7dbc731f4de7c71c6acc --to-ref 660e2f1ce42ae084e63d8054825fc884b9a48acd,所有适用检查通过;另一次性扫描全部 10 个适用文件,OAT 通过。CSV 按仓库原配置排除。 - CANN 9.2.0 / ascend950 的 Atanh 单算子编译及 .run 打包通过,包含 Host/API 和 FP16/BF16/FP32 kernel。构建和 CPU 检查使用 SDK devlib 驱动接口。 - 按门禁相同入口 bash build.sh -u --ops=atanh --ophost --soc=ascend950 --cann_3rd_lib_path=<deps> -j2 完整编译并执行 Host 单测,**5/5 通过**,验证分类错误码和失败时单次上报;本地 SDK 为 CANN 9.2.0。SDK 上下文检查复用此前 **10/10 通过** 的结果,覆盖 InferShape、Tiling、InferDataType 缺失输入/输出、正常输入及空 dtype 推导上下文。 - 新增 ACLNN 单测复用此前源码语法编译检查结果;本轮只调整排版,C++ token 序列一致,未执行 ACLNN 单测。 - CSV 结构已验证为 2217 个唯一用例 ID,保留行逐字段不变;本轮 CSV 哈希一致。Golden 计算函数未变,float16、bfloat16、float32 的精度标准统一为 cross_check/L0。 - Golden 输出类型 CPU 检查 **9/9 通过**,覆盖三种支持类型的直接调用与输出元数据、Kernel/GEIR 的 FP64 输出拒绝,以及既有 ACLNN DOUBLE 契约。 - 已复现门禁缺少 base/registry/op_impl_space_registry_v2.h 的编译错误;为实际 testcase 目标补齐 SDK include 根目录后,同一构建入口通过。线上 CANN 9.3 新一轮门禁结果待重跑验证。 - git diff --check 通过。 本轮未执行真机 L0 精度回归,也未运行 NPU 全量回归;2217 是随仓测试资产数量,不表示设备回归通过数。CPU 检查不作为设备精度或性能结论。 ## 文档更新 修正公开接口说明中 Atanh 公式缺失的 0.5 系数。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他:测试资产整理 ## AI/Agent 生成声明 - [ ] 纯人工手写 - [x] AI 辅助编写 - [ ] AI 完全生成 自动化代码核对和上述验证已完成,人工审查待维护者进行。 See merge request: cann/ops-math!6703 | 15 days ago | |
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 | 20 days ago | |
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 | 19 days ago | |
[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 | 30 days ago | |
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 | 18 days ago | |
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 | 15 days ago | |
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 | 20 days ago | |
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 | 15 days ago | |
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 | 16 days ago | |
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 | 16 days ago | |
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 | 15 days ago | |
处理一些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 | 14 days ago | |
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 | 15 days ago | |
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 | 15 days ago | |
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 | 16 days ago | |
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 | 15 days ago | |
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 | 16 days ago | |
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 | 15 days ago | |
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 | 23 days ago | |
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 month ago | |
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 | 16 days ago | |
适配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 | 14 days ago | |
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 | 15 days ago | |
产品名变更 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 month ago | |
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 | 16 days ago | |
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 | 16 days ago | |
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 | 1 month ago | |
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 | 15 days ago | |
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 | 16 days ago | |
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 | 14 days ago | |
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 | 16 days ago | |
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 | 16 days ago | |
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 | 22 days ago | |
适配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 | 26 days ago | |
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 | 15 days ago | |
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 | 1 month ago | |
fix(dense_bincount): DenseBincount算子加固 Co-authored-by: tianyu52<tianyu52@huawei.com> # message auto-generated for no-merge-commit merge: !6811 merge master into master fix(dense_bincount): DenseBincount算子加固 Created-by: tianyu52 Commit-by: tianyu52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 完善 DenseBincount 的动态图/边界校验、带权规约确定性与性能调度,并补齐符合 A2/A3 支持面口径的 golden、UT/ST、静态检查和端到端验证。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> UT/ST 泛化 PASS ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6811 | 15 days ago | |
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 | 24 days ago | |
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 | 16 days ago | |
[Docs] 补充aclnnDiv/aclnnInplaceDiv整型精度边界说明 Co-authored-by: zhouyuanhang30083383<zhouyuanhang4@h-partners.com> Co-authored-by: weike<weike13@huawei.com> # message auto-generated for no-merge-commit merge: !6818 merge origin/docs/div-integer-precision-boundary into master [Docs] 补充aclnnDiv/aclnnInplaceDiv整型精度边界说明 Created-by: m0_55003149 Commit-by: weike;zhouyuanhang30083383 Merged-by: cann-robot Description: ## 描述 补充 aclnnDiv/aclnnInplaceDiv 在 Atlas A2/A3 上整型输入的精度边界说明: - 当 self、other、out 均为整型时,接口按实数除法计算并转换到 out 类型,不保证 C/C++ 整型截断除法的全范围精确性; - 当前实现使用 FLOAT32 作为中间结果类型,FLOAT32 只能保证精确表示绝对值不超过 2^24 的整数,超出后可能出现舍入误差,包括 x / 1 != x; - 需要整型截断语义时,指引结合 aclnnDivMod 的 mode 语义及其数据类型的精度约束使用。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3859 ## 测试 ## 文档更新 更新了math/div/docs/aclnnDiv&aclnnInplaceDiv.md、math/div/docs/aclnnDiv&aclnnInplaceDiv_en.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6818 | 15 days ago | |
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 | 20 days ago | |
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 | 15 days ago | |
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 | 15 days ago | |
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 | 14 days ago | |
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 | 16 days ago | |
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 | 16 days ago | |
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 | 15 days ago | |
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 | 15 days ago | |
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 | 15 days ago | |
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 | 1 month ago | |
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 | 16 days ago | |
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 | 16 days ago | |
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 | 15 days ago | |
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 | 16 days ago | |
处理一些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 | 14 days ago | |
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 | 29 days ago | |
[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 | 1 month ago | |
产品名变更 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 month ago | |
产品名变更 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 month ago | |
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 | 21 days ago | |
适配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 | 26 days ago | |
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 | 14 days ago | |
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 | 14 days ago | |
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 month ago | |
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 | 17 days ago |
| Files | Last commit | Last update |
|---|---|---|
| 16 days ago | ||
| 14 days ago | ||
| 14 days ago | ||
| 16 days ago | ||
| 1 month ago | ||
| 15 days ago | ||
| 1 month ago | ||
| 1 month ago | ||
| 15 days ago | ||
| 15 days ago | ||
| 14 days ago | ||
| 14 days ago | ||
| 22 days ago | ||
| 16 days ago | ||
| 16 days ago | ||
| 16 days ago | ||
| 1 month ago | ||
| 28 days ago | ||
| 14 days ago | ||
| 16 days ago | ||
| 16 days ago | ||
| 1 month ago | ||
| 16 days ago | ||
| 15 days ago | ||
| 16 days ago | ||
| 16 days ago | ||
| 16 days ago | ||
| 20 days ago | ||
| 16 days ago | ||
| 1 month ago | ||
| 25 days ago | ||
| 25 days ago | ||
| 16 days ago | ||
| 16 days ago | ||
| 15 days ago | ||
| 15 days ago | ||
| 20 days ago | ||
| 19 days ago | ||
| 30 days ago | ||
| 18 days ago | ||
| 15 days ago | ||
| 20 days ago | ||
| 15 days ago | ||
| 16 days ago | ||
| 16 days ago | ||
| 15 days ago | ||
| 14 days ago | ||
| 15 days ago | ||
| 15 days ago | ||
| 16 days ago | ||
| 15 days ago | ||
| 16 days ago | ||
| 15 days ago | ||
| 23 days ago | ||
| 1 month ago | ||
| 16 days ago | ||
| 14 days ago | ||
| 15 days ago | ||
| 1 month ago | ||
| 16 days ago | ||
| 16 days ago | ||
| 1 month ago | ||
| 15 days ago | ||
| 16 days ago | ||
| 14 days ago | ||
| 16 days ago | ||
| 16 days ago | ||
| 22 days ago | ||
| 26 days ago | ||
| 15 days ago | ||
| 1 month ago | ||
| 15 days ago | ||
| 24 days ago | ||
| 16 days ago | ||
| 15 days ago | ||
| 20 days ago | ||
| 15 days ago | ||
| 15 days ago | ||
| 14 days ago | ||
| 16 days ago | ||
| 16 days ago | ||
| 15 days ago | ||
| 15 days ago | ||
| 15 days ago | ||
| 1 month ago | ||
| 16 days ago | ||
| 16 days ago | ||
| 15 days ago | ||
| 16 days ago | ||
| 14 days ago | ||
| 29 days ago | ||
| 1 month ago | ||
| 1 month ago | ||
| 1 month ago | ||
| 21 days ago | ||
| 26 days ago | ||
| 14 days ago | ||
| 14 days ago | ||
| 1 month ago | ||
| 17 days ago |