文件最后提交记录最后更新时间
feat(logical_or): 支持arch35平台多数据类型kernel直接计算 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !2930 merge master into master feat(logical_or): 支持arch35平台多数据类型kernel直接计算 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 logical_or算子在arch35(Ascend 950PR/Ascend 950DT)平台上新增INT8、UINT8、INT16、INT32、INT64、FLOAT16、BFLOAT16、FLOAT数据类型的kernel直接计算支持。此前仅BOOL类型可走AiCore kernel,其他类型需先Cast到BOOL再计算。在RegBase平台上,当两个输入类型相同且属于kernel支持的数据类型时,可直接调用kernel计算,减少Cast开销。 ### 改动原因 - 原logical_or算子仅支持BOOL类型走AiCore kernel,非BOOL类型需要先Cast到BOOL再调用BOOL kernel,增加了额外Cast开销 - arch35平台(Ascend 950PR/950DT)具备RegBase能力,可支持多种数据类型的向量计算 ### 改动方法 1. **kernel侧**:新增三种DAG计算模式: - LogicalOrCompute<uint8_t>:BOOL类型专用,直接位OR后输出 - LogicalOrIntegralCompute<T>:整数类型专用,Or→Compare(NE 0)→Select(1/0)→输出BOOL - LogicalOrFloatCompute<T, IntT>:浮点类型专用,使用自定义MicroAPI Op LogicalOrFloatCustom实现位OR+Compare+Select,输出BOOL 2. **tiling侧**:DoOpTiling按dtype分支选择对应DAG模板进行tiling 3. **Host API侧**:aclnn层新增双路径策略——RegBase+同类型+kernel支持类型直接调用kernel;其他情况Cast到BOOL后调用 4. **OpDef/Proto**:扩展输入dtype支持列表,输出统一为BOOL;新增InferDataType强制输出BOOL 5. **binary config**:新增8种dtype的binary配置(ascend950) 6. **l0op层**:AllocTensor输出类型改为DT_BOOL;IsAiCoreSupport在RegBase上支持所有kernel dtype ## 关联的Issue - #1680 ## 测试 - 支持INT8/UINT8/INT16/INT32/INT64/FLOAT16/BF16/FLOAT各数据类型的kernel计算验证 - 验证非RegBase平台仍走BOOL Cast路径 - 验证双输入类型不同时走BOOL Cast路径 - 验证广播场景正确性 ## 文档更新 - 更新README.md:输入dtype列表、各平台支持说明 - 更新aclnn接口文档:out dtype约束、平台限制说明 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!29305 天前
masked_fill等算子下一代实现 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !519 merge local into master masked_fill等算子下一代实现 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 新增以下算子的下一代实现: | 序号 | 名称 | 功能 | |--|--|--| |1| add_n | 将多个输入tensor相加 | |2|axpy_v2|执行标量乘向量加向量的操作| |3|lerp|根据给定的权重,在起始和结束Tensor之间进行线性插值,返回插值后的Tensor| |4|logical_or|完成给定输入张量元素的逻辑或运算| |5|masked_fill|将输入Tensorx中mask位置为True的元素填充指定的值| |6|sub|完成减法计算,被减数按alpha进行缩放| |7|addr|求一维向量vec1和vec2的外积得到一个二维矩阵,并将外积结果矩阵乘一个系数后和自身乘系数相加后输出| |8|square_sum_v1|用于计算输入张量的平方和| |9|is_nan|判断张量中哪些元素是nan| |10|assign_add|完成在原有tensor上的加法操作| |11|assign_sub|完成在原有tensor上的减法操作| |12|invert|按位取反| ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5195 个月前
feat(logical_or): 支持arch35平台多数据类型kernel直接计算 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !2930 merge master into master feat(logical_or): 支持arch35平台多数据类型kernel直接计算 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 logical_or算子在arch35(Ascend 950PR/Ascend 950DT)平台上新增INT8、UINT8、INT16、INT32、INT64、FLOAT16、BFLOAT16、FLOAT数据类型的kernel直接计算支持。此前仅BOOL类型可走AiCore kernel,其他类型需先Cast到BOOL再计算。在RegBase平台上,当两个输入类型相同且属于kernel支持的数据类型时,可直接调用kernel计算,减少Cast开销。 ### 改动原因 - 原logical_or算子仅支持BOOL类型走AiCore kernel,非BOOL类型需要先Cast到BOOL再调用BOOL kernel,增加了额外Cast开销 - arch35平台(Ascend 950PR/950DT)具备RegBase能力,可支持多种数据类型的向量计算 ### 改动方法 1. **kernel侧**:新增三种DAG计算模式: - LogicalOrCompute<uint8_t>:BOOL类型专用,直接位OR后输出 - LogicalOrIntegralCompute<T>:整数类型专用,Or→Compare(NE 0)→Select(1/0)→输出BOOL - LogicalOrFloatCompute<T, IntT>:浮点类型专用,使用自定义MicroAPI Op LogicalOrFloatCustom实现位OR+Compare+Select,输出BOOL 2. **tiling侧**:DoOpTiling按dtype分支选择对应DAG模板进行tiling 3. **Host API侧**:aclnn层新增双路径策略——RegBase+同类型+kernel支持类型直接调用kernel;其他情况Cast到BOOL后调用 4. **OpDef/Proto**:扩展输入dtype支持列表,输出统一为BOOL;新增InferDataType强制输出BOOL 5. **binary config**:新增8种dtype的binary配置(ascend950) 6. **l0op层**:AllocTensor输出类型改为DT_BOOL;IsAiCoreSupport在RegBase上支持所有kernel dtype ## 关联的Issue - #1680 ## 测试 - 支持INT8/UINT8/INT16/INT32/INT64/FLOAT16/BF16/FLOAT各数据类型的kernel计算验证 - 验证非RegBase平台仍走BOOL Cast路径 - 验证双输入类型不同时走BOOL Cast路径 - 验证广播场景正确性 ## 文档更新 - 更新README.md:输入dtype列表、各平台支持说明 - 更新aclnn接口文档:out dtype约束、平台限制说明 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!29305 天前
feat(logical_or): 支持arch35平台多数据类型kernel直接计算 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !2930 merge master into master feat(logical_or): 支持arch35平台多数据类型kernel直接计算 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 logical_or算子在arch35(Ascend 950PR/Ascend 950DT)平台上新增INT8、UINT8、INT16、INT32、INT64、FLOAT16、BFLOAT16、FLOAT数据类型的kernel直接计算支持。此前仅BOOL类型可走AiCore kernel,其他类型需先Cast到BOOL再计算。在RegBase平台上,当两个输入类型相同且属于kernel支持的数据类型时,可直接调用kernel计算,减少Cast开销。 ### 改动原因 - 原logical_or算子仅支持BOOL类型走AiCore kernel,非BOOL类型需要先Cast到BOOL再调用BOOL kernel,增加了额外Cast开销 - arch35平台(Ascend 950PR/950DT)具备RegBase能力,可支持多种数据类型的向量计算 ### 改动方法 1. **kernel侧**:新增三种DAG计算模式: - LogicalOrCompute<uint8_t>:BOOL类型专用,直接位OR后输出 - LogicalOrIntegralCompute<T>:整数类型专用,Or→Compare(NE 0)→Select(1/0)→输出BOOL - LogicalOrFloatCompute<T, IntT>:浮点类型专用,使用自定义MicroAPI Op LogicalOrFloatCustom实现位OR+Compare+Select,输出BOOL 2. **tiling侧**:DoOpTiling按dtype分支选择对应DAG模板进行tiling 3. **Host API侧**:aclnn层新增双路径策略——RegBase+同类型+kernel支持类型直接调用kernel;其他情况Cast到BOOL后调用 4. **OpDef/Proto**:扩展输入dtype支持列表,输出统一为BOOL;新增InferDataType强制输出BOOL 5. **binary config**:新增8种dtype的binary配置(ascend950) 6. **l0op层**:AllocTensor输出类型改为DT_BOOL;IsAiCoreSupport在RegBase上支持所有kernel dtype ## 关联的Issue - #1680 ## 测试 - 支持INT8/UINT8/INT16/INT32/INT64/FLOAT16/BF16/FLOAT各数据类型的kernel计算验证 - 验证非RegBase平台仍走BOOL Cast路径 - 验证双输入类型不同时走BOOL Cast路径 - 验证广播场景正确性 ## 文档更新 - 更新README.md:输入dtype列表、各平台支持说明 - 更新aclnn接口文档:out dtype约束、平台限制说明 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!29305 天前
feat(logical_or): 支持arch35平台多数据类型kernel直接计算 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !2930 merge master into master feat(logical_or): 支持arch35平台多数据类型kernel直接计算 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 logical_or算子在arch35(Ascend 950PR/Ascend 950DT)平台上新增INT8、UINT8、INT16、INT32、INT64、FLOAT16、BFLOAT16、FLOAT数据类型的kernel直接计算支持。此前仅BOOL类型可走AiCore kernel,其他类型需先Cast到BOOL再计算。在RegBase平台上,当两个输入类型相同且属于kernel支持的数据类型时,可直接调用kernel计算,减少Cast开销。 ### 改动原因 - 原logical_or算子仅支持BOOL类型走AiCore kernel,非BOOL类型需要先Cast到BOOL再调用BOOL kernel,增加了额外Cast开销 - arch35平台(Ascend 950PR/950DT)具备RegBase能力,可支持多种数据类型的向量计算 ### 改动方法 1. **kernel侧**:新增三种DAG计算模式: - LogicalOrCompute<uint8_t>:BOOL类型专用,直接位OR后输出 - LogicalOrIntegralCompute<T>:整数类型专用,Or→Compare(NE 0)→Select(1/0)→输出BOOL - LogicalOrFloatCompute<T, IntT>:浮点类型专用,使用自定义MicroAPI Op LogicalOrFloatCustom实现位OR+Compare+Select,输出BOOL 2. **tiling侧**:DoOpTiling按dtype分支选择对应DAG模板进行tiling 3. **Host API侧**:aclnn层新增双路径策略——RegBase+同类型+kernel支持类型直接调用kernel;其他情况Cast到BOOL后调用 4. **OpDef/Proto**:扩展输入dtype支持列表,输出统一为BOOL;新增InferDataType强制输出BOOL 5. **binary config**:新增8种dtype的binary配置(ascend950) 6. **l0op层**:AllocTensor输出类型改为DT_BOOL;IsAiCoreSupport在RegBase上支持所有kernel dtype ## 关联的Issue - #1680 ## 测试 - 支持INT8/UINT8/INT16/INT32/INT64/FLOAT16/BF16/FLOAT各数据类型的kernel计算验证 - 验证非RegBase平台仍走BOOL Cast路径 - 验证双输入类型不同时走BOOL Cast路径 - 验证广播场景正确性 ## 文档更新 - 更新README.md:输入dtype列表、各平台支持说明 - 更新aclnn接口文档:out dtype约束、平台限制说明 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!29305 天前
feat(logical_or): 支持arch35平台多数据类型kernel直接计算 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !2930 merge master into master feat(logical_or): 支持arch35平台多数据类型kernel直接计算 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 logical_or算子在arch35(Ascend 950PR/Ascend 950DT)平台上新增INT8、UINT8、INT16、INT32、INT64、FLOAT16、BFLOAT16、FLOAT数据类型的kernel直接计算支持。此前仅BOOL类型可走AiCore kernel,其他类型需先Cast到BOOL再计算。在RegBase平台上,当两个输入类型相同且属于kernel支持的数据类型时,可直接调用kernel计算,减少Cast开销。 ### 改动原因 - 原logical_or算子仅支持BOOL类型走AiCore kernel,非BOOL类型需要先Cast到BOOL再调用BOOL kernel,增加了额外Cast开销 - arch35平台(Ascend 950PR/950DT)具备RegBase能力,可支持多种数据类型的向量计算 ### 改动方法 1. **kernel侧**:新增三种DAG计算模式: - LogicalOrCompute<uint8_t>:BOOL类型专用,直接位OR后输出 - LogicalOrIntegralCompute<T>:整数类型专用,Or→Compare(NE 0)→Select(1/0)→输出BOOL - LogicalOrFloatCompute<T, IntT>:浮点类型专用,使用自定义MicroAPI Op LogicalOrFloatCustom实现位OR+Compare+Select,输出BOOL 2. **tiling侧**:DoOpTiling按dtype分支选择对应DAG模板进行tiling 3. **Host API侧**:aclnn层新增双路径策略——RegBase+同类型+kernel支持类型直接调用kernel;其他情况Cast到BOOL后调用 4. **OpDef/Proto**:扩展输入dtype支持列表,输出统一为BOOL;新增InferDataType强制输出BOOL 5. **binary config**:新增8种dtype的binary配置(ascend950) 6. **l0op层**:AllocTensor输出类型改为DT_BOOL;IsAiCoreSupport在RegBase上支持所有kernel dtype ## 关联的Issue - #1680 ## 测试 - 支持INT8/UINT8/INT16/INT32/INT64/FLOAT16/BF16/FLOAT各数据类型的kernel计算验证 - 验证非RegBase平台仍走BOOL Cast路径 - 验证双输入类型不同时走BOOL Cast路径 - 验证广播场景正确性 ## 文档更新 - 更新README.md:输入dtype列表、各平台支持说明 - 更新aclnn接口文档:out dtype约束、平台限制说明 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!29305 天前
UT报错解决 Co-authored-by: LuckySun<sunwenlong8@huawei.com> # message auto-generated for no-merge-commit merge: !2738 merge ut into master UT报错解决 Created-by: LuckySun Commit-by: LuckySun Merged-by: cann-robot Description: ## 描述 解决执行ophost的ut时报出的错误 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/1562 ## 测试 全部ophost的ut执行成功 ![image.png](https://raw.gitcode.com/user-images/assets/7649531/54e7a573-4276-4794-9c1e-2bbced5773cd/image.png 'image.png') ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!273818 天前
适配PG short_soc_version Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !2804 merge mc62 into master 适配PG short_soc_version Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 算子适配PG特性,将math仓 mc62cm12a/MC62CM12A 改成 mc62/MC62 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1732 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!28043 天前
docs: 补充 LogicalOr 算子 README 中参数的 broadcast 关系说明 Co-authored-by: wrzwrz123<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !3099 merge master into master docs: 补充 LogicalOr 算子 README 中参数的 broadcast 关系说明 Created-by: hahaha22 Commit-by: wrzwrz123 Merged-by: cann-robot Description: ## 描述 为 LogicalOr 算子 README.md 的参数说明表格补充 broadcast 关系描述: - self 参数:增加"shape需要与other满足broadcast关系"说明及文档链接 - other 参数:增加"shape需要与self满足broadcast关系"说明及文档链接 - out 参数:增加"shape与self、other广播之后的shape一致"说明 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/1824 ## 测试 文档变更,无需测试。 ## 文档更新 更新了 math/logical_or/README.md 中 self、other、out 三个参数的描述,补充了 broadcast 关系说明及输出 shape 推导规则。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!30993 小时前
README.md

