已关闭
[Requirement|需求建议]: 新增allgathermmV3算子host侧工程 #4711
王亮培创建于  21 天前关闭于  21 天前
王亮培
王亮培成员
21 天前 创建

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

Backgroud(背景信息)

AllGatherMatmulV3 算子需求 Issue
Background(背景信息)
在大模型 训练/推理中,各 rank 持有激活分片 x1[M_per_rank, K],Matmul 前需先 AllGather 收集全量激活再与本地权重计算。常规流程中 AllGather(通信)和 Matmul(计算)是两个独立 kernel 串行执行,通信耗时无法被计算掩盖,拉长端到端时间。
本次提交的 AllGatherMatmulV3 算子解决的问题是:将 AllGather 通信与 MX 量化 Matmul 融合为单个算子,AIV 核负责 URMA 通信收集各 rank 的 x1 及其 MX scale,AIC 核同步做反量化 Matmul,通信等待被矩阵计算掩盖,实现通信计算 overlap。
Benefit / Necessity(价值/作用)

  • 降低端到端时延:通信不再独立占时,被 Matmul 计算掩盖
  • 减少 H2D/launch 开销:单算子下发替代两个算子级联,减少一次 kernel launch 和中间显存往返
  • 支持低精度:MX FP8(e4m3fn/e5m2)与 MX FP4(e2m1)量化输入,BF16/FP16 输出,通信数据量减半(FP4 再减半)
    Design(设计方案)
  • host 侧:tiling 将 per-rank M 切成 512 行 tile(尾块 16 对齐),SWAT 引擎按实际 dtype(fp4/fp8 分别实例化)推导 mmTile;torch 层建 URMA channel(跨 server 按 net layer 逐 peer 选层),并前置拦截通信数据量+2MB ≤ HCCL_BUFFSIZE
  • kernel 侧(MIX_AIC_1_1):
  • AIV:URMA put 收集各 rank 的 x1 tile 及 MX scale 到 HCCL buffer,dcci(ENTIRE_DATA_CACHE) 保证跨 launch cache 一致
  • AIC:分 tile 从通信窗口取 A 片段,逐 32-group 结合 AllGather(x1_scale)×x2_scale 做 dequant matmul,叠加 bias 输出 y[M*rankSize, N]
  • 通信上下文:CommChannelBuilder 按 HCCL net graph 建 URMA/UBMEM 双通道(data + barrier),跨 server 拓扑下按 layerMap 逐 rank 选层建链

Benefit / Necessity (价值/作用)

Design(设计方案)

likedislike
王亮培王亮培成员
21 天前 添加了label:requirement
王亮培王亮培成员
21 天前 关联了pull request:add all_gather_matmul_v3 operator
weihao18成员
21 天前 评论:

/assign @wangliangpei

likedislike
CANN-robotCANN-robot成员
21 天前 将 wangliangpei 设为负责人
CANN-robotCANN-robot成员
21 天前 关闭了 issue
CANN-robotCANN-robot成员
21 天前 添加了label:resolved
王亮培王亮培成员
18 天前 关联了pull request:docs: add allgathermm v3 readme & updata alltoallmm v2 readme
MMeiWenxuan成员
17 天前 关联了pull request:AlltoAllMatmulV2 & AllGatherMatmulV3 Torch接口文档描述更正
王亮培王亮培成员
17 天前 关联了pull request:allgathermmv3: fix check info
王亮培王亮培成员
16 天前 关联了pull request:AlltoAllMatmulV2 & AllGatherMatmulV3 comm_mode urma场景改成aiv_urma
MMeiWenxuan成员
16 天前 关联了pull request:AlltoAllMatmulV2 & AllGatherMatmulV3 comm_mode urma场景改成aiv_urma
王亮培王亮培成员
15 天前 关联了pull request:close print without debug level