[Hardware][Power] Unqualized MoE Backend for Power (VSX) - #51624
Merged
bigPYJ1151 merged 25 commits intoAug 13, 2026
Merged
Conversation
Co-authored-by: Antigravity <antigravity@google.com> Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
Co-authored-by: Antigravity <antigravity@google.com> Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
Co-authored-by: Antigravity <antigravity@google.com> Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
…ar loads Use explicit unrolled constexpr branches for scalar vector initialization to eliminate zero-padding memory overhead during decode (M=1) while maintaining maximum L1 pipeline utilization during prefill (M=8). Co-authored-by: Antigravity <antigravity@google.com> Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
When actual_token_num == 1 (Decode phase) and PackA == false, the input row is already contiguous. Bypass the unnecessary INT8Vec64 gather phase and pass the global input pointer directly to the GEMM kernel to eliminate 28KB of RAM-to-RAM copying per token. Co-authored-by: Antigravity <antigravity@google.com> Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
…erge tree in favor of scalar loads Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
…mbly loops to fully restore main TPOT performance Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
…ain TPOT Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
…on Power10 Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
…and fix Gemma 4 26B crash Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
The unrolled M>=4 loop incorrectly used 16-bit vec_merge instructions which scrambled the A matrix rows and columns before feeding them to xvbf16ger2pp, causing math errors for K>=8. This fixes it to use 32-bit and 64-bit merges to construct the correct 4x4 transposed layout for the A registers. Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
Akashcodes732
requested review from
AndreasKaratzas,
WoosukKwon,
bigPYJ1151,
mgoin,
pavanimajety,
tlrmchlsmth,
yewentao256 and
zyongye
as code owners
August 10, 2026 06:48
Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
Contributor
Author
|
Hi @bigPYJ1151, can you please take a look at the changes made in this PR ? |
bigPYJ1151
reviewed
Aug 11, 2026
added 2 commits
August 11, 2026 12:58
…orted_config Signed-off-by: Akash kaothalkar <akash.kaothalkar@ibm.com>
bigPYJ1151
approved these changes
Aug 11, 2026
Member
|
/ci run |
|
✅ Triggered Buildkite CI #83342 for commit |
Contributor
Author
|
Hi @bigPYJ1151 , all the checks have passed, can we go ahead with the merge ? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds PowerPC specific unquantized backend support for fused MoE using Power10 VSX MMA instructions.
Purpose
Currently, grouped GEMM is not supported for Power architecture in vLLM. This PR introduces a Power/VSX specific unquantized CPU backend for Fused MoE.
Key features include:
csrc/cpu/micro_gemm/cpu_micro_gemm_vsx.hppto support grouped GEMM on Power architectures.Test Plan
vllm benchwithgoogle/gemma-4-26B-A4B-itto compare against themainbranch.Test Result
The unquantized Power10 MMA implementation yields massive speedups in the prefill phase (TTFT), and provides strong throughput gains at higher batch sizes compared to the
mainbranch.Essential Elements of an Effective PR Description Checklist
supported_models.mdandexamplesfor a new model.