文件最后提交记录最后更新时间
[CANNBOT]inv适配Ascend950 Ascendc实现 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !3031 merge inv-ascend950-int32 into master [CANNBOT]inv适配Ascend950 Ascendc实现 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ;wangweidong Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 逐元素倒数 y = 1 / x ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1729 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> OBP冒烟:22433 二级冒烟:5952 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!30312 天前
[CANNBOT]inv适配Ascend950 Ascendc实现 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !3031 merge inv-ascend950-int32 into master [CANNBOT]inv适配Ascend950 Ascendc实现 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ;wangweidong Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 逐元素倒数 y = 1 / x ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1729 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> OBP冒烟:22433 二级冒烟:5952 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!30312 天前
[CANNBOT]inv适配Ascend950 Ascendc实现 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !3031 merge inv-ascend950-int32 into master [CANNBOT]inv适配Ascend950 Ascendc实现 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ;wangweidong Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 逐元素倒数 y = 1 / x ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1729 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> OBP冒烟:22433 二级冒烟:5952 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!30312 天前
[CANNBOT]inv适配Ascend950 Ascendc实现 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !3031 merge inv-ascend950-int32 into master [CANNBOT]inv适配Ascend950 Ascendc实现 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ;wangweidong Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 逐元素倒数 y = 1 / x ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1729 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> OBP冒烟:22433 二级冒烟:5952 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!30312 天前
[CANNBOT]inv适配Ascend950 Ascendc实现 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !3031 merge inv-ascend950-int32 into master [CANNBOT]inv适配Ascend950 Ascendc实现 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ;wangweidong Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 逐元素倒数 y = 1 / x ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1729 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> OBP冒烟:22433 二级冒烟:5952 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!30312 天前
[CANNBOT]inv适配Ascend950 Ascendc实现 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !3031 merge inv-ascend950-int32 into master [CANNBOT]inv适配Ascend950 Ascendc实现 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ;wangweidong Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 逐元素倒数 y = 1 / x ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1729 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> OBP冒烟:22433 二级冒烟:5952 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!30312 天前
[CANNBOT]inv适配Ascend950 Ascendc实现 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !3031 merge inv-ascend950-int32 into master [CANNBOT]inv适配Ascend950 Ascendc实现 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ;wangweidong Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 逐元素倒数 y = 1 / x ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1729 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> OBP冒烟:22433 二级冒烟:5952 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!30312 天前
README.md

Inv

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas 200I/500 A2 推理产品 ×
Atlas 推理系列产品
Atlas 训练系列产品

功能说明

  • 算子功能:对输入张量的每个元素逐元素计算倒数。

  • 计算公式:

outi=1selfiout_{i}=\frac{1}{self_{i}}

  • 浮点(FLOAT、FLOAT16、BFLOAT16)按 IEEE-754 真值倒数计算(除零得 ±Inf\pm\text{Inf}±Inf\pm\text{Inf}±0\pm0、NaN 得 NaN)。

  • INT32 按截断向零的整数倒数计算,整型下 1/self1/self 仅当 ∣self∣=1|self|=1 时非零,等价为三值映射:

outi={+1selfi=+1−1selfi=−10其他(含 selfi=0、∣selfi∣≥2、INT_MIN、INT_MAX)out_{i}= \begin{cases} +1 & self_{i}=+1 \\ -1 & self_{i}=-1 \\ 0 & \text{其他(含 } self_{i}=0、|self_{i}|\ge 2、\text{INT\_MIN}、\text{INT\_MAX)} \end{cases}

其中 selfi=0self_{i}=0 映射为 00 且不抛异常,INT_MIN(−2147483648)\text{INT\_MIN}(-2147483648)INT_MAX(2147483647)\text{INT\_MAX}(2147483647) 均映射为 00 且不溢出。

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
self 输入 待进行inv计算的入参,公式中的self。支持空Tensor、非连续Tensor,shape维度0-8。 FLOAT、FLOAT16、BFLOAT16、INT32 ND
out 输出 待进行inv计算的出参,公式中的out。shape和数据类型与self一致。 FLOAT、FLOAT16、BFLOAT16、INT32 ND

约束说明

  • self 与 out 必须 shape、dtype 相同,逐元素计算,无广播。
  • 浮点路径精度按社区标准:FLOAT rtol/atol = 1e-4,FLOAT16 = 1e-3,BFLOAT16 = 4e-3。
  • INT32 路径为精确匹配(bitwise,rtol = atol = 0),采用纯整型比较 + 选择实现三值映射,不经float32中转、不对INT_MIN取负,故INT_MIN/INT_MAX不溢出、self = 0不抛异常。

调用说明

调用方式 说明
图模式调用 通过算子IR构图方式调用Inv算子。样例参见test_geir_inv