LogicalOr

产品支持情况

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

功能说明

算子功能:完成给定输入张量元素的逻辑或运算。当两个输入张量为非bool类型时,0被视为False,非0被视为True。

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
self 输入 待进行logical_or计算的入参。shape需要与other满足broadcast关系 BOOL、INT8、UINT8、INT16、INT32、INT64、FLOAT16、BFLOAT16、FLOAT ND
other 输入 待进行logical_or计算的入参。shape需要与self满足broadcast关系 BOOL、INT8、UINT8、INT16、INT32、INT64、FLOAT16、BFLOAT16、FLOAT ND
out 输出 待进行logical_or计算的出参。shape与self、other广播之后的shape一致。 BOOL ND
  • Ascend 950PR/Ascend 950DT:支持所有数据类型(BOOL、INT8、UINT8、INT16、INT32、INT64、FLOAT16、BFLOAT16、FLOAT)。

  • Atlas A3 训练系列产品/Atlas A3 推理系列产品、Atlas A2 训练系列产品/Atlas A2 推理系列产品、Atlas 推理系列产品、Atlas 训练系列产品:

    • self和other数据类型仅支持BOOL。

约束说明

调用说明

调用方式 调用样例 说明
aclnn调用 test_aclnn_logical_or 通过aclnnLogicalOr接口方式调用LogicalOr算子。
aclnn调用 test_aclnn_inplace_logical_or 通过aclnnInplaceLogicalOr接口方式调用LogicalOr算子。