| docs(AccumulateNV2): 修正 aclnnSum 产品支持表 310b 行 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !6817 merge fix/accumulate-nv2-310b-support into master docs(AccumulateNV2): 修正 aclnnSum 产品支持表 310b 行 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 修改内容 math/accumulate_nv2/docs/aclnnSum.md 产品支持情况: diff <!-- npu="310b" id4 --> -- <term>Atlas 200I/500 A2推理产品</term>:不支持 +- <term>Atlas 200I/500 A2推理产品</term>:支持 <!-- end id4 --> ## 依据 以 canndev 内置库为权威源逐字段核对:ops/built-in/tbe/op_info_cfg/ai_core/ascend310b/aic-ascend310b-ops-info.ini 的 [AccumulateNV2] 条目与 ascend910b(Atlas A2 训练/推理)**完全相同**: | 字段 | ascend310b | ascend910b | |:--|:--|:--| | input0.dtype | float16,float,int32,int8,uint8 | 同 | | output0.dtype | float16,float,int32,int8,uint8 | 同 | | dynamicShapeSupport.flag | true | 同 | | dynamicRankSupport.flag | true | 同 | | op.pattern | broadcast | 同 | | attr_N | int / all / required | 同 | 无任何差别对待的技术依据。产品↔芯片映射依据 npu-arch/references/npu-hardware-params.md §0:Atlas 200I/500 A2 推理 = ASCEND310B / DAV_3002 / Ascend310B1~B4。 ## 一致性 修正后与仓内 math/accumulate_nv2/README.md 产品支持表一致(该行原本即为 √)。本 PR 只改这一行,README 与 CMake/spec 均不动。 > 说明:spec.yaml 的 supported_chips: [Ascend950PR, Ascend950DT] 描述的是**本次 Ascend C 交付的构建范围**(arch35 / DAV_3510),与产品支持表描述的**产品可用范围**(含 canndev 内置覆盖的 DAV_1001/2002/2201/3002 芯片)是两个口径,不矛盾。 ## 关联的Issue - [Documentation|文档反馈] aclnnSum.md 产品支持表 Atlas 200I/500 A2 推理产品误标"不支持" #4252 https://gitcode.com/cann/ops-math/issues/4252 See merge request: cann/ops-math!6817 | 17 days ago |
| fix: 修复多个算子样例运行问题 Co-authored-by: xujiachen8<xujiachen8@h-partners.com> # message auto-generated for no-merge-commit merge: !5878 merge fix-issue-3159-runtime-master-20260920T083218Z into master fix: 修复多个算子样例运行问题 Created-by: xujiachen8 Commit-by: xujiachen8 Merged-by: cann-robot Description: ## 描述 修复 #3159 中多个算子样例无法编译或运行的问题: - 修正 batch_to_space 和 random_uniform_v2 样例中 DT_INT64 输入使用 int32_t 缓冲的问题; - 修正 split 样例的 split_dim 类型、shape、值及动态输出声明; - 修正 accumulate_nv2 普通与 arch35 样例的公共 aclnn 头文件引用路径; - 限制 batch_to_space 的终端输出量,完整结果仍写入输出文件。 本次只修改 examples,不修改算子定义、host tiling 或 kernel 实现。 ## 关联的Issue Closes #3159 ## 测试 - CANN 9.2.0 + Ascend 950PR:Issue 涉及的 7 个 graph/eager 样例全部运行成功; - accumulate_nv2 普通与 arch35 两份样例均运行成功,输出数值符合预期; - exact-files pre-commit、clang-format、OAT 通过; - git -c core.whitespace=cr-at-eol diff --check 通过。 尚未执行四项 msSanitizer,待 PR CI 继续验证。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5878 | 1 month ago |
| fix(AccumulateNV2): P1缺陷整改+broadcast收回+fp16性能优化+golden精度标准落位 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !6584 merge fix/accumulate-nv2-remediation into master fix(AccumulateNV2): P1缺陷整改+broadcast收回+fp16性能优化+golden精度标准落位 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 概述 AccumulateNV2 算子验证整改全量提交(15 个 commit,基于 cann/ops-math master 干净分支,不含其他算子改动)。 ## 修复内容 ### P1 功能缺陷 - **dtype 一致性校验**(7f5b5cd8b):图路径/aclnn 第一段/tiling 三层补齐 161002 校验 - **fp32 极值 NaN**(7f5b5cd8b→6cbebfe2e):守卫式 TwoSum → TF 竞品同构顺序求和(N≤9 顺序、N>9 余数优先 8 分块,复现 TF AddN 舍入) - **N 参数校验**(7f5b5cd8b):Host 侧 N==输入数一致性 - **broadcast 收回**(ebb6bdce3):算子本体同 shape 强校验;aclnnSum 接口层保留 BroadcastTo 对齐 ### 死代码清理(4e840cb20,-242 行) - TilingData 删 needBroadcast/rank/outputShape/inputStrides 四个死字段(2632B→32B) - SIMT 路径收敛为 float 专用;删 GetBroadcastInputOffset 与全部广播死分支 - 入口模板以 UT_SOC_VERSION 守护,修复 UT 构建回归(fbd2dd9f2 连带) ### 性能优化(MTE bound 归一化后 NPU 优 A100 1.68x) - fp16 SIMT 地址提升(c4ca3f64e,+3%) - **fp16 非广播路径切换 Vector 管线 half 累加**(502dd93b6):中位加速 7.60x,吞吐 203→1615GB/s(峰值 2140),67 例三方比对 67/67 PASS ### golden 精度标准(2b074c737、743c3606a) - fp16 分路径:kernel 直连=numpy 顺序 half 累加(Vector Add 链同构);aclnnSum=fp32 promote - TestSpec 落位 tolerance:浮点 cross_check L1 / 整数 binary_equal L2 - kernel 直连参考移除 broadcast 对齐块(同 shape 契约) ### 文档(5c09ec3d0、4976fa638、fbd2dd9f2、72e543b8a) - README/aclnnSum 7 项修正;-1/-2 动态维语义声明;文件命名规范;格式规范清理 ## 验证(Ascend950PR / CANN 9.3.0) - UT:op_kernel 10/10、op_host 20/20 - TTK:fp16 大 shape 67/67;混合 dtype 26/26(另 10 例 rank-0 挂已知 CANN 框架 bug 的 Dyn/Cst 编译,Binary 全 100%) - v4 全量扫描:kernel L1 150 例 Binary 对 golden 零精度失败 - 性能无回归(清理前后中位持平) ## 关联的Issue [3870](https://gitcode.com/cann/ops-math/issues/3870) ## 测试 已通过对应算子的构建、UT 与 TTK 精度验证。 ## 文档更新 包含相关 README / 接口文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6584 | 20 days ago |
| fix(AccumulateNV2): P1缺陷整改+broadcast收回+fp16性能优化+golden精度标准落位 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !6584 merge fix/accumulate-nv2-remediation into master fix(AccumulateNV2): P1缺陷整改+broadcast收回+fp16性能优化+golden精度标准落位 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 概述 AccumulateNV2 算子验证整改全量提交(15 个 commit,基于 cann/ops-math master 干净分支,不含其他算子改动)。 ## 修复内容 ### P1 功能缺陷 - **dtype 一致性校验**(7f5b5cd8b):图路径/aclnn 第一段/tiling 三层补齐 161002 校验 - **fp32 极值 NaN**(7f5b5cd8b→6cbebfe2e):守卫式 TwoSum → TF 竞品同构顺序求和(N≤9 顺序、N>9 余数优先 8 分块,复现 TF AddN 舍入) - **N 参数校验**(7f5b5cd8b):Host 侧 N==输入数一致性 - **broadcast 收回**(ebb6bdce3):算子本体同 shape 强校验;aclnnSum 接口层保留 BroadcastTo 对齐 ### 死代码清理(4e840cb20,-242 行) - TilingData 删 needBroadcast/rank/outputShape/inputStrides 四个死字段(2632B→32B) - SIMT 路径收敛为 float 专用;删 GetBroadcastInputOffset 与全部广播死分支 - 入口模板以 UT_SOC_VERSION 守护,修复 UT 构建回归(fbd2dd9f2 连带) ### 性能优化(MTE bound 归一化后 NPU 优 A100 1.68x) - fp16 SIMT 地址提升(c4ca3f64e,+3%) - **fp16 非广播路径切换 Vector 管线 half 累加**(502dd93b6):中位加速 7.60x,吞吐 203→1615GB/s(峰值 2140),67 例三方比对 67/67 PASS ### golden 精度标准(2b074c737、743c3606a) - fp16 分路径:kernel 直连=numpy 顺序 half 累加(Vector Add 链同构);aclnnSum=fp32 promote - TestSpec 落位 tolerance:浮点 cross_check L1 / 整数 binary_equal L2 - kernel 直连参考移除 broadcast 对齐块(同 shape 契约) ### 文档(5c09ec3d0、4976fa638、fbd2dd9f2、72e543b8a) - README/aclnnSum 7 项修正;-1/-2 动态维语义声明;文件命名规范;格式规范清理 ## 验证(Ascend950PR / CANN 9.3.0) - UT:op_kernel 10/10、op_host 20/20 - TTK:fp16 大 shape 67/67;混合 dtype 26/26(另 10 例 rank-0 挂已知 CANN 框架 bug 的 Dyn/Cst 编译,Binary 全 100%) - v4 全量扫描:kernel L1 150 例 Binary 对 golden 零精度失败 - 性能无回归(清理前后中位持平) ## 关联的Issue [3870](https://gitcode.com/cann/ops-math/issues/3870) ## 测试 已通过对应算子的构建、UT 与 TTK 精度验证。 ## 文档更新 包含相关 README / 接口文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6584 | 20 days ago |
| fix(AccumulateNV2): P1缺陷整改+broadcast收回+fp16性能优化+golden精度标准落位 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !6584 merge fix/accumulate-nv2-remediation into master fix(AccumulateNV2): P1缺陷整改+broadcast收回+fp16性能优化+golden精度标准落位 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 概述 AccumulateNV2 算子验证整改全量提交(15 个 commit,基于 cann/ops-math master 干净分支,不含其他算子改动)。 ## 修复内容 ### P1 功能缺陷 - **dtype 一致性校验**(7f5b5cd8b):图路径/aclnn 第一段/tiling 三层补齐 161002 校验 - **fp32 极值 NaN**(7f5b5cd8b→6cbebfe2e):守卫式 TwoSum → TF 竞品同构顺序求和(N≤9 顺序、N>9 余数优先 8 分块,复现 TF AddN 舍入) - **N 参数校验**(7f5b5cd8b):Host 侧 N==输入数一致性 - **broadcast 收回**(ebb6bdce3):算子本体同 shape 强校验;aclnnSum 接口层保留 BroadcastTo 对齐 ### 死代码清理(4e840cb20,-242 行) - TilingData 删 needBroadcast/rank/outputShape/inputStrides 四个死字段(2632B→32B) - SIMT 路径收敛为 float 专用;删 GetBroadcastInputOffset 与全部广播死分支 - 入口模板以 UT_SOC_VERSION 守护,修复 UT 构建回归(fbd2dd9f2 连带) ### 性能优化(MTE bound 归一化后 NPU 优 A100 1.68x) - fp16 SIMT 地址提升(c4ca3f64e,+3%) - **fp16 非广播路径切换 Vector 管线 half 累加**(502dd93b6):中位加速 7.60x,吞吐 203→1615GB/s(峰值 2140),67 例三方比对 67/67 PASS ### golden 精度标准(2b074c737、743c3606a) - fp16 分路径:kernel 直连=numpy 顺序 half 累加(Vector Add 链同构);aclnnSum=fp32 promote - TestSpec 落位 tolerance:浮点 cross_check L1 / 整数 binary_equal L2 - kernel 直连参考移除 broadcast 对齐块(同 shape 契约) ### 文档(5c09ec3d0、4976fa638、fbd2dd9f2、72e543b8a) - README/aclnnSum 7 项修正;-1/-2 动态维语义声明;文件命名规范;格式规范清理 ## 验证(Ascend950PR / CANN 9.3.0) - UT:op_kernel 10/10、op_host 20/20 - TTK:fp16 大 shape 67/67;混合 dtype 26/26(另 10 例 rank-0 挂已知 CANN 框架 bug 的 Dyn/Cst 编译,Binary 全 100%) - v4 全量扫描:kernel L1 150 例 Binary 对 golden 零精度失败 - 性能无回归(清理前后中位持平) ## 关联的Issue [3870](https://gitcode.com/cann/ops-math/issues/3870) ## 测试 已通过对应算子的构建、UT 与 TTK 精度验证。 ## 文档更新 包含相关 README / 接口文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6584 | 20 days ago |
| fix(AccumulateNV2): P1缺陷整改+broadcast收回+fp16性能优化+golden精度标准落位 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !6584 merge fix/accumulate-nv2-remediation into master fix(AccumulateNV2): P1缺陷整改+broadcast收回+fp16性能优化+golden精度标准落位 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 概述 AccumulateNV2 算子验证整改全量提交(15 个 commit,基于 cann/ops-math master 干净分支,不含其他算子改动)。 ## 修复内容 ### P1 功能缺陷 - **dtype 一致性校验**(7f5b5cd8b):图路径/aclnn 第一段/tiling 三层补齐 161002 校验 - **fp32 极值 NaN**(7f5b5cd8b→6cbebfe2e):守卫式 TwoSum → TF 竞品同构顺序求和(N≤9 顺序、N>9 余数优先 8 分块,复现 TF AddN 舍入) - **N 参数校验**(7f5b5cd8b):Host 侧 N==输入数一致性 - **broadcast 收回**(ebb6bdce3):算子本体同 shape 强校验;aclnnSum 接口层保留 BroadcastTo 对齐 ### 死代码清理(4e840cb20,-242 行) - TilingData 删 needBroadcast/rank/outputShape/inputStrides 四个死字段(2632B→32B) - SIMT 路径收敛为 float 专用;删 GetBroadcastInputOffset 与全部广播死分支 - 入口模板以 UT_SOC_VERSION 守护,修复 UT 构建回归(fbd2dd9f2 连带) ### 性能优化(MTE bound 归一化后 NPU 优 A100 1.68x) - fp16 SIMT 地址提升(c4ca3f64e,+3%) - **fp16 非广播路径切换 Vector 管线 half 累加**(502dd93b6):中位加速 7.60x,吞吐 203→1615GB/s(峰值 2140),67 例三方比对 67/67 PASS ### golden 精度标准(2b074c737、743c3606a) - fp16 分路径:kernel 直连=numpy 顺序 half 累加(Vector Add 链同构);aclnnSum=fp32 promote - TestSpec 落位 tolerance:浮点 cross_check L1 / 整数 binary_equal L2 - kernel 直连参考移除 broadcast 对齐块(同 shape 契约) ### 文档(5c09ec3d0、4976fa638、fbd2dd9f2、72e543b8a) - README/aclnnSum 7 项修正;-1/-2 动态维语义声明;文件命名规范;格式规范清理 ## 验证(Ascend950PR / CANN 9.3.0) - UT:op_kernel 10/10、op_host 20/20 - TTK:fp16 大 shape 67/67;混合 dtype 26/26(另 10 例 rank-0 挂已知 CANN 框架 bug 的 Dyn/Cst 编译,Binary 全 100%) - v4 全量扫描:kernel L1 150 例 Binary 对 golden 零精度失败 - 性能无回归(清理前后中位持平) ## 关联的Issue [3870](https://gitcode.com/cann/ops-math/issues/3870) ## 测试 已通过对应算子的构建、UT 与 TTK 精度验证。 ## 文档更新 包含相关 README / 接口文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6584 | 20 days ago |
| fix(AccumulateNV2): fp32累加引入Inf/NaN扩充实数分治与缩放域TwoSum补偿求和 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !7117 merge fix/accumulate-nv2-inf-twosum into master fix(AccumulateNV2): fp32累加引入Inf/NaN扩充实数分治与缩放域TwoSum补偿求和 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 问题背景 issue #2(AccumulateNV2 精度问题,https://gitcode.com/wangyueting/changwei_liuyi/issues/2)修复(PR !6584,TF 同构顺序求和)后,L1 功能精度套件仍存在一类**顺序固有歧义**失败: - 输入含**有限极值(±fp32max=3.4028235e38)**与 **±Inf** 的混合时,fp32 顺序求和的部分和先溢出为 ∓Inf,再与反号 Inf 相撞产生 NaN; - golden(cross_check Promote → TF fp64)与竞品(TF GPU,AddN 内部 fp64 累加)均给出数学确定值 ±Inf,NPU 成为三方中唯一 NaN 方 → cross_check FAIL。 - 实测失败用例(TTK,Ascend950PR + CANN 9.3.0,三方比对):AccumulateNV2_L1_174 / L1_275 / L1_bound_185 / L1_418(另有 L1_227 见已知限制)。 ## 修复方案(仅 fp32 SIMT 路径;fp16/int 路径不动) **1. Inf/NaN 扩充实数分治(ACCUMULATE_NV2_CLASSIFY_SPECIAL 宏)** - 整数位域检查(__float_as_uint;aicore 禁 double 运算、Vector 无 fp64 Add,故全程无 fp64 算术); - 语义:NaN sticky 主导;+Inf 与 −Inf 并存 → NaN;单侧 Inf 直接钉死输出(有限 + Inf = Inf,有限部分无论多大均不改变结果); - 被分类值置换为 0.0f 后进入累加 → 补偿链**只可能见到有限操作数**。issue #2 原缺陷(TwoSum 直接消费 Inf,Inf − Inf 污染 correction)的路径在本实现中结构性不可达。 **2. 有限值累加:x2⁻⁸ 缩放域 TwoSum 补偿链** - 缩放域保证 N ≤ 256 时最坏部分和(inputNum × fp32max × 2⁻⁸)不越 fp32 范围,TwoSum 的精确分解恒等式全程成立(无中间溢出破坏); - 输出 (sum + corr) × 2⁸:补偿值单次舍入 + 精确指数平移回,真和超 fp32 范围时自动 ±Inf; - 与 golden(TF fp64 顺序和折叠到输出 dtype)在边界用例上逐位一致; - 缩放因子为精确 2 的幂,N ≤ 256 为本方案硬安全边界(当前 MAX_INPUT_NUM=40,余量 6 倍)。 ## 验证结果 环境:Ascend950PR + CANN 9.3.0,TTK kernel 模式动态编译,cross_check L1(NPU vs TF CPU golden(fp64) vs TF GPU 竞品三方比对)。 | 验证项 | 结果 | |---|---| | Inf 碰撞用例 174 / 275 / bound_185 / 418 | FAIL → **4/4 PASS** | | issue #2 原始场景(全+Inf N=2/N=10、全−Inf、Inf+(−Inf) 混合、NaN 主导、有限溢出后遇 Inf、fp16 promote Inf) | **7/7 PASS** | | 普通 fp32 用例抽测(007/012/032) | PASS | ## 已知限制 L1_227(全有限 ±fp32max、和经正负抵消回到 fp32 范围内):NaN 已全部消除(原 9 → 0)、±Inf 位点与 golden 13901/13901 含符号一致、GPU 溢出位点上与 golden 逐位精确一致(1018/1018)、mare/mere/rmse 三比值达标(1.0/1.0001/0.868),仅**小值域误差计数比 25:12=2.08 超限 2.0**(差 1 个位点)。本质是 fp32 双分量(等效 ~48 位)与竞品内部 fp64(52 位)在「大数精确相消到零」位点上的硬件能力差:small_value_atol=2⁻³⁰ 绝对阈值要求 ~138 位精度,arch35 无 fp64 加法,属精度边界而非实现缺陷。建议后续在 TestSpec tolerance 为大数相消场景放宽 small_value_atol,或将此类用例定为 known limitation。 ## 设计取舍说明 issue #2 曾明确「放弃补偿、保持 TF 同构」以维持 cross_check 比值公平(NPU 与竞品误差同源)。本 PR 在**带 Inf/NaN 输入的边界场景**上放弃了该原则(golden/竞品在此类场景已非朴素 fp32 语义,NPU 对齐它们才可能通过三方判定);普通有限值场景 NPU 会比朴素顺序求和更接近 golden(比值变小,不引入 FAIL)。若 maintainers 坚持 TF 同构,可仅采纳第 1 部分(Inf/NaN 分治),第 2 部分可再议。 See merge request: cann/ops-math!7117 | 9 days ago |
| fix(AccumulateNV2): kernel路径CPU golden对标tf.raw_ops.AccumulateNV2语义并确定化 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !7151 merge fix/accumulate-nv2-golden-rawops into master fix(AccumulateNV2): kernel路径CPU golden对标tf.raw_ops.AccumulateNV2语义并确定化 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 背景 L1 功能精度套件(TTK cross_check 三方比对:NPU vs CPU golden vs TF GPU 竞品)验证中,golden 参考与竞品(ThirdPartyTF,走 tf.raw_ops.AccumulateNV2 图模式)的语义对齐问题暴露: - 原 golden 用 eager tf.math.accumulate_n(AddN 实现)——与竞品的算子执行语义(图模式下 AccumulateNV2RemovePass 重写为 TemporaryVariable + AssignAdd 顺序链)**不同源**,cross_check 比值出现系统性放大; - 直接换成 tf.raw_ops.AccumulateNV2 + tf.function 图模式虽语义正确,但**图运行时不可复现**(实测:进程内多次执行、跨进程执行,AssignAdd 链的实际累加顺序均不同;inter_op 单线程仅能钉死进程内),golden 作为参照真值不可接受。 ## 修改(仅 kernel/GEIR 路径 fp32/int 分支) accumulate_nv2_golden 的非 fp16 分支改为 **raw_ops 语义的确定化实现**:eager 逐元素 x0 → x1 → … → xN 顺序链——与图模式重写后的 AssignAdd 链**逐元素语义严格等价**(TF 官方 AccumulateNV2 算子的执行语义),且进程内/跨进程**逐位确定**(md5 实证)。 fp16 promote 参考、ThirdPartyTF(GPU 竞品,保持对标 raw_ops)、aclnn/e2e 路径均不动。 ## 验证(TTK 三方,Ascend950PR + CANN 9.3.0,434 例 ≤50M 元素子集) | golden 实现 | 确定性 | L1_227 通过率 | 434 例全量 | |---|---|---|---| | eager accumulate_n(原版) | ✓ | 39% | 390 PASS,精度失败 4 | | raw_ops tf.function 图模式 | ✗ | ~30% | — | | **本 PR 手工顺序链** | **✓(small 计数恒定)** | **70%** | **394 PASS,精度失败 0** | - 原 8 个精度失败用例(L1_174/275/bound_185/418/227/321/396/470)**全部 PASS** - 剩余 40 例失败均为 CANN 编译器 0 维标量输出 DFX bug(reduce() of empty iterable),与 golden 无关 - L1_227 的已知特性如实说明:其 PASS 含竞品 GPU 图模式调度形态的运气成分(竞品侧非确定,对标 raw_ops 的既定选择下不可消除),判定失败面已从「确定性缺陷」收敛为「竞品非确定的边缘摆动」 ## 关联 - kernel 修复:PR #7117(缩放域 TwoSum + Inf/NaN 扩充实数状态机) - 问题跟踪:https://gitcode.com/wangyueting/changwei_liuyi/issues/2 - 完整归档(四代 golden 对比、227 多次实验数据):operator-artifacts 仓 AccumulateNV2/验证归档_20261104/ See merge request: cann/ops-math!7151 | 6 days ago |
| [CANNBot]InvGrad、ApproximateEqual、AccumulateNV2算子支持Ascend950 AscendC实现 Co-authored-by: Coder_Nerd<shishuai5@huawei.com> # message auto-generated for no-merge-commit merge: !2965 merge migrate/inv_grad into master [CANNBot]InvGrad、ApproximateEqual、AccumulateNV2算子支持Ascend950 AscendC实现 Created-by: Coder_Nerd Commit-by: Coder_Nerd Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1673 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> OBP冒烟 22382 通过 二级冒烟 5884 通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2965 | 5 months ago |
| fix(AccumulateNV2): P1缺陷整改+broadcast收回+fp16性能优化+golden精度标准落位 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !6584 merge fix/accumulate-nv2-remediation into master fix(AccumulateNV2): P1缺陷整改+broadcast收回+fp16性能优化+golden精度标准落位 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 概述 AccumulateNV2 算子验证整改全量提交(15 个 commit,基于 cann/ops-math master 干净分支,不含其他算子改动)。 ## 修复内容 ### P1 功能缺陷 - **dtype 一致性校验**(7f5b5cd8b):图路径/aclnn 第一段/tiling 三层补齐 161002 校验 - **fp32 极值 NaN**(7f5b5cd8b→6cbebfe2e):守卫式 TwoSum → TF 竞品同构顺序求和(N≤9 顺序、N>9 余数优先 8 分块,复现 TF AddN 舍入) - **N 参数校验**(7f5b5cd8b):Host 侧 N==输入数一致性 - **broadcast 收回**(ebb6bdce3):算子本体同 shape 强校验;aclnnSum 接口层保留 BroadcastTo 对齐 ### 死代码清理(4e840cb20,-242 行) - TilingData 删 needBroadcast/rank/outputShape/inputStrides 四个死字段(2632B→32B) - SIMT 路径收敛为 float 专用;删 GetBroadcastInputOffset 与全部广播死分支 - 入口模板以 UT_SOC_VERSION 守护,修复 UT 构建回归(fbd2dd9f2 连带) ### 性能优化(MTE bound 归一化后 NPU 优 A100 1.68x) - fp16 SIMT 地址提升(c4ca3f64e,+3%) - **fp16 非广播路径切换 Vector 管线 half 累加**(502dd93b6):中位加速 7.60x,吞吐 203→1615GB/s(峰值 2140),67 例三方比对 67/67 PASS ### golden 精度标准(2b074c737、743c3606a) - fp16 分路径:kernel 直连=numpy 顺序 half 累加(Vector Add 链同构);aclnnSum=fp32 promote - TestSpec 落位 tolerance:浮点 cross_check L1 / 整数 binary_equal L2 - kernel 直连参考移除 broadcast 对齐块(同 shape 契约) ### 文档(5c09ec3d0、4976fa638、fbd2dd9f2、72e543b8a) - README/aclnnSum 7 项修正;-1/-2 动态维语义声明;文件命名规范;格式规范清理 ## 验证(Ascend950PR / CANN 9.3.0) - UT:op_kernel 10/10、op_host 20/20 - TTK:fp16 大 shape 67/67;混合 dtype 26/26(另 10 例 rank-0 挂已知 CANN 框架 bug 的 Dyn/Cst 编译,Binary 全 100%) - v4 全量扫描:kernel L1 150 例 Binary 对 golden 零精度失败 - 性能无回归(清理前后中位持平) ## 关联的Issue [3870](https://gitcode.com/cann/ops-math/issues/3870) ## 测试 已通过对应算子的构建、UT 与 TTK 精度验证。 ## 文档更新 包含相关 README / 接口文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6584 | 20 days ago |
| docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !7113 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第二批,共409个文件):第一批(已合入)之外的其余全部译稿,覆盖conversion、examples、ge、math、random各类算子README译稿,以及CHANGELOG_en.md、.gitcode PR模板英文版等。 本批内全部仓内链接均指向master已有文件(含第一批已合入的21+2篇译稿),合入后本仓432篇英文文档全部就位,链接完整生效。 本批同时包含4篇基于最新源文档的增量更新(math/ada_cast、math/prod_force_se_a、math/sinkhorn、math/xlogy,对应上游近期文档变更)。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验(本批全部相对链接仅指向master已有文件,无指向本PR外未提交文件的链接),并完成逐篇翻译规范自查与语义校对(含支持状态表、限定词、术语、数值符号核对)。 ## 文档更新 新增409个英文译稿文件(*_en.md / .en-US.md),不修改任何现有文件。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7113 | 10 days ago |