Summary
This paper proposes ScatterMoE which optimizes the memory cost and the throughput of tokens for SMoE models. Specially, ScatterMoE focuses on the issue on extra memory copies of token representations during the operation of MoE scattering and gathering. By implementing custom kernels using Triton or CUTLASS, ScatterMoE eliminates the extra memory copies and improves the overall training & inference performance, compared with existing SMoE frameworks like Megablocks. The work provides the detailed implementation of ScatterMoE and extensively compares the performance with baselines (Megablocks and naive PyTorch implementation) considering a variety of experimental settings (granularity, sparsity and MoA).
Reasons to accept
1. The motivation is straightforward and reasonable, which directly eliminates the excessive memory consumption of representation tensor copies and token paddings.
2. The paper describes the implementation clearly including the forward & backward passes of ParallelLinear and its extension to MoA modules.
3. The comparison in performance provided is extensive and includes sufficient conditions (like granularity and sparsity) which affects the experimental results.
Reasons to reject
1. As a competitor of Megablocks, this work should better be accomplished into a usable package (instead of just raw fused kernels) and provide a more end-to-end time-basis training curve for current prevalent LLMs. If achieved, I think the work will be much more influential and have more significance to be accepted.
2. It will be much better if larger scales of MoE models are benchmarked, in fact a 1.5B parameter configuration is more like a toy setting.
Questions to authors
For some recent variants of MoE like shared experts (DeepSeekMoE for e.g.), will ScatterMoE still be supported and in advantage in performance?