AI Infra Academy
返回题库
困难MoEMoECUDA算子优化面试高频

什么是 Grouped GEMM?为什么 MoE 推理需要它?

6 0 0

参考答案

**Grouped GEMM(分组矩阵乘)**:一次 kernel 调用里执行**多个形状可能不同的小矩阵乘法**,而不是启动很多个独立的小 GEMM kernel。 **MoE 为什么需要它**: - MoE 中每个 token 经路由分发到不同 expert,每个 expert 处理的是"被路由给它的那批 token",数量不定且各不相同。 - 于是每个 expert 要做一个 `[该expert的token数 × hidden] × [权重]` 的矩阵乘,规模小且大小不一。 - 若为每个 expert 单独启动一个 GEMM kernel:kernel 数量多(启动开销大)、每个都太小(GPU 利用率低,无法喂满 SM)。 **Grouped GEMM 的作用**: - 把所有 expert 的这些小 GEMM 打包进**一个 kernel**,内部并行调度,分摊启动开销、提高 SM 利用率。 - 处理变长/变形状分组是关键难点(每组行数不同)。 **相关**: - 常与 token 的 permute/gather(按 expert 分组排列)和 unpermute(算完还原顺序)配合。 - CUTLASS 提供 Grouped GEMM 模板;很多 MoE kernel(如 Megablocks 用稀疏 GEMM、或 grouped GEMM)围绕此优化。 - 这是 MoE 推理算子层的核心挑战之一,直接影响 MoE 的实际吞吐。

讨论区(0)

还没有评论,来做第一个发言的人吧