| Files | Last commit | Last update |
|---|---|---|
rectify examples Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !2972 merge dev_extra into master rectify examples Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 整改 GE IR 用例代码, 修复部分数据类型下GenData逻辑问题。 **主要改动**: 1. 修复命名空间问题: FORMAT_ND → ge::FORMAT_ND 2. 修复宏参数类型:GenOnesData(..., 1) → GenOnesData(..., 1.0) 3. 使用 std::to_string 替代字符串拼接,防止未定义行为 4. 删除冗余宏定义(ADD_INPUT_DOUBLE 等),提高代码可维护性 5. 添加 #include <ctime> 头文件 **涉及算子**: - slice_write - split_d - unpack - cosh - tile ## 关联的Issue #1694 ## 测试 根据代码变更,测试场景如下: 1. **GE IR 编译测试** - 验证整改后的 GE IR 用例能够正确编译 - 检查命名空间修复是否生效 2. **算子功能验证** - slice_write: 执行 GE IR 用例,验证切片写入功能 - split_d: 执行 GE IR 用例,验证张量分割功能 - unpack: 执行 GE IR 用例,验证解包功能 - cosh: 执行 GE IR 用例,验证双曲余弦功能 - tile: 执行 GE IR 用例,验证张量复制功能 3. **二级冒烟测试** - 验证算子包编译成功 - 验证 GE IR 执行成功,输出正确 ## 文档更新 无文档更新,仅整改 GE IR 用例代码 ## 类型标签 - [ ] Bug修复 - [x] 其他,请描述:GE IR 用例整改 See merge request: cann/ops-math!2972 | 5 months ago | |
[fix] 插件归位 Co-authored-by: nextyale<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4626 merge issue2302 into master [fix] 插件归位 Created-by: nextyale Commit-by: nextyale Merged-by: cann-robot Description: ## 描述 迁移算子插件到对应目录 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2302 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 迁移插件 See merge request: cann/ops-math!4626 | 2 months ago | |
增加split_v算子aicpu实现 Co-authored-by: 苏俊伟<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !2275 merge dev into master 增加split_v算子aicpu实现 Created-by: sujunwei3 Commit-by: 苏俊伟 Merged-by: cann-robot Description: ## 描述 新增split_v、split_d算子的AI CPU kernel实现,扩展CANN算子库在AI CPU上的算子支持范围。 ## 关联的Issue #1444 ## 测试 根据代码变更,测试场景如下: 1. **算子构建测试** - 执行 cmake 配置和编译,验证 CMake 配置变更正确 2. **算子加载测试** - 验证 split_d.json 和 split_v.json 接口注册成功 3. **单元测试** - split_v UT: bash build.sh -u --opkernel_aicpu --ops=split_v --soc=ascend910b - split_d UT: bash build.sh -u --opkernel_aicpu --ops=split_d --soc=ascend910b 4. **GE IR验证** - 编包 → 装包 → 执行 GE IR用例流程通过 ## 文档更新 - 新增 conversion/split_d/README.md,说明split_d算子的设计文档 - docs/zh/op_list.md新增split_v, split_d aicpu算子支持说明 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2275 | 6 months ago | |
splitd算子inferdatatype只推导首个动态输出,补齐多输出场景的dtype推导 Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !6775 merge fix/splitd-infer-datatype into master splitd算子inferdatatype只推导首个动态输出,补齐多输出场景的dtype推导 Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 SplitD 算子 RT2 infershape 的 InferDataType4SplitD 回调原先只调用 SetOutputDataType(0, xDtype),仅推导第一个动态输出实例的 dtype。y 为 DYNAMIC_OUTPUT,当 num_split > 1 时其余输出实例的 dtype 不会被推导,在纯 RT2(无 RT1 infershape)调用路径下会造成同一算子多个输出类型不一致。 修复方式:参照 Split/SplitV 已有的同类修复,通过 GetComputeNodeOutputNum() 遍历所有动态输出实例,逐个设置输入 dtype;并补充直接调用 infer_datatype 的多输出 UT 防止回归。 ## 关联的Issue #4183 ## 测试 1. **单元测试**(bash build.sh -u --ophost --ops=split_d --soc=ascend910b) - 新增 split_d_infer_datatype_bf16_multi_output:BF16 输入、num_split=2,断言两个输出均为 DT_BF16; - 新增 split_d_infer_datatype_float_multi_output:FLOAT 输入、num_split=3,断言三个输出均为 DT_FLOAT; - UT 采用 OpInferDataTypeContextBuilder 直接调用 infer_datatype,输出槽初始化为 DT_MAX 哨兵值,未推导的输出会立即断言失败。 2. **反向验证** - 临时恢复旧的单输出实现后,两个新用例 FAILED,证明 UT 能捕获旧缺陷;恢复修复后 5 个用例全部 PASSED。 3. **回归** - 原 3 个 infershape UT 用例(正/负 split_dim、整除性校验)无回归。 ## 文档更新 不涉及 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6775 | 16 days ago | |
fix: correct typo Unsupport -> Unsupported in split_v/split_d/unpack AICPU logs Co-authored-by: Twoliges<202383290096@nuist.edu.cn> # message auto-generated for no-merge-commit merge: !5233 merge fix/issue-2964 into master fix: correct typo Unsupport -> Unsupported in split_v/split_d/unpack AICPU logs Created-by: Twoliges Commit-by: Twoliges Merged-by: cann-robot Description: ## 描述 修复 split_v、split_d、unpack 三个算子的 AICPU 实现中 dtype 不支持日志的拼写错误:将 Unsupport 修正为 Unsupported。 ### 修改文件 - conversion/split_v/op_kernel_aicpu/split_v_aicpu.cpp:第 292 行 - conversion/split_d/op_kernel_aicpu/split_d_aicpu.cpp:第 205 行 - conversion/unpack/op_kernel_aicpu/unpack_aicpu.cpp:第 223 行 共 3 个文件,3 处修正。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2964 ## 测试 - [x] 代码审查:仅修改日志文案字符串,无逻辑变更 - [ ] 二级冒烟测试 - [ ] 算子泛化测试 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5233 | 2 months ago | |
splitd算子inferdatatype只推导首个动态输出,补齐多输出场景的dtype推导 Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !6775 merge fix/splitd-infer-datatype into master splitd算子inferdatatype只推导首个动态输出,补齐多输出场景的dtype推导 Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 SplitD 算子 RT2 infershape 的 InferDataType4SplitD 回调原先只调用 SetOutputDataType(0, xDtype),仅推导第一个动态输出实例的 dtype。y 为 DYNAMIC_OUTPUT,当 num_split > 1 时其余输出实例的 dtype 不会被推导,在纯 RT2(无 RT1 infershape)调用路径下会造成同一算子多个输出类型不一致。 修复方式:参照 Split/SplitV 已有的同类修复,通过 GetComputeNodeOutputNum() 遍历所有动态输出实例,逐个设置输入 dtype;并补充直接调用 infer_datatype 的多输出 UT 防止回归。 ## 关联的Issue #4183 ## 测试 1. **单元测试**(bash build.sh -u --ophost --ops=split_d --soc=ascend910b) - 新增 split_d_infer_datatype_bf16_multi_output:BF16 输入、num_split=2,断言两个输出均为 DT_BF16; - 新增 split_d_infer_datatype_float_multi_output:FLOAT 输入、num_split=3,断言三个输出均为 DT_FLOAT; - UT 采用 OpInferDataTypeContextBuilder 直接调用 infer_datatype,输出槽初始化为 DT_MAX 哨兵值,未推导的输出会立即断言失败。 2. **反向验证** - 临时恢复旧的单输出实现后,两个新用例 FAILED,证明 UT 能捕获旧缺陷;恢复修复后 5 个用例全部 PASSED。 3. **回归** - 原 3 个 infershape UT 用例(正/负 split_dim、整除性校验)无回归。 ## 文档更新 不涉及 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6775 | 16 days ago | |
增加split_v算子aicpu实现 Co-authored-by: 苏俊伟<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !2275 merge dev into master 增加split_v算子aicpu实现 Created-by: sujunwei3 Commit-by: 苏俊伟 Merged-by: cann-robot Description: ## 描述 新增split_v、split_d算子的AI CPU kernel实现,扩展CANN算子库在AI CPU上的算子支持范围。 ## 关联的Issue #1444 ## 测试 根据代码变更,测试场景如下: 1. **算子构建测试** - 执行 cmake 配置和编译,验证 CMake 配置变更正确 2. **算子加载测试** - 验证 split_d.json 和 split_v.json 接口注册成功 3. **单元测试** - split_v UT: bash build.sh -u --opkernel_aicpu --ops=split_v --soc=ascend910b - split_d UT: bash build.sh -u --opkernel_aicpu --ops=split_d --soc=ascend910b 4. **GE IR验证** - 编包 → 装包 → 执行 GE IR用例流程通过 ## 文档更新 - 新增 conversion/split_d/README.md,说明split_d算子的设计文档 - docs/zh/op_list.md新增split_v, split_d aicpu算子支持说明 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2275 | 6 months ago | |
产品名变更 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 | 1 month ago |
SplitD
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | √ |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
- 算子功能:将张量沿指定维度split_dim平均拆分为num_split份更小的张量。与Split算子不同,split_dim作为属性而非输入提供。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 需要切分的tensor。 | FLOAT16、FLOAT、DOUBLE、INT8、INT16、INT32、INT64、UINT8、UINT16、UINT32、UINT64、BOOL | ND |
| split_dim | 属性 | 指定沿其分割的维度。 | INT | - |
| num_split | 属性 | 指定要分割的tensor个数。 | INT | - |
| y | 输出 | 输出结果,动态输出,输出个数由num_split决定。 | FLOAT16、FLOAT、DOUBLE、INT8、INT16、INT32、INT64、UINT8、UINT16、UINT32、UINT64、BOOL | ND |
约束说明
- split_dim必须在[0, value维度数)范围内,若为负数则从末尾开始计数
- value在split_dim维度上的大小必须能被num_split整除
- num_split必须大于等于1
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| 图模式接口 | test_geir_split_d | 通过算子IR接口方式调用SplitD算子。 |