| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[CANNBot]: InvGrad 增加原型宏保护并整改 def 驱动 dtype Co-authored-by: zhongheng<m202474569@hust.edu.cn> # message auto-generated for no-merge-commit merge: !4612 merge codex/inv-grad-transfer-test-fixes into master [CANNBot]: InvGrad 增加原型宏保护并整改 def 驱动 dtype Created-by: zhongheng Commit-by: zhongheng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次修改完成 InvGrad 的原型宏保护和 Ascend950 def 驱动 dtype 整改。 主要改动如下: 1. 在 inv_grad_proto.h 中使用 OPS_PROTO_DEF_INVGRAD 包围 REG_OP(InvGrad),满足新的算子原型重复定义兼容规则。 2. 删除 Kernel 侧的 dtype Tiling 模板参数声明和选择逻辑。 3. 删除 Host Tiling 中的 ASCENDC_TPL_SEL_PARAM 调用。 4. Kernel 入口改用构建系统根据 inv_grad_def.cpp 注入的 DTYPE_X。 5. 更新 Host Tiling UT,不再依赖 dtype TilingKey 的框架编码值,改为直接校验 TilingData。 6. 完善 GEIR 转测用例: - 静态场景覆盖 FP32、FP16、BF16、INT32 和空 Tensor; - 动态 Shape [-1,-1] 覆盖多组具体 Shape; - 增加动态 Rank [-2] 诊断场景; - 抽取公共的 Tensor 构造及 Shape、dtype、数值校验逻辑。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2607 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 已完成以下验证: - Host UT:23/23 PASS - Tiling UT:16/16 - InferShape UT:7/7 - Ascend950 Kernel 构建:PASS - FP32、FP16、BF16、INT32 共生成 4 个 Kernel 对象 - 完整安装包构建及隔离安装:PASS - libcust_opmaster_rt2.0.so 依赖检查:PASS - TTK dtype/空 Tensor:5/5 PASS - TTK边界用例:8/8 PASS - TTK有效用例合计:13/13 PASS - 所有 TTK 用例动态 TilingKey 均为 0 - GEIR静态场景:5/5 PASS - GEIR动态 Shape [-1,-1]:3/3 PASS - 冒烟通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4612 | 1 个月前 | |
迁移开源TF插件--math Co-authored-by: yaochen<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4308 merge transfer-math into master 迁移开源TF插件--math Created-by: nextyale Commit-by: yaochen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:迁移TF插件 See merge request: cann/ops-math!4308 | 2 个月前 | |
[CANNBot]: InvGrad 增加原型宏保护并整改 def 驱动 dtype Co-authored-by: zhongheng<m202474569@hust.edu.cn> # message auto-generated for no-merge-commit merge: !4612 merge codex/inv-grad-transfer-test-fixes into master [CANNBot]: InvGrad 增加原型宏保护并整改 def 驱动 dtype Created-by: zhongheng Commit-by: zhongheng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次修改完成 InvGrad 的原型宏保护和 Ascend950 def 驱动 dtype 整改。 主要改动如下: 1. 在 inv_grad_proto.h 中使用 OPS_PROTO_DEF_INVGRAD 包围 REG_OP(InvGrad),满足新的算子原型重复定义兼容规则。 2. 删除 Kernel 侧的 dtype Tiling 模板参数声明和选择逻辑。 3. 删除 Host Tiling 中的 ASCENDC_TPL_SEL_PARAM 调用。 4. Kernel 入口改用构建系统根据 inv_grad_def.cpp 注入的 DTYPE_X。 5. 更新 Host Tiling UT,不再依赖 dtype TilingKey 的框架编码值,改为直接校验 TilingData。 6. 完善 GEIR 转测用例: - 静态场景覆盖 FP32、FP16、BF16、INT32 和空 Tensor; - 动态 Shape [-1,-1] 覆盖多组具体 Shape; - 增加动态 Rank [-2] 诊断场景; - 抽取公共的 Tensor 构造及 Shape、dtype、数值校验逻辑。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2607 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 已完成以下验证: - Host UT:23/23 PASS - Tiling UT:16/16 - InferShape UT:7/7 - Ascend950 Kernel 构建:PASS - FP32、FP16、BF16、INT32 共生成 4 个 Kernel 对象 - 完整安装包构建及隔离安装:PASS - libcust_opmaster_rt2.0.so 依赖检查:PASS - TTK dtype/空 Tensor:5/5 PASS - TTK边界用例:8/8 PASS - TTK有效用例合计:13/13 PASS - 所有 TTK 用例动态 TilingKey 均为 0 - GEIR静态场景:5/5 PASS - GEIR动态 Shape [-1,-1]:3/3 PASS - 冒烟通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4612 | 1 个月前 | |
legacy下线:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan新增tiling/infer调试日志+op_graph InferDataType迁移 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !4498 merge master into master legacy下线:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan新增tiling/infer调试日志+op_graph InferDataType迁移 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 Legacy包下线整改:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan 5个算子新增tiling/infer调试日志,补充spence op_graph InferDataType迁移。 ## 变更内容 - tiling入口新增OP_LOGD锚点日志,TilingData新增OP_LOGI日志 - InferShape新增OP_LOGI输出日志 - 补充spence_graph_infer.cpp(InferDataType迁移到op_graph,IMPL_OP注册) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 测试 <!-- 描述您如何测试这些更改。--> ## 文档更新 <!-- 如果有文档更新,请在这里描述。--> ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-math!4498 | 1 个月前 | |
[CANNBot]: InvGrad 增加原型宏保护并整改 def 驱动 dtype Co-authored-by: zhongheng<m202474569@hust.edu.cn> # message auto-generated for no-merge-commit merge: !4612 merge codex/inv-grad-transfer-test-fixes into master [CANNBot]: InvGrad 增加原型宏保护并整改 def 驱动 dtype Created-by: zhongheng Commit-by: zhongheng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次修改完成 InvGrad 的原型宏保护和 Ascend950 def 驱动 dtype 整改。 主要改动如下: 1. 在 inv_grad_proto.h 中使用 OPS_PROTO_DEF_INVGRAD 包围 REG_OP(InvGrad),满足新的算子原型重复定义兼容规则。 2. 删除 Kernel 侧的 dtype Tiling 模板参数声明和选择逻辑。 3. 删除 Host Tiling 中的 ASCENDC_TPL_SEL_PARAM 调用。 4. Kernel 入口改用构建系统根据 inv_grad_def.cpp 注入的 DTYPE_X。 5. 更新 Host Tiling UT,不再依赖 dtype TilingKey 的框架编码值,改为直接校验 TilingData。 6. 完善 GEIR 转测用例: - 静态场景覆盖 FP32、FP16、BF16、INT32 和空 Tensor; - 动态 Shape [-1,-1] 覆盖多组具体 Shape; - 增加动态 Rank [-2] 诊断场景; - 抽取公共的 Tensor 构造及 Shape、dtype、数值校验逻辑。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2607 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 已完成以下验证: - Host UT:23/23 PASS - Tiling UT:16/16 - InferShape UT:7/7 - Ascend950 Kernel 构建:PASS - FP32、FP16、BF16、INT32 共生成 4 个 Kernel 对象 - 完整安装包构建及隔离安装:PASS - libcust_opmaster_rt2.0.so 依赖检查:PASS - TTK dtype/空 Tensor:5/5 PASS - TTK边界用例:8/8 PASS - TTK有效用例合计:13/13 PASS - 所有 TTK 用例动态 TilingKey 均为 0 - GEIR静态场景:5/5 PASS - GEIR动态 Shape [-1,-1]:3/3 PASS - 冒烟通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4612 | 1 个月前 | |
feat: Equal/InvGrad/Mul/RealDiv/ReduceMean/RightShift 使能 AICPU 常量折叠 Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !4965 merge enable-aicpu-const-folding into master feat: Equal/InvGrad/Mul/RealDiv/ReduceMean/RightShift 使能 AICPU 常量折叠 Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 为 Equal、InvGrad、Mul、RealDiv、ReduceMean 和 RightShift 使能 AICPU 常量折叠: 1. 在 6 个算子的 CMakeLists.txt 中增加 HOSTCPU TRUE,将 AICPU kernel 纳入 HostCPU 构建。 2. 引入 aicpu/math_aicpu_register.h,将原有 REGISTER_CPU_KERNEL 注册切换为 OPS_MATH_REGISTER_CPU_KERNELV2。 3. 保持现有计算实现、数据类型范围和硬件支持范围不变;RealDiv 继续同时注册 RealDiv 与 Div。 ## 关联的Issue 关联Issue #2807 ## 测试 建议按以下场景验证本次变更: 1. **编译构建测试**:执行 CMake 配置并编译 6 个算子,确认 HOSTCPU TRUE 配置及 V2 注册宏编译、链接正常。 2. **注册加载验证**:确认 Equal、InvGrad、Mul、RealDiv、Div、ReduceMean 和 RightShift 的 HostCPU kernel 均可被正确发现和加载。 3. **常量折叠功能测试**:为每个算子构造常量输入,确认编译阶段生成的折叠结果与直接执行 AICPU kernel 的结果一致。 4. **数据类型与 shape 覆盖**:覆盖各算子已有的代表性数据类型、标量/张量输入、广播或属性组合。 5. **异常场景测试**:验证非法数据类型、shape 或属性仍按原有逻辑返回错误。 6. **回归测试**:确认非恒定输入仍走原有运行时执行路径,且不同 SUPPORT_COMPUTE_UNIT 下的构建行为不变。 > 以上为根据代码变更推导的测试场景,未代替实际测试结果;请由提交者补充二级冒烟、算子泛化及执行结果。 ## 文档更新 无。此次仅调整构建配置和 AICPU kernel 注册方式,不涉及算子用户文档或接口变更。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4965 | 1 个月前 | |
[CANNBot]: InvGrad 增加原型宏保护并整改 def 驱动 dtype Co-authored-by: zhongheng<m202474569@hust.edu.cn> # message auto-generated for no-merge-commit merge: !4612 merge codex/inv-grad-transfer-test-fixes into master [CANNBot]: InvGrad 增加原型宏保护并整改 def 驱动 dtype Created-by: zhongheng Commit-by: zhongheng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次修改完成 InvGrad 的原型宏保护和 Ascend950 def 驱动 dtype 整改。 主要改动如下: 1. 在 inv_grad_proto.h 中使用 OPS_PROTO_DEF_INVGRAD 包围 REG_OP(InvGrad),满足新的算子原型重复定义兼容规则。 2. 删除 Kernel 侧的 dtype Tiling 模板参数声明和选择逻辑。 3. 删除 Host Tiling 中的 ASCENDC_TPL_SEL_PARAM 调用。 4. Kernel 入口改用构建系统根据 inv_grad_def.cpp 注入的 DTYPE_X。 5. 更新 Host Tiling UT,不再依赖 dtype TilingKey 的框架编码值,改为直接校验 TilingData。 6. 完善 GEIR 转测用例: - 静态场景覆盖 FP32、FP16、BF16、INT32 和空 Tensor; - 动态 Shape [-1,-1] 覆盖多组具体 Shape; - 增加动态 Rank [-2] 诊断场景; - 抽取公共的 Tensor 构造及 Shape、dtype、数值校验逻辑。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2607 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 已完成以下验证: - Host UT:23/23 PASS - Tiling UT:16/16 - InferShape UT:7/7 - Ascend950 Kernel 构建:PASS - FP32、FP16、BF16、INT32 共生成 4 个 Kernel 对象 - 完整安装包构建及隔离安装:PASS - libcust_opmaster_rt2.0.so 依赖检查:PASS - TTK dtype/空 Tensor:5/5 PASS - TTK边界用例:8/8 PASS - TTK有效用例合计:13/13 PASS - 所有 TTK 用例动态 TilingKey 均为 0 - GEIR静态场景:5/5 PASS - GEIR动态 Shape [-1,-1]:3/3 PASS - 冒烟通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4612 | 1 个月前 | |
feat: Equal/InvGrad/Mul/RealDiv/ReduceMean/RightShift 使能 AICPU 常量折叠 Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !4965 merge enable-aicpu-const-folding into master feat: Equal/InvGrad/Mul/RealDiv/ReduceMean/RightShift 使能 AICPU 常量折叠 Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 为 Equal、InvGrad、Mul、RealDiv、ReduceMean 和 RightShift 使能 AICPU 常量折叠: 1. 在 6 个算子的 CMakeLists.txt 中增加 HOSTCPU TRUE,将 AICPU kernel 纳入 HostCPU 构建。 2. 引入 aicpu/math_aicpu_register.h,将原有 REGISTER_CPU_KERNEL 注册切换为 OPS_MATH_REGISTER_CPU_KERNELV2。 3. 保持现有计算实现、数据类型范围和硬件支持范围不变;RealDiv 继续同时注册 RealDiv 与 Div。 ## 关联的Issue 关联Issue #2807 ## 测试 建议按以下场景验证本次变更: 1. **编译构建测试**:执行 CMake 配置并编译 6 个算子,确认 HOSTCPU TRUE 配置及 V2 注册宏编译、链接正常。 2. **注册加载验证**:确认 Equal、InvGrad、Mul、RealDiv、Div、ReduceMean 和 RightShift 的 HostCPU kernel 均可被正确发现和加载。 3. **常量折叠功能测试**:为每个算子构造常量输入,确认编译阶段生成的折叠结果与直接执行 AICPU kernel 的结果一致。 4. **数据类型与 shape 覆盖**:覆盖各算子已有的代表性数据类型、标量/张量输入、广播或属性组合。 5. **异常场景测试**:验证非法数据类型、shape 或属性仍按原有逻辑返回错误。 6. **回归测试**:确认非恒定输入仍走原有运行时执行路径,且不同 SUPPORT_COMPUTE_UNIT 下的构建行为不变。 > 以上为根据代码变更推导的测试场景,未代替实际测试结果;请由提交者补充二级冒烟、算子泛化及执行结果。 ## 文档更新 无。此次仅调整构建配置和 AICPU kernel 注册方式,不涉及算子用户文档或接口变更。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4965 | 1 个月前 | |
产品名变更 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 | 22 天前 |
InvGrad
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | √ |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
-
算子功能:计算Inv(取倒数)算子的反向梯度,对应前向
y = 1 / original_x的梯度计算。 -
算子公式:
yi=−1⋅xi⋅xi⋅gradiy_i = -1 \cdot x_i \cdot x_i \cdot grad_i yi=−1⋅xi⋅xi⋅gradi
其中:
- xix_ixi 为前向Inv算子的输出(即 1/original_xi1 / \mathrm{original\_x}_i1/original_xi);
- gradigrad_igradi 为上游传入的梯度;
- yiy_iyi 为对原始输入 original_xi\mathrm{original\_x}_ioriginal_xi 的梯度。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 输入张量。 | FLOAT16, FLOAT32, BFLOAT16, INT32, INT8 | ND |
| grad | 输入 | 对应的输入梯度。 | FLOAT16, FLOAT32, BFLOAT16, INT32, INT8 | ND |
| y | 输出 | 输入张量x的导数梯度 | FLOAT16, FLOAT32, BFLOAT16, INT32, INT8 | ND |
约束说明
无
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_inv_grad | 通过算子IR构图方式调用inv_grad算子。 |