mudler / mudler/vllm.cpp

Gemma-4 FP8 WMMA expert GEMM for M>1 prefill on gfx1201

Open
#1,762 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
423
Forks
53
Avg merge
20h 26m
Merged PRs (30d)
310

Description

Gemma-4-26B FP8 prefill on dual R9700 still pays a dequant+BF16 Tensile tax on every T>1 expert GEMM. ROCPROF_P11K_SHAREDK (KEEP, PC=0) attributes 21.4% of prefill kernel time to hipBLAS Tensile GemmEx and 10.1% to Fp8ChannelDequantBf16. Combined 31.5%. Attention (46.4%) is a separate lever.

Row: GEMMA4-FP8-WMMA-EXPERT-GEMM

Current product path is ExpertGeGLUFp8Native (gemma4_moe.cpp): T=1 stays fused FP8 GEMV; T>1 dequantizes FP8 weights to BF16 and calls MatmulBT / MatmulBTAlphaBeta. hipBLASLt FP8 W8A8 was already slower than BF16 GemmEx on gfx1201 and is not the comparator.

This issue tracks a gated, default-OFF fused-dequant direct-FP8 WMMA expert GEMM for FP8 T>1 only. Decode M=1 is untouched. Unset / wrong-arch / wrong-dims / tail must keep today's dequant+hipBLAS path.

Spec-first. No kernel, no GPU, and no product integration on this filing. A 2026-08-16 isolated scratch probe (a70e) is not a product kernel: it failed both the numerical gate and the production speed gate (0.126× at M=2048). Reopen only a materially different construction.

Integration gate: >1.3× vs the actual production dequant+Tensile path over a time-weighted M histogram. Token-mass is measured; time weights are still VOID. Scalar-only uplift is insufficient.

Amdahl check from the p11k profile: drop the 10.1% dequant tax and ~2× the 21.4% GEMM ≈ 1.26× overall (~3130 t/s @11k from the KEEP class). That is the vision, not a GREEN.

Relates to #41. Orthogonal to #523 (GGUF keep-quant).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with gemma4_moe.cpp and the ExpertGeGLUFp8Native path to understand the existing T>1 expert GEMM behavior. Review the ROCPROF_P11K_SHAREDK profile and the numerical, architecture, dimension, tail, and time-weighted production speed gates. Done means a materially different construction that passes the numerical gate and exceeds 1.3× the production dequant+Tensile path; this filing does not request product integration yet.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend, machine-learning, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.