已关闭
[Requirement|需求建议]: 新增 allto_all_matmul_v2 算子——MC2 通算融合 AlltoAll+MX量化MatMul APACE架构适配(DAV_3510) #4713
MeiWenxuan创建于  8月29日关闭于  8月29日
MeiWenxuan成员
8月29日 创建

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

Backgroud(背景信息)

本需求新增 allto_all_matmul_v2 算子,作为APACE架构AIV直驱URMA Kernel代码的host适配。将 AlltoAll 通信(URMA 协议)+ MX 量化反量化 + MatMul 计算 融合为单一算子,在 DAV_3510(Ascend 950)平台上通过 AIC/AIV 协同实现通算融合,通信与计算充分流水,消除中间 GM 落盘。

Benefit / Necessity (价值/作用)

应用场景:MoE 模型的 Expert 并行(EP)层,每个 rank 持有部分 expert 权重,需要 AlltoAll 交换 token 后本地计算 matmul。

核心价值:

  • 性能:通算融合后 AlltoAll 的通信延迟被 MatMul 计算掩盖,理论加速比接近 2x(对比拆分实现)
  • 精度:MX 量化场景下,scale 在通信阶段保持压缩格式(FP8_E8M0),反量化在 L0C 侧完成,避免中间 FP32 膨胀
  • 内存:通信数据直接写入 MatMul 的 L1/L0 buffer,不需要单独的通信输出 GM buffer
  • 可扩展:支持 FP8_E4M3FN / FP8_E5M2 / FP4_E2M1 三种量化 dtype,world_size 支持 2/4/8/16

关键特性:

  • 通信引擎:URMA(User-level Remote Memory Access)
  • 量化模式:MX-FP8(6 模式),scale shape [M, Ceil(K/64), 2],支持 ND/NCL 格式
  • 精度模式:0(默认)/ 1 / 2 三档,控制Local Matmul前置计算以及 L0C/GM 累加精度策略
  • baseM 减半优化:当 M/N 方向 base 块数 < 2 倍核数时,自动减半 baseM 使块数翻倍,保证通信与计算充分流水

Design(设计方案)

Torch 接口

all_to_all_quant_matmul(
    x1, x2, group,                    # 必传:左矩阵、右矩阵、通信域
    bias=None, x1_scale=None, x2_scale=None,  # 可选:MX量化参数
    x1_quant_mode=None, x2_quant_mode=None,   # 可选:量化模式(当前只支持6, 6)
    group_sizes=None,                  # 可选:量化group size(默认自动推导)
    y_dtype=None, comm_mode=None, precision_mode=None,  # 可选:输出精度/通信引擎/精度模式
) -> (y, None)
likedislike
MMeiWenxuan成员
8月29日 添加了label:requirement
MMeiWenxuan成员
8月29日 修改了issue 的描述
MMeiWenxuan成员
8月29日 关联了pull request:add allto_all_matmul_v2 operator
MMeiWenxuan成员
8月29日 修改了issue 的描述
CANN-robotCANN-robot成员
8月29日 关闭了 issue
CANN-robotCANN-robot成员
8月29日 添加了label:resolved
MMeiWenxuan成员
28 天前 关联了pull request:AlltoAllMatmulV2 Torch接口文档描述更正
MMeiWenxuan成员
27 天前 删除了关联的pull request:AlltoAllMatmulV2 & AllGatherMatmulV3 Torch接口文档描述更正
MMeiWenxuan成员
27 天前 关联了pull request:AlltoAllMatmulV2 & AllGatherMatmulV3 comm_mode urma场景改成aiv_urma
MMeiWenxuan成员
26 天前 关联了pull request:fix(allto_all_matmul_v2): 修复 group_sizes schema 非法默认值导致 import 失败
MMeiWenxuan成员
12 天前 关联了pull request:fix(allto_all_matmul_v2/all_gather_matmul_v3): comm_mode 默认值从 ai_cpu 改为 aiv_urma
MMeiWenxuan成员
12 天前 关联了pull request:fix(allto_all_matmul_v2/all_gather_matmul_v3): comm_mode 默认值从 ai_cpu 改为 aiv_urma
MMeiWenxuan成员
6 天前 关联了pull request:allto_all_mm_v2 set scheddule mode to 1