| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
修复 floor_mod/one_hot golden 问题 Co-authored-by: 鲜磊<xianlei4@h-partners.com> # message auto-generated for no-merge-commit merge: !3508 merge g9 into master 修复 floor_mod/one_hot golden 问题 Created-by: xianlei2 Commit-by: 鲜磊 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3508 | 1 个月前 | |
Update arch35 testcases with 5 testcases from v2 format (overwrite mode) Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !3303 merge cie into master Update arch35 testcases with 5 testcases from v2 format (overwrite mode) Created-by: yefeicoding Commit-by: yefeicoding Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-math/issues/1961 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3303 | 1 个月前 | |
fix: enable double path for remainder scalar tensor Co-authored-by: zhang-song-rui<zhangsongrui@h-partners.com> # message auto-generated for no-merge-commit merge: !4018 merge master into master fix: enable double path for remainder scalar tensor Created-by: zhang-song-rui Commit-by: zhang-song-rui Merged-by: cann-robot Description: ## 描述 修复 Ascend 950(RegBase)上 aclnnRemainderScalarTensor 在类型提升结果为 DT_DOUBLE 时的计算路径不一致问题。 修改前,RegBase 分支显式排除了 DT_DOUBLE。当 PromoteTypeScalarV35(other.dtype, self.dtype) 推导为 DT_DOUBLE 时,接口会进入通用分支,并按 out 的数据类型提前转换输入后再执行取余;若 out 为较低精度类型,会导致计算在降精度后进行,与类型提升规则不一致,存在精度损失风险。 本次修改移除 RegBase 分支对 DT_DOUBLE 的排除,使 Scalar-Tensor 场景统一按以下流程执行: 1. 使用 PromoteTypeScalarV35 推导计算类型; 2. 将 other 连续化并转换到推导类型,同时将 self 转换为同类型 Tensor; 3. 调用 l0op::FloorMod 完成计算; 4. 最后将结果转换到 out 的数据类型并写回。 对于 DT_DOUBLE,l0op::FloorMod 会通过 AICPU_DTYPE_SUPPORT_LIST 分发到 FloorModAiCpu,不会进入 arch35 仅支持 FP16/BF16/FP32/INT32/INT64 的 AICORE tiling/kernel 路径。 影响范围仅限 RegBase、非空 Tensor 的 aclnnRemainderScalarTensor;非 RegBase 路径、空 Tensor 快速返回、其他 remainder 接口及接口签名均不受影响。 ## 代码整改 - 按仓库 .clang-format 规范,使用 pre-commit 固定的 clang-format 18.1.8 对涉及文件进行格式整改; - 统一 extern C 代码块缩进、函数声明参数换行以及宏和函数调用的换行格式; - 格式整改不改变代码语义,除上述 double 路径修复外未引入其他逻辑修改; - 完整 pre-commit 检查已通过,包括 clang-format、trailing whitespace、end-of-file、merge conflict、private key、codespell 和 OAT 合规检查。 ## 关联的Issue - [Issue #2253:aclnnRemainderScalarTensor 在 RegBase double 路径提前降精度](https://gitcode.com/cann/ops-math/issues/2253) ## 测试 ### Ascend 950 全量验证 - 测试平台:Ascend950PR(RegBase),CANN 9.1.0。 - 对比版本: - PRE:修改前 26972d8; - POST:PR 修改后 87cdb6a。 - 测试方式:通过 C++ 直接调用 aclnn API,逐条执行 1000 个 Scalar-Tensor 用例,覆盖 double 类型提升、非 double 回归、0~8 维、连续/非连续 Tensor、空 Tensor、正负零、NaN/Inf、整数边界和非法参数。 | 用例集 | 数量 | PRE/POST 一致 | 预期差异 | 验证结论 | |---|---:|---:|---:|---| | D1:double scalar + integral tensor | 360 | 260 | 100 | 差异符合先 double 计算再 cast 的预期 | | D2:double tensor + 各类 scalar | 240 | 214 | 26 | 差异符合先 double 计算再 cast 的预期 | | N1:非 double 回归 | 160 | 160 | 0 | 无回归 | | S1:零、NaN、Inf、精度边界 | 100 | 100 | 0 | 行为一致 | | V1:非法参数与错误处理 | 80 | 80 | 0 | 行为一致 | | P1:RegBase 路径控制 | 60 | 36 | 24 | 差异符合预期 | | **合计** | **1000** | **850** | **150** | **通过** | 验证结果: - 1000 例全部执行完成,无 crash、hang 或非法内存访问; - 150 例差异全部集中在 promoted=DOUBLE && out!=DOUBLE 场景,符合本次修改的影响范围; - POST 保持 double 精度完成取余,仅在最后转换为 out 类型,修复了 PRE 版本提前降精度导致的结果偏差; - 差异用例中,PRE 与 PRE oracle 匹配 136/150,POST 与 POST oracle 匹配 138/150; - 非 double 160 例、边界值 100 例和非法参数 80 例均与 PRE 一致,未发现回归。 测试结论:通过。 ### 新增 Ascend950 回归 UT - 新增 math/floor_mod/tests/ut/op_api/test_aclnn_remainder_scalar_tensor.cpp,文件名符合 test_aclnn_*.cpp 收集规则; - 用例显式设置 NpuArch::DAV_3510,覆盖 scalar double 2049.0、tensor int32 2、out float16 的关键场景; - 定向构建与执行命令: TMPDIR=/tmp TMP=/tmp TEMP=/tmp CCACHE_TEMPDIR=/tmp/ops-math-ccache bash build.sh -u --opapi --ops=floor_mod --gtest_filter='l2_remainder_scalar_tensor_ascend950_test.*' -j2 - 本地执行结果:1 test from 1 test suite,1 PASSED; - 新增文件通过 clang-format 21.1.4 dry-run 和 git diff --check。 ### 静态检查 - 静态核对 DT_DOUBLE 后端分发:确认由 l0op::FloorMod 进入 AICPU 路径,不依赖 arch35 AICORE double kernel。 ## 文档更新 无接口或用户文档变更。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4018 | 28 天前 |