文件最后提交记录最后更新时间
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 天前
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 个月前