| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
BlockScheduler & BlockMmad 重构 Co-authored-by: 林旭<linxu5@huawei.com> # message auto-generated for no-merge-commit merge: !92 merge fix-sch-2 into master BlockScheduler & BlockMmad 重构 Created-by: LINxu233 Commit-by: 林旭 Merged-by: cann-robot Description: ## 描述 1、修改scheduler params 定义和使用,同步修改init接口,只传入params和shape 2、修改blockMmad params定义和使用,同步修改init接口,只传入params和shape 3、移除scheduler无用接口和成员变量,整改public\private,部分变量调整为私有变量 4、AscendC::LOA_SIZE类似的ai_core only的函数整改,放到aicore函数内部 5、AuxGetL0C整改为C0_Element函数,AscendC::Te作用域。 6、Mmad的operator超大函数重构为CopyGm2L1,CopyL12L0,Compute三个小接口; 详细说明: 本次 PR 对 BlockScheduler 和 BlockMmad 两大核心组件进行了系统性重构,涉及 Basic 和 StreamK 两种矩阵乘调度策略。 重构的核心方向是将公共常量/工具集中到 common_utils.h,简化 BlockScheduler 的模板参数与调用接口, 同时增强 BlockMmad 的计算管线能力(如 L0C ping-pong 双缓冲、Bias 支持)以及引入更灵活的分派策略模板参数。 变更共涉及 31 个文件,整体代码行数净减少约 74 行。 主要改动 BlockScheduler 接口精简:BlockSchedulerMatmulBasic 移除了部分冗余模板参数, 删除了原有的 isFp32_、isNdFormat_ 特化相关的 GetBlockShape 重载,统一由单一接口返回六元组 BlockL1L0Shape(含 mL0/nL0); BlockSchedulerMatmulStreamK 同步精简,移除未使用的 K 切分遗留代码,最终调度逻辑更清晰。 BlockMmad 计算管线增强:BlockMmadMatmulBasic 新增 L0C ping-pong 双缓冲机制(enableL0cPingPong_、l0cPingPong_), Bias 搬运路径增加 btBufId 参数以适配 L0C 双缓冲场景; BlockMmadMatmulStreamK 重构为完整的 CopyL1FromGM → CopyL0FromL1 → Compute 三段式管线, 支持 SK 场景下的 workspace 输出和 Bias 处理,代码结构更加模块化。 分派策略模板扩展:MatmulMultiBlockBasic 新增模板参数 KernelSchedule_(默认 KernelMmadMultiBlockBasic), 使得同一套 Basic 模板可被 KernelMmadMultiBlockBmmBroadcast 等不同调度类型复用,消除批处理广播场景对独立调度策略的依赖。 公共常量集中管理:common_utils.h 新增 DIMENSION_M/N/K、ZERO_FLAG~SEVENTH_FLAG、 FINAL_ACCUMULATION/NON_FINAL_ACCUMULATION、C0_SIZE_fp16/fp32/B8/B4/L0C 等常量, 原先分散在各 mmad 实现文件中的魔数被统一收拢,减少重复定义。 Kernel 层适配:kernel_matmul_basic.h 与 kernel_matmul_streamk.h 均适配了新的 Scheduler/Mmad 接口签名, Basic 路径使用 TupleL1L0Shape 六元组调度,StreamK 路径围绕新的 GetSingleCoreShape/GetSingleCoreCoord/GetCurKSingleCore/CheckIsSkScene 接口重构了 Tile 迭代与 AIC/AIV 同步逻辑。 ## 关联的Issue https://gitcode.com/cann/ops-tensor/issues/10 ## 测试 1、测试MM用例 basic、streamK模板 2、测试BMM用例 ## 文档更新 已更新 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!92 | 5 天前 | |
fix namespace loss Co-authored-by: zhangtianrong<zhangtianrong@h-partners.com> # message auto-generated for no-merge-commit merge: !96 merge namespace_refactor into master fix namespace loss Created-by: zhangtianrong Commit-by: zhangtianrong Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1、修复因上层仓库引用导致的本仓namespcae缺失而无法自编译 2、uint64 to int64,编译告警清理 3、命名规范,ml1 -> mL1 4、ut框架优化,并补充一个fp32 多核streamk matmul用例 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-tensor/issues/53 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-tensor!96 | 13 小时前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 天前 | ||
| 13 小时前 |