| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 22 天前 | |
refactor(unique): 将全局去重接口迁移到独立目录 Co-authored-by: yourealize<chenzhanxi1@huawei.com> # message auto-generated for no-merge-commit merge: !10273 merge codex/unique-api-independent-dir into master refactor(unique): 将全局去重接口迁移到独立目录 Created-by: yourealize Commit-by: yourealize Merged-by: cann-robot Description: ## 描述 aclnnUnique/Unique2 提供全局去重,当前与连续去重算子 UniqueConsecutive 放在同一目录。将两个接口及其共享实现 unique_common 迁移至独立的 index/unique/op_api,由该模块管理 AI Core 组合路径和 AI CPU 回退依赖。 同步迁移文档、示例、ST 和 UT,补齐独立模块的构建和测试入口,更新接口索引和分类路径。UniqueConsecutive 接口、L0 和 Kernel 保留原目录。15 个迁移文件内容完全不变,不调整接口行为和计算逻辑。 ## 关联的Issue [#5427](https://gitcode.com/cann/ops-nn/issues/5427) ## 测试 - git diff --check 通过。 - 15 个迁移文件与基线 Git blob 哈希一致。 - 迁移旧路径无残留,迁移文档的本地链接及 UT 相对 include 检查通过。 - 已静态核对模块源码收集、头文件导出及 UT 注册入口。 - 本机无可用 CANN 编译环境,未运行编译、UT 或设备测试。 ## 文档更新 新增 index/unique/README.md,迁移 aclnnUnique/Unique2 文档与示例,更新接口菜单及列表。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:目录结构调整 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10273 | 1 个月前 | |
feat(unique): add Regbase values-only AI Core support Co-authored-by: ConanHuang<huangxiaobin1@huawei.com> # message auto-generated for no-merge-commit merge: !10993 merge feature_op_unique into master feat(unique): add Regbase values-only AI Core support Created-by: ConanHuang Commit-by: ConanHuang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 aclnnUnique / aclnnUnique2 增加 Regbase values-only AI Core 路径,在单次 Kernel 调用中完成排序与去重,减少不必要的索引搬运和中间存储。 - 新增 arch35 Tiling、Kernel 和动态输出 shape 回传,接入 ACLNN 分流。 - 整理算子 L0、原型及 Ascend 950/350 构建注册;调整共享 radix 和 UniqueConsecutive 的大输入计算。 - 新增 ACLNN/Kernel 测试用例、golden 和 GEIR 示例。 新路径仅处理不返回 inverse/counts 且满足准入条件的调用,其余场景沿用既有路径;GE/ONNX 仍使用 AICPU。详细 Tiling 与 Kernel 设计见关联 Issue。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6187 ## 测试 - 二级冒烟通过 - UniqueWithCountsAndSorting 和 KthValue 各自 300+ kernel ST通过 - aclnnUnique aclnnUnique2 各自 170+ aclnn用例通过 - onnx geir 通路兼容性验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10993 | 27 天前 | |
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 | 5 天前 | |
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 个月前 | |
refactor(unique): 将全局去重接口迁移到独立目录 Co-authored-by: yourealize<chenzhanxi1@huawei.com> # message auto-generated for no-merge-commit merge: !10273 merge codex/unique-api-independent-dir into master refactor(unique): 将全局去重接口迁移到独立目录 Created-by: yourealize Commit-by: yourealize Merged-by: cann-robot Description: ## 描述 aclnnUnique/Unique2 提供全局去重,当前与连续去重算子 UniqueConsecutive 放在同一目录。将两个接口及其共享实现 unique_common 迁移至独立的 index/unique/op_api,由该模块管理 AI Core 组合路径和 AI CPU 回退依赖。 同步迁移文档、示例、ST 和 UT,补齐独立模块的构建和测试入口,更新接口索引和分类路径。UniqueConsecutive 接口、L0 和 Kernel 保留原目录。15 个迁移文件内容完全不变,不调整接口行为和计算逻辑。 ## 关联的Issue [#5427](https://gitcode.com/cann/ops-nn/issues/5427) ## 测试 - git diff --check 通过。 - 15 个迁移文件与基线 Git blob 哈希一致。 - 迁移旧路径无残留,迁移文档的本地链接及 UT 相对 include 检查通过。 - 已静态核对模块源码收集、头文件导出及 UT 注册入口。 - 本机无可用 CANN 编译环境,未运行编译、UT 或设备测试。 ## 文档更新 新增 index/unique/README.md,迁移 aclnnUnique/Unique2 文档与示例,更新接口菜单及列表。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:目录结构调整 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10273 | 1 个月前 |
Unique
本目录提供全局去重接口 aclnnUnique 和 aclnnUnique2。两者均返回输入张量中的唯一元素,可选择返回原输入到去重结果的索引;aclnnUnique2 还可返回每个唯一元素的出现次数。
本模块通过组合已有算子实现功能,不包含独立 Kernel。支持 AI Core 的路径使用 Sort、UniqueConsecutive 等算子;其他场景调用 UniqueWithCountsAndSorting AI CPU 实现。具体支持条件以接口实现和接口文档为准。
op_api/unique_common.cpp 和 op_api/unique_common.h 是两个接口共用的内部实现。连续去重接口 aclnnUniqueConsecutive 及其底层实现仍位于 unique_consecutive。
| 接口 | 文档 | 示例 |
|---|---|---|
| aclnnUnique | 接口说明 | 调用示例 |
| aclnnUnique2 | 接口说明及示例 | 见接口文档 |