已关闭
[Requirement|需求建议]: WeightQuantPreprocess A16MXF4 支持转置 weight ND 直拷 #3197
马琦钧创建于  17 天前关闭于  16 天前
马琦钧
马琦钧成员
17 天前 创建

Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.

一、背景信息 (必填)

weight_quant_preprocess 算子 A16MXF4 数据流(FP4 uint8 紧凑载体,E8M0 scale {K/32, N},kGroupSize 固定 32)此前仅支持非转置 weight(ND→NZ_C0_16 分形转换),转置 weight 直接返回 ACLNN_ERR_PARAM_INVALID。下游 wqbmmv2 MX kernel 主干已支持 MX FP4 ND 转置输入,preprocess 需配套支持转置 weight 的 ND 直拷透传,打通 MX FP4 转置链路。

本需求同时包含 conversion/weight_quant_preprocess 目录 ErrMsg reason 字符串结尾多余句号的集中整改(原 cann/ops-math!5126,已关闭并入)。

二、价值/作用 (必填)

支撑 A16 MXFP4 量化推理场景下转置 weight 的预处理:preprocess 输出 ND 物理透传,可直接衔接 wqbmmv2 MX kernel,端到端打通 torch_npu.npu_weight_quant_batchmatmul 的 MX FP4 转置路径,避免业务侧手工做 ND 直拷。

三、设计方案 (必填)

  1. IsMMA16MXF4DataFlow judge 拆分为 base + 转置/非转置:转置 weight(末两维严格转置 stride [1,K],打包维沿 K 须 K 为偶数)命中新条目走 ND 直拷(ProcessWeightDirectCopy,按打包维建 UINT8 视图物理透传);非转置维持原 NZ_C0_16 分形转换条目
  2. out 侧一致性校验归一为 CheckOutSameBase(空指针对称 + out 非 empty + viewShape 一致)与 CheckOutSameAsInput(Base + 连续性 + format/dtype/storageShape 全 ==)两层;scale/offset/bias 直拷透传参数的输入侧校验删除,约束下放 wqbmmv2
  3. 所有 NZ 出条目(A8W4/S4/F4)统一 CheckOutWeightDtypeSame(真实场景 NZ 出 dtype 恒等于输入);保留 CheckWeightOffsetOptionalNull(无 offset 直拷 process,非空 offset 会被静默丢弃)
  4. ErrMsg reason 结尾多余句号清理(35 处,纯文案无行为变化)
3.1 使能方式(涉及哪些框架:如Aclnn直调、Pytorch训练等)

Aclnn 直调 / PyTorch(torch_npu,配套 Ascend/op-plugin!5803、cann/ops-nn!10133)

3.2 总体设计
3.2.1 算子支持的数据类型

weight:float4_e2m1(uint8 紧凑载体);weightScale:float8_e8m0(uint8 承载);x/y:float16、bfloat16

3.2.2 host侧设计

aclnn 注册表(judge + checks + processes)新增 A16MXFP4 转置 ND 直拷条目,无 infer/tiling 变更

3.2.3 kernel侧设计

无 kernel 变更(host 侧视图转换 + 直拷透传)

3.3 支持硬件

ascend950(DAV_3510)

3.4 算子约束限制

  • pergroup(A16F4 per-group)不支持转置 weight,转置仍返回 ACLNN_ERR_PARAM_INVALID(pergroup FP4 ND 无下游 wqbmmv2 支持)
  • 转置 weight 末两维须严格转置(stride [1,K]),打包维沿 K 须 K 为偶数
  • kGroupSize 固定 32;weightOffset 不支持,须为 nullptr

对应 PR:https://gitcode.com/cann/ops-math/pull/5241

likedislike
liuchenghao
liuchenghao
17 天前 评论:

【Multica 同步】状态:backlog;说明:本需求已同步至 Multica「CANN 算子开发迁移」项目承接开发(待认领排期),完成后将以 PR 形式回馈社区;详情:AI4ME-237

likedislike
马琦钧马琦钧成员
16 天前 修改了issue 的描述
CANN-robotCANN-robot成员
16 天前 关闭了 issue
CANN-robotCANN-robot成员
16 天前 添加了label:resolved
马琦钧马琦钧成员
16 天前 关联了pull request:docs: weight_quant_preprocess 补充 A16F4/A16MXF4 数据流文档与 example
陈思陈思成员
11 天前 将 maqijun 设为负责人