已关闭
[Question|问题咨询]: Grouped MatMul + MoE 场景下 expert 负载均衡问题 #369
Bug_制造者创建于  7月29日关闭于  8月12日
 Bug_制造者
Bug_制造者
7月29日 创建

欢迎提出问题与大家一同讨论。
Welcome to ask questions and discuss with other members.

Describe the question / 问题描述 (Mandatory / 必填)

在 example 07 grouped_matmul_slice_m_per_token_dequant_moe 中,多个 expert 的 token 被分组执行 MatMul。实际 MoE 场景中不同 expert 的 token 分配可能极不均匀(例如某个 expert 仅分配 1 个 token,而另一 expert 分配上千个 token)。

请问当前的 grouped slice M 策略在这种极不均匀分布下是否存在 AICore 间负载不均的问题?是否有动态 re-scheduling 机制将某 expert 的过剩计算量迁移到空闲核心上?如果当前没有此机制,是否有 roadmap 计划支持?

Special notes for this question / 问题备注 (Optional / 选填)

likedislike
longjihuilongjihui成员
8月6日 将 longjihui 设为负责人
longjihuilongjihui成员
8月6日 issue状态由 进行中 改变为 已完成
longjihuilongjihui成员
8月6日 关闭了 issue
longjihuilongjihui成员
8月6日 issue状态由 已完成 改变为 已确认
longjihuilongjihui成员
8月6日 重新打开了 issue
longjihui
longjihui成员
8月6日 评论:

你好,这里kernel里的策略是循环计算每个group,按照L1:M和L1:N对每个group的计算进行切块,并修正尾列和尾行的block大小,切块后的数据排布使用Swizzle,将block0、block1、...、block_tail分给每个逻辑核,并将block_tail所分到的逻辑核的下一个核更新startCoreIdx,作为下一个group的起始核,所以对于实际的不均匀的MoE场景不会出现你提到的这种token分配不均引起的AICore 间负载不均。

likedislike
CANN-robotCANN-robot成员
8月6日 添加了label:Accepted
longjihuilongjihui成员
8月6日 issue类型由 任务 改变为 咨询
longjihuilongjihui成员
8月6日 添加了label:question
 Bug_制造者
Bug_制造者
8月7日 评论:

好的,明白了谢谢!

likedislike
longjihuilongjihui成员
8月12日 issue状态由 进行中 改变为 已完成
longjihuilongjihui成员
8月12日 关闭了 issue