| Files | Last commit | Last update |
|---|---|---|
fix(unique): 修复标杆语义与 tiling 整数边界,补齐 eager/GEIR 验证 Co-authored-by: ConanHuang<huangxiaobin1@huawei.com> # message auto-generated for no-merge-commit merge: !12026 merge master into master fix(unique): 修复标杆语义与 tiling 整数边界,补齐 eager/GEIR 验证 Created-by: ConanHuang Commit-by: ConanHuang Merged-by: cann-robot Description: ## 描述 Unique 的既有标杆未完整区分 ACLNN、Torch eager 与 GEIR 的输出语义,部分 dtype、无序输出、NaN 和正负零场景会影响比对准确性;UniqueWithCountsAndSorting 的 tiling 还存在无符号运算回绕及窄化转换风险。本 PR 修复上述问题,并补齐通路用例。 - 修复 aclnnUnique / aclnnUnique2 标杆,处理 bool、float64 的首次出现顺序,以及扩展无符号类型、NaN 逆索引、正负零和输出容量语义。bool/float64 fallback 使用向量化处理,避免逐元素 Python 遍历;优先使用 torch.unique,仅对缺少原生支持或语义不一致的场景保留 NumPy fallback。 - 按通路分别提供 golden、third_party 适配和精度标准;third_party 的计时调用直接执行原生 torch.unique,不混入转换、复制或 padding。将 UniqueWithCountsAndSorting 的 kernel/GEIR 标杆统一维护在 tests/assets/golden.py,按通路分别比对有效输出及动态 shape。新增 eager、GEIR 各 58 条用例,CSV 放在 tests/st/arch35,覆盖 dtype、属性组合、多维输入、特殊值和顺序语义。GEIR 保持既有计算通路, - 修复 arch35 tiling 的对齐结果累加、缓冲区大小、尾核长度及 compact tile 调整中的整数边界:在求和和窄化前限制范围,防止资源预算扣减下溢,并保持 tile ID 在 kernel 可表示范围内。新增 Host UT,覆盖规划切换点、超大输入 tile 数及 UB 不足场景。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6187 ## 测试 | 通路/接口 | 结果 | | --- | --- | | ACLNN aclnnUnique | 655/655 精度 PASS | | ACLNN aclnnUnique2 | 633/633 精度 PASS | | Torch eager | 58/58 精度 PASS | | UniqueWithCountsAndSorting kernel release | 38/38 精度及内存哨兵 PASS | | UniqueWithCountsAndSorting GEIR(静态/动态执行) | 58/58 精度 PASS | ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补齐 eager/GEIR 用例、通路标杆和 tiling 边界 UT。 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!12026 | 27 days ago | |
fix(unique): 修复标杆语义与 tiling 整数边界,补齐 eager/GEIR 验证 Co-authored-by: ConanHuang<huangxiaobin1@huawei.com> # message auto-generated for no-merge-commit merge: !12026 merge master into master fix(unique): 修复标杆语义与 tiling 整数边界,补齐 eager/GEIR 验证 Created-by: ConanHuang Commit-by: ConanHuang Merged-by: cann-robot Description: ## 描述 Unique 的既有标杆未完整区分 ACLNN、Torch eager 与 GEIR 的输出语义,部分 dtype、无序输出、NaN 和正负零场景会影响比对准确性;UniqueWithCountsAndSorting 的 tiling 还存在无符号运算回绕及窄化转换风险。本 PR 修复上述问题,并补齐通路用例。 - 修复 aclnnUnique / aclnnUnique2 标杆,处理 bool、float64 的首次出现顺序,以及扩展无符号类型、NaN 逆索引、正负零和输出容量语义。bool/float64 fallback 使用向量化处理,避免逐元素 Python 遍历;优先使用 torch.unique,仅对缺少原生支持或语义不一致的场景保留 NumPy fallback。 - 按通路分别提供 golden、third_party 适配和精度标准;third_party 的计时调用直接执行原生 torch.unique,不混入转换、复制或 padding。将 UniqueWithCountsAndSorting 的 kernel/GEIR 标杆统一维护在 tests/assets/golden.py,按通路分别比对有效输出及动态 shape。新增 eager、GEIR 各 58 条用例,CSV 放在 tests/st/arch35,覆盖 dtype、属性组合、多维输入、特殊值和顺序语义。GEIR 保持既有计算通路, - 修复 arch35 tiling 的对齐结果累加、缓冲区大小、尾核长度及 compact tile 调整中的整数边界:在求和和窄化前限制范围,防止资源预算扣减下溢,并保持 tile ID 在 kernel 可表示范围内。新增 Host UT,覆盖规划切换点、超大输入 tile 数及 UB 不足场景。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6187 ## 测试 | 通路/接口 | 结果 | | --- | --- | | ACLNN aclnnUnique | 655/655 精度 PASS | | ACLNN aclnnUnique2 | 633/633 精度 PASS | | Torch eager | 58/58 精度 PASS | | UniqueWithCountsAndSorting kernel release | 38/38 精度及内存哨兵 PASS | | UniqueWithCountsAndSorting GEIR(静态/动态执行) | 58/58 精度 PASS | ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补齐 eager/GEIR 用例、通路标杆和 tiling 边界 UT。 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!12026 | 27 days ago | |
refactor(unique): 清理冗余测试 CMake 配置 Co-authored-by: yourealize<chenzhanxi1@huawei.com> # message auto-generated for no-merge-commit merge: !10421 merge codex/unique-top-level-cmake-cleanup into master refactor(unique): 清理冗余测试 CMake 配置 Created-by: yourealize Commit-by: yourealize Merged-by: cann-robot Description: ## 描述 PR #10273 将 aclnnUnique/Unique2 迁移到独立目录后,新增检视意见指出:算子顶层配置 CMake 后,tests 目录不需要重复配置。 本 PR 将 index/unique/CMakeLists.txt 切换为 add_all_modules_sources 统一入口,由顶层直接收集生产源码及 tests/ut/op_host 下的 UT 源,并删除 tests 目录下三份冗余 CMakeLists.txt。接口行为和计算逻辑不变。 ## 关联的Issue [#5427](https://gitcode.com/cann/ops-nn/issues/5427) ## 测试 - pre-commit run --from-ref upstream/master --to-ref HEAD:通过。 - bash build.sh -u --opapi --ops=unique --ut_mode=fast -j8:通过。 - Unique/Unique2 OpApi UT:16/16 通过。 - 构建日志确认 test_aclnn_unique.cpp 和 test_aclnn_unique2.cpp 由顶层统一入口正确收集。 ## 文档更新 无文档更新。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:构建配置清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10421 | 1 month ago |