文件最后提交记录最后更新时间
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!29306 天前
refactor: 消除 math 算子重复头文件依赖(下),统一引用 base 仓 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !2980 merge math_tiling into master refactor: 消除 math 算子重复头文件依赖(下),统一引用 base 仓 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 消除 math 目录下后半段(ger ~ zero_op)共 89 个算子的重复头文件依赖,将 tiling 基类和模板注册引用统一到 base 仓。本 PR 与 #2969 共同覆盖全部 math 算子。 ### 改动原因 与 #2969 一致,剩余 math 算子(ger 起)各自直接引用旧头文件并存在全局命名空间引入: - tiling_base.h 中 TilingBaseClass 已在 base 仓提取为 tiling_base_class.h - tiling_templates_registry.h 中 math 注册宏已拆分到 math_tiling_templates_registry.h - using namespace Ops::Math::OpTiling 引入全局命名空间,存在符号冲突风险 ### 改动方法 批量更新 math 算子文件的 #include 及命名空间引用: - tiling_base.h -> tiling_base_class.h - tiling_templates_registry.h -> math_tiling_templates_registry.h - 移除 using namespace Ops::Math::OpTiling - TilingBaseClass -> Ops::Base::TilingBaseClass - TilingRegistry::GetInstance() -> Ops::Math::OpTiling::TilingRegistry::GetInstance() ## 关联的Issue - #1685 ## 测试 - 涉及的 math 算子二级冒烟测试已通过 ## 文档更新 无文档变更 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构,消除重复头文件依赖 See merge request: cann/ops-math!29807 天前