| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
【社区任务】feat(mod): add int16 same/mixed-dtype support + large-quotient numerical stability enhancement (A2/A3) Co-authored-by: Admin05210<2916838196@qq.com> # message auto-generated for no-merge-commit merge: !3788 merge fmod-mod-enhance-v7 into master 【社区任务】feat(mod): add int16 same/mixed-dtype support + large-quotient numerical stability enhancement (A2/A3) Created-by: Admin05210 Commit-by: Admin05210 Merged-by: cann-robot Description: ## 描述 本 PR 是对已有官方 Mod 算子(experimental/math/mod,!3240 引入)的**增强**,非新增算子、非替换。关联需求 issue:#2114。 > 本 PR 取代 #3701(内容一致,重建以刷新流水线)。#3701 的 codecheck_precommit 失败经排查为上游 scripts/oat_check.sh 在 pre-commit 并行分批下共享非唯一 PlainReport_*.txt 的竞态(OAT 实际 0 violation),与本 PR 代码无关。 ### 新增能力 1. **INT16 同 dtype + 混合 dtype 支持**:补齐 int16⊗int16→int16 的 tensor-tensor 计算,以及 int16 与 bf16/fp16/fp32 的混合 dtype 组合。 2. **大商场景数值稳定性增强**:浮点截断求模(trunc-mod)在 |self/other| 较大时的精度隐患修复,仅在检测到相应条件时启用增强路径,其余场景保持原 Div -> Trunc -> Mul -> Sub 行为逐位不变。 ### 影响范围 - 新增能力**仅在 Atlas A2 训练系列(Ascend910B)与 Atlas A3 系列(Ascend910_93)生效**;其余平台(Ascend310P/Ascend910/950 等)行为不变。 - 现有 BF16/FLOAT16/FLOAT32/INT32/DOUBLE/INT64/INT8/UINT8 的既有支持范围与行为不受影响。 - **零删除**:diff 仅修改既有文件(op_api/op_host/op_kernel 实现 + README/docs)+ 新增 op_kernel 拆分头文件,无删除文件;op_kernel/mod.cpp(kernel 入口)与全部 tests/ut/* 逻辑保持等价。 ### 验证状态(CANN 9.0.0 / Atlas 910B) - ✅ 编译:build.sh --pkg --experimental --soc=ascend910b --ops=mod,rc=0,20/20 device kernel 二进制(.o)全部编出。 - ✅ 精度:官方 AscendOpTest 代表性用例 FmodTensor / FmodScalar 全部通过(覆盖 fp32/fp16/bf16、int16 同 dtype / 混合 dtype、大商数值稳定路径、大 shape)。 --- ### 追加 general 广播性能修复 (本版 vs #3776) 前序版本对**非可融合广播几何**(混合 dtype / 中间轴 / 高维)在 A2/A3 走 in-kernel 通用 broadcast, 高维几何 tile 退化到近逐元素, 在泛化测试矩阵上出现数百倍劣化。本版在 L0 路由层改为对非可融合几何走 BroadcastTo 物化(对标参考实现), kernel 见连续输入。 - 数值**逐字节不变**(物化复刻 in-kernel stride 广播语义; 含 NaN/Inf/大商)。 - **kernel .o 全部不变**, 仅 op_api/mod.cpp 一个 L0 文件改动。 - A2/A3 (arch22) 守卫, 上游能力/AICPU/通用广播路全保留 (0-deletion / additive)。 关联需求 issue #2114。 > 本 PR 取代 #3786(内容逐字节一致、同 git tree),重建以刷新 codecheck_precommit 的 oat-check 并发批次竞态(infra flake,0 违规:日志全 All checks passed + PlainReport not found/code 127,与代码无关)。codecheck / clang-format / SCA / UT 等在 #3786 均已 SUCCESS。 See merge request: cann/ops-math!3788 | 2 个月前 | |
【社区任务】feat(mod): add int16 same/mixed-dtype support + large-quotient numerical stability enhancement (A2/A3) Co-authored-by: Admin05210<2916838196@qq.com> # message auto-generated for no-merge-commit merge: !3788 merge fmod-mod-enhance-v7 into master 【社区任务】feat(mod): add int16 same/mixed-dtype support + large-quotient numerical stability enhancement (A2/A3) Created-by: Admin05210 Commit-by: Admin05210 Merged-by: cann-robot Description: ## 描述 本 PR 是对已有官方 Mod 算子(experimental/math/mod,!3240 引入)的**增强**,非新增算子、非替换。关联需求 issue:#2114。 > 本 PR 取代 #3701(内容一致,重建以刷新流水线)。#3701 的 codecheck_precommit 失败经排查为上游 scripts/oat_check.sh 在 pre-commit 并行分批下共享非唯一 PlainReport_*.txt 的竞态(OAT 实际 0 violation),与本 PR 代码无关。 ### 新增能力 1. **INT16 同 dtype + 混合 dtype 支持**:补齐 int16⊗int16→int16 的 tensor-tensor 计算,以及 int16 与 bf16/fp16/fp32 的混合 dtype 组合。 2. **大商场景数值稳定性增强**:浮点截断求模(trunc-mod)在 |self/other| 较大时的精度隐患修复,仅在检测到相应条件时启用增强路径,其余场景保持原 Div -> Trunc -> Mul -> Sub 行为逐位不变。 ### 影响范围 - 新增能力**仅在 Atlas A2 训练系列(Ascend910B)与 Atlas A3 系列(Ascend910_93)生效**;其余平台(Ascend310P/Ascend910/950 等)行为不变。 - 现有 BF16/FLOAT16/FLOAT32/INT32/DOUBLE/INT64/INT8/UINT8 的既有支持范围与行为不受影响。 - **零删除**:diff 仅修改既有文件(op_api/op_host/op_kernel 实现 + README/docs)+ 新增 op_kernel 拆分头文件,无删除文件;op_kernel/mod.cpp(kernel 入口)与全部 tests/ut/* 逻辑保持等价。 ### 验证状态(CANN 9.0.0 / Atlas 910B) - ✅ 编译:build.sh --pkg --experimental --soc=ascend910b --ops=mod,rc=0,20/20 device kernel 二进制(.o)全部编出。 - ✅ 精度:官方 AscendOpTest 代表性用例 FmodTensor / FmodScalar 全部通过(覆盖 fp32/fp16/bf16、int16 同 dtype / 混合 dtype、大商数值稳定路径、大 shape)。 --- ### 追加 general 广播性能修复 (本版 vs #3776) 前序版本对**非可融合广播几何**(混合 dtype / 中间轴 / 高维)在 A2/A3 走 in-kernel 通用 broadcast, 高维几何 tile 退化到近逐元素, 在泛化测试矩阵上出现数百倍劣化。本版在 L0 路由层改为对非可融合几何走 BroadcastTo 物化(对标参考实现), kernel 见连续输入。 - 数值**逐字节不变**(物化复刻 in-kernel stride 广播语义; 含 NaN/Inf/大商)。 - **kernel .o 全部不变**, 仅 op_api/mod.cpp 一个 L0 文件改动。 - A2/A3 (arch22) 守卫, 上游能力/AICPU/通用广播路全保留 (0-deletion / additive)。 关联需求 issue #2114。 > 本 PR 取代 #3786(内容逐字节一致、同 git tree),重建以刷新 codecheck_precommit 的 oat-check 并发批次竞态(infra flake,0 违规:日志全 All checks passed + PlainReport not found/code 127,与代码无关)。codecheck / clang-format / SCA / UT 等在 #3786 均已 SUCCESS。 See merge request: cann/ops-math!3788 | 2 个月前 |