| Files | Last commit | Last update |
|---|---|---|
[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 | 2 months ago | |
迁移开源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 | 3 months ago | |
[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 | 2 months ago | |
Math仓算子适配Ascend350平台 Co-authored-by: huairuchen<chenhuairu@huawei.com> # message auto-generated for no-merge-commit merge: !6372 merge dvlite-math-350-adapt into master Math仓算子适配Ascend350平台 Created-by: huairuchen Commit-by: huairuchen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Math仓部分随机数算子在350平台进行适配 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4202 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 算子泛化测试,冒烟测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6372 | 16 days ago | |
[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 | 2 months ago | |
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 | 2 months ago | |
[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 | 2 months ago | |
Math仓算子适配Ascend350平台 Co-authored-by: huairuchen<chenhuairu@huawei.com> # message auto-generated for no-merge-commit merge: !6372 merge dvlite-math-350-adapt into master Math仓算子适配Ascend350平台 Created-by: huairuchen Commit-by: huairuchen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Math仓部分随机数算子在350平台进行适配 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4202 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 算子泛化测试,冒烟测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6372 | 16 days ago | |
文档里产品名统一化+规范化修改 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !7136 merge master into master 文档里产品名统一化+规范化修改 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 文档里产品名统一化+规范化修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7136 | 9 days ago | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !7113 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第二批,共409个文件):第一批(已合入)之外的其余全部译稿,覆盖conversion、examples、ge、math、random各类算子README译稿,以及CHANGELOG_en.md、.gitcode PR模板英文版等。 本批内全部仓内链接均指向master已有文件(含第一批已合入的21+2篇译稿),合入后本仓432篇英文文档全部就位,链接完整生效。 本批同时包含4篇基于最新源文档的增量更新(math/ada_cast、math/prod_force_se_a、math/sinkhorn、math/xlogy,对应上游近期文档变更)。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验(本批全部相对链接仅指向master已有文件,无指向本PR外未提交文件的链接),并完成逐篇翻译规范自查与语义校对(含支持状态表、限定词、术语、数值符号核对)。 ## 文档更新 新增409个英文译稿文件(*_en.md / .en-US.md),不修改任何现有文件。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7113 | 9 days ago |
InvGrad
English | 简体中文
Product Support Status
| Product | Supported |
|---|---|
| Ascend 950PR&950DT products | √ |
| Atlas A3 products | √ |
| Atlas A2 products | √ |
| Atlas 200I/500 A2 inference products | √ |
| Atlas inference products | √ |
| Atlas training products | √ |
Function Description
-
Operator function: computes the backward gradient of the Inv (reciprocal) operator, corresponding to the gradient computation of the forward
y = 1 / original_x. -
Operator formula:
yi=−1⋅xi⋅xi⋅gradiy_i = -1 \cdot x_i \cdot x_i \cdot grad_i yi=−1⋅xi⋅xi⋅gradi
where:
- xix_ixi is the output of the forward Inv operator (that is, 1/original_xi1 / \mathrm{original\_x}_i1/original_xi);
- gradigrad_igradi is the gradient passed from upstream;
- yiy_iyi is the gradient of the original input original_xi\mathrm{original\_x}_ioriginal_xi.
Parameter Description
| Parameter Name | Input/Output/Attribute | Description | Data Type | Data Format |
|---|---|---|---|---|
| x | Input | Input tensor. | FLOAT16, FLOAT32, BFLOAT16, INT32, INT8 | ND |
| grad | Input | Corresponding input gradient. | FLOAT16, FLOAT32, BFLOAT16, INT32, INT8 | ND |
| y | Output | Derivative gradient of the input tensor x | FLOAT16, FLOAT32, BFLOAT16, INT32, INT8 | ND |
Constraint Description
None
Invocation Description
| Invocation Method | Sample Code | Description |
|---|---|---|
| Graph-mode invocation | test_geir_inv_grad | Invokes the inv_grad operator by building a graph through the operator IR. |