| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
add aicpu:tile_with_axis&topkpqdistance Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !4174 merge dev into master add aicpu:tile_with_axis&topkpqdistance Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 新增四个 AI CPU 算子: 1. **tile_with_axis**(conversion):沿指定维度复制输入 Tensor 数据,扩展输出 Tensor。包含 AI Core 和 AI CPU 双实现。 2. **top_k_pq_distance**(math):基于分组极值剪枝的 TopK 距离计算,用于向量检索场景。支持动态多组输入。 3. **top_k_v2_d**(math):沿指定维度找出最大或最小的 k 个元素及其索引,兼容 TensorFlow TopKV2,包含 infershape 实现。 4. **zeta**(math):计算 Hurwitz zeta 函数 ζ(x, q) = Σ(n=0→∞) 1/(q+n)^x。 每个算子包含:op_kernel_aicpu 实现、op_graph 构图定义、examples 示例、UT 单元测试、README 文档。 ## 关联的Issue #2294 ## 测试 根据代码变更,测试场景如下: 1. **tile_with_axis 单元测试 + GE IR 验证** - 执行 bash build.sh -u --opkernel_aicpu --ops=tile_with_axis --soc=ascend910b,17 个 UT 全部通过 - 执行编包 + GE IR 运行,execute samples success,输出 bin 文件正常 2. **top_k_pq_distance 单元测试** - 执行 bash build.sh -u --opkernel_aicpu --ops=top_k_pq_distance --soc=ascend910b,5 个 UT 全部通过 3. **top_k_v2_d 单元测试 + GE IR 验证** - 执行 bash build.sh -u --opkernel_aicpu --ops=top_k_v2_d --soc=ascend910b,UT 全部通过 - 执行编包 + GE IR 运行,验证通过 4. **zeta 单元测试 + GE IR 验证** - 执行 bash build.sh -u --opkernel_aicpu --ops=zeta --soc=ascend910b,8 个 UT 全部通过 - 执行编包 + GE IR 运行,execute samples success,输出 bin 文件正常 ## 文档更新 - 新增 4 个算子 README.md(tile_with_axis、top_k_pq_distance、top_k_v2_d、zeta) - 更新 docs/zh/op_list.md,新增 4 个算子条目 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4174 | 2 个月前 | |
tile_with_axes proto 增加去重宏 Co-authored-by: zhoulong50_hw<zhoulong50@huawei.com> # message auto-generated for no-merge-commit merge: !5063 merge proto_fix into master tile_with_axes proto 增加去重宏 Created-by: zhoulong50_hw Commit-by: zhoulong50_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5063 | 29 天前 | |
legacy日落-给一些算子增加InferDataTpye和Tiling日志 Co-authored-by: m0_64999461<xiongpan666@outlook.com> # message auto-generated for no-merge-commit merge: !4712 merge ops-dev into master legacy日落-给一些算子增加InferDataTpye和Tiling日志 Created-by: pan_xiong Commit-by: m0_64999461 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> legacy日落-给一些算子增加InferDataTpye、Infershape打印outputshape和Tiling日志 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2801 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 二级冒烟、本地通路验证完毕 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 暂无文档更新 ## 类型标签 <!-- [x] 表示选中 --> - [X] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4712 | 1 个月前 | |
refactor(tile_with_axis) Co-authored-by: onanfield<tianshang@huawei.com> # message auto-generated for no-merge-commit merge: !3486 merge feat/tile_with_axis into master refactor(tile_with_axis) Created-by: onanfield Commit-by: onanfield Merged-by: cann-robot Description: ## 描述 修复 tilewithaxis算子 检视意见 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3486 | 2 个月前 | |
fix(aicpu): tile_with_axis 析构函数补充 override 修饰(G.CLS.12 残留) Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !5920 merge fix/aicpu-cls12-destructor-override into master fix(aicpu): tile_with_axis 析构函数补充 override 修饰(G.CLS.12 残留) Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 修复 G.CLS.12 告警最后残留 1 处(重写虚函数应显式指定 override): | 告警 | 文件 | 修复 | |---|---|---| | G.CLS.12 | tile_with_axis_aicpu.h | ~TileWithAxisCpuKernel() override = default; | 基类 CpuKernel 析构为 virtual;同类其余 6 处(strided_slice/lin_space/top_k_pq_distance/top_k_v2_d/topk/select_v2)已在最新 master 修复,本提交补齐最后一处。 ## 验证 - override 为纯编译期检查,零代码生成影响;tile_with_axis_aicpu.cpp 语法级编译验证通过; - CI 流水线待跑。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3279 ## 类型 🧹 代码清理 See merge request: cann/ops-math!5920 | 2 天前 | |
add aicpu:tile_with_axis&topkpqdistance Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !4174 merge dev into master add aicpu:tile_with_axis&topkpqdistance Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 新增四个 AI CPU 算子: 1. **tile_with_axis**(conversion):沿指定维度复制输入 Tensor 数据,扩展输出 Tensor。包含 AI Core 和 AI CPU 双实现。 2. **top_k_pq_distance**(math):基于分组极值剪枝的 TopK 距离计算,用于向量检索场景。支持动态多组输入。 3. **top_k_v2_d**(math):沿指定维度找出最大或最小的 k 个元素及其索引,兼容 TensorFlow TopKV2,包含 infershape 实现。 4. **zeta**(math):计算 Hurwitz zeta 函数 ζ(x, q) = Σ(n=0→∞) 1/(q+n)^x。 每个算子包含:op_kernel_aicpu 实现、op_graph 构图定义、examples 示例、UT 单元测试、README 文档。 ## 关联的Issue #2294 ## 测试 根据代码变更,测试场景如下: 1. **tile_with_axis 单元测试 + GE IR 验证** - 执行 bash build.sh -u --opkernel_aicpu --ops=tile_with_axis --soc=ascend910b,17 个 UT 全部通过 - 执行编包 + GE IR 运行,execute samples success,输出 bin 文件正常 2. **top_k_pq_distance 单元测试** - 执行 bash build.sh -u --opkernel_aicpu --ops=top_k_pq_distance --soc=ascend910b,5 个 UT 全部通过 3. **top_k_v2_d 单元测试 + GE IR 验证** - 执行 bash build.sh -u --opkernel_aicpu --ops=top_k_v2_d --soc=ascend910b,UT 全部通过 - 执行编包 + GE IR 运行,验证通过 4. **zeta 单元测试 + GE IR 验证** - 执行 bash build.sh -u --opkernel_aicpu --ops=zeta --soc=ascend910b,8 个 UT 全部通过 - 执行编包 + GE IR 运行,execute samples success,输出 bin 文件正常 ## 文档更新 - 新增 4 个算子 README.md(tile_with_axis、top_k_pq_distance、top_k_v2_d、zeta) - 更新 docs/zh/op_list.md,新增 4 个算子条目 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4174 | 2 个月前 | |
补充4个算子rt2 infershape实现 + 9个算子常量折叠HOSTCPU改造 Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !4821 merge dev into master 补充4个算子rt2 infershape实现 + 9个算子常量折叠HOSTCPU改造 Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 本 PR 包含两部分改动: ### 1. 补充 4 个算子 rt2 infershape 实现 从 canndev 仓迁移 infershape 逻辑到 ops-math,包含 InferShape + InferDataType + InferShapeRange: - **coordinates_1d_to_2d**:rt1 改造为 rt2,3 个输出(row/col/n)的 shape+dtype+range 均来自输入 x - **split_d**:rt2 直接迁移,DYNAMIC_OUTPUT 按 split_dim/num_split 属性计算 shape+range - **slice_write**:rt1 改造为 rt2,输出 shape+dtype+range 来自输入 x,含 x/value dtype 一致性校验 - **calc_buckets_limit_and_offset**:rt1 改造为 rt2,2 个输出 shape+dtype 来自 bucket_list/ivf_offset - 同步迁移 UT 用例(共 8 个),改造为 InfershapeContextPara + ExecuteTestCase 格式 ### 2. 9 个算子常量折叠 HOSTCPU 改造 - CMakeLists.txt 加 HOSTCPU TRUE 参数 - 算子注册宏从 REGISTER_CPU_KERNEL 改为 OPS_MATH_REGISTER_CPU_KERNELV2 - 改造算子:calc_buckets_limit_and_offset、cast、coordinates_1d_to_2d、cumsum、lin_space、slice_write、split_v、topk、tile_with_axis - 编译产出 libopconstant_folding_math.so,strings 验证全部算子符号存在 ## 关联的Issue #2717 ## 测试 ### infershape UT 验证 - 执行 bash build.sh -u --ophost --soc=ascend910b --ops=<op_name> -j16 - 验证条件:exit code == 0 且日志含 [ PASSED ] N tests. - 8 个 UT 用例全部通过(含 dtype 不一致失败用例) ### 常量折叠编译验证 - 执行 bash build.sh --pkg --jit -j16 - 验证 libopconstant_folding_math.so 产出 - strings 验证 9 个算子符号均在 so 中 - RunCpuKernelV2 / GetCpuKernelV2 入口符号存在 ### 文档更新验证 - op_list.md 中 4 个算子 op_host 列 ×→√ - 2 个算子 op_kernel 列 ×→√(coordinates_1d_to_2d、slice_write) ## 文档更新 - docs/zh/op_list.md:更新 coordinates_1d_to_2d、split_d、slice_write、calc_buckets_limit_and_offset 的 op_host/op_kernel 标记 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4821 | 30 天前 | |
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 2 天前 |
TileWithAxis
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | √ |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
-
算子功能:沿指定维度复制输入Tensor数据,扩展输出Tensor。
-
计算示例:
- 输入 x = [[[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10], [11, 12]]],shape = (2, 3, 2)
- axis = 1,tiles = 2
- 输出 y = [[[1, 2], [3, 4], [5, 6], [1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10], [11, 12], [7, 8], [9, 10], [11, 12]]],shape = (2, 6, 2)
-
计算公式: 输出 y 的 shape 与输入 x 相同,仅 axis 维度变为
x.shape[axis] * tiles。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 输入张量 | FLOAT16、FLOAT、INT8、INT16、INT32、INT64、UINT8、UINT16、UINT32、UINT64 | ND |
| axis | 属性(可选) | 指定复制的维度,默认为1 | INT | - |
| tiles | 属性(必选) | 复制次数,必须大于0 | INT | - |
| y | 输出 | 输出张量,与x具有相同的数据类型和格式 | 与x一致 | ND |
约束说明
- axis 必须在输入Tensor的维度范围内(支持负数索引,如 axis=-1 表示最后一维)。
- tiles 必须大于0。
- 输出Tensor在 axis 维度的大小必须等于输入Tensor在 axis 维度的大小乘以 tiles。
- 输入Tensor维度不超过8维。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_tile_with_axis | 通过算子IR构图方式调用TileWithAxis算子。 |