Closed
[Requirement|需求建议]: dispatch fullmeshv2接收侧flag轮询与搬运性能优化 #7275
zhong-zixinAdd on  6 days agoClosed at  5 days ago
zhong-zixinCollaborators
6 days ago Create

Backgroud(背景信息)

MoE dispatch fullmesh_v2 接收侧按来源 rank 和专家形成的片段检查 ready 标志并搬运数据。逐片段搬入 flag、归约检查和等待 payload 搬运会增加控制与同步开销,多专家场景中数据分散、片段较多时尤为明显。

Benefit / Necessity (价值/作用)

减少接收侧 ready 判定及搬运同步开销,改善 Ascend 950 上 fullmesh_v2 串行和非串行路径的性能。

Design(设计方案)

  • 批量搬入 ready 标志并生成位图,在数据搬入和输出阶段复用片段就绪结果
  • 将多个已就绪片段的 payload 集中搬入后统一等待,利用双缓冲衔接输出
  • 串行专家计数采用连续块搬运,保留 Scalar 消费所需的 MTE2_S 同步

关联 PR:fullmeshv2 flag轮询与搬出优化 #15481

likedislike
周云飞
周云飞Collaborators
6 days ago Comments:

/assign @zhong-zixin

likedislike
CANN-robotCANN-robotCollaborators
6 days ago Assign zhong-zixin as responsible person
周云飞
周云飞Collaborators
6 days ago Comments:

问题说明

这是接收侧的性能优化建议,目前不足以判定为功能缺陷。按报告描述,逐片段检查 ready 标志并等待搬运,会增加多专家、分散片段场景的控制与同步开销;实际收益仍需在 Ascend 950 上验证。

处理建议

可考虑批量读取 flag 并复用就绪位图,将已就绪片段的 payload 集中搬入、统一等待,再以双缓冲衔接输出。串行专家计数可采用连续块搬运,但需保留 Scalar 读取前的 MTE2_S 同步,并确保缓冲区复用前搬运和消费均已完成。

重点验证串行、非串行路径的输出一致性与耗时变化。Issue 已关联 PR #15481,其具体实现和合入状态尚未确认。

likedislike
CANN-robotCANN-robotCollaborators
5 days ago Close issue
CANN-robotCANN-robotCollaborators
5 days ago changed custom state from 待办的 to 已完成
CANN-robotCANN-robotCollaborators
5 days ago Added label: resolved
周云飞
周云飞Collaborators
5 days ago Comments:

关闭总结

PR #15481 已合入,对 A5 fullmesh_v2 接收侧进行了性能优化:

  • 批量搬入接收 flag 并生成就绪位图,减少逐片段检查和重复判断。
  • 集中搬入多个已就绪片段并统一等待,通过双缓冲衔接输出,减少逐片段搬运同步;串行和非串行接收路径共用该实现。
  • 串行专家计数改为连续块搬运,保留 Scalar 消费所需的同步,移除无 Vector 消费者的同步。

PR 描述中记录了本地验证和二级冒烟。

关联 PR:PR #15481

likedislike