GMMAQ Ascend950 arch35 tiling 在确定 baseM 后,需要保证 epilogue 双缓冲所需的中间结果、量化结果和 scale 缓冲区能够同时放入 UB。
baseM
现有基础分块计算无法根据 epilogue 双缓冲的完整 UB 字节占用动态调整 baseM。当目标 shape 的 epilogue 缓冲需求超过 UB 容量时,需要选择合适的分块尺寸以满足双缓冲空间要求。
根据实际 UB 容量适配 epilogue 双缓冲,提升目标 shape 的 tiling 适配能力,并避免因 UB 空间不足导致运行时资源约束问题。
同时限制调整后的平均分块数量不增加,尽量保持原有分块效率。
baseN
ceil(baseM / 2)
aicoreParams_.ubSize
GmmConstant::CUBE_BLOCK
关联 PR:https://gitcode.com/cann/ops-transformer/pull/11198
/assign @zhoushaolong
Backgroud(背景信息)
GMMAQ Ascend950 arch35 tiling 在确定
baseM后,需要保证 epilogue 双缓冲所需的中间结果、量化结果和 scale 缓冲区能够同时放入 UB。现有基础分块计算无法根据 epilogue 双缓冲的完整 UB 字节占用动态调整
baseM。当目标 shape 的 epilogue 缓冲需求超过 UB 容量时,需要选择合适的分块尺寸以满足双缓冲空间要求。Benefit / Necessity (价值/作用)
根据实际 UB 容量适配 epilogue 双缓冲,提升目标 shape 的 tiling 适配能力,并避免因 UB 空间不足导致运行时资源约束问题。
同时限制调整后的平均分块数量不增加,尽量保持原有分块效率。
Design(设计方案)
baseM、baseN和双缓冲数量估算 epilogue UB 空间:ceil(baseM / 2)行。aicoreParams_.ubSize比较,判断当前分块是否支持 epilogue 双缓冲。baseM无法满足 UB 容量要求时,以GmmConstant::CUBE_BLOCK为步长递减搜索候选值。baseM。关联 PR:https://gitcode.com/cann/ops-transformer/pull/11198