已关闭
[Requirement|需求建议]: QuantBatchMatmulV3 通过 APILEVEL tiling key 区分 high/basic/blaze API 入口 #3649
Hu1L1创建于 6月29日关闭于 7月1日
6月29日 添加了label:requirement
Hu1L1
6月29日 评论:
6月29日 评论:
/assign


6月29日 将 Hu1L1 设为负责人
7月1日 关闭了 issue
7月1日 添加了label:resolved
/assign


Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
Backgroud(背景信息)
QuantBatchMatmulV3 当前部分场景需要区分 high api、basic api、blaze api 的 kernel 入口选择。原方案曾考虑新增 kernel type,但 kernel type 本身承载的是计算入口类型,继续扩展会和高阶 API/低阶 API 能力区分耦合,且容易造成 host 侧 tiling key 和 kernel cpp 中实际编译分支不一致。
因此需要在 tiling key 中新增 API level 字段,用于表达同一 kernel type 下的 API 能力层级,覆盖 3510 上 MX、perblock、纯 cube ND、Weight NZ 等场景。
Origin(信息来源)
无
Benefit / Necessity (价值/作用)
ASCENDC_TPL_ARGS_SEL和 cpp 分支一一对齐,减少部分.o编译失败风险。QUANT_BMMV3_CUBE_TENSOR_API_IMPL_CLASS。Design(设计方案)
在 tiling key 的
KERNELTYPE字段后新增 2 bitAPILEVEL字段:HIGH_LEVELBASIC_LEVELBLAZE_LEVELhost 侧在各 tiling class 内部实现/重写
GetApiLevel:kernel 侧根据
TPL_APILEVEL拆分 high/basic/blaze 分支,并保证 tilingkey.h 中枚举出来的组合在 cpp 中有对应入口。同步调整 host UT 中受 APILEVEL 影响的 tiling key 期望值。