b70-optimization-lab

Gemma 4 26B A4B Model And Runtime Options

Research snapshot: 2026-06-23.

Primary Model Identity

Unsloth GGUF Assets

Primary repo:

unsloth/gemma-4-26B-A4B-it-GGUF
revision 3bb10d594514ef4edb7f3a65d41a7e4eb8c5767a

Important files from Hugging Face metadata:

File Bytes Use
gemma-4-26B-A4B-it-UD-Q8_K_XL.gguf 27,636,230,944 Primary no-quality-loss Q8 target/verifier lane. Use this for promoted Gemma 26B B70 records unless the user explicitly accepts a different quantization.
gemma-4-26B-A4B-it-Q8_0.gguf 26,859,859,744 Alternate Q8_0 control lane only. It is smaller and can be useful for compatibility/perf diagnosis, but it is not a promoted replacement for UD-Q8_K_XL under the no-quality-loss constraint.
gemma-4-26B-A4B-it-UD-Q6_K_XL.gguf 23,295,389,472 Lower-quality side experiment only if Q8 cannot fit useful context.
gemma-4-26B-A4B-it-MXFP4_MOE.gguf 16,551,046,944 Public-speed comparison only; not quality-equivalent to the Q8 target.
mtp-gemma-4-26B-A4B-it.gguf 461,766,816 Draft/MTP follow-up after no-spec baseline.
MTP/gemma-4-26B-A4B-it-Q4_0-MTP.gguf local Current promoted default MTP draft for the UD-Q8_K_XL target/verifier lane. Under the current VDR2 strict identity it remains faster than Q4_K_M/Q5_K_M/Q6_K/Q8_0 draft swaps.
MTP/gemma-4-26B-A4B-it-Q4_K_M-MTP.gguf local Strict VDR2 screen on 2026-06-27 passed validity but lost (84.232 tok/s median 1-100). Do not use as default.
MTP/gemma-4-26B-A4B-it-Q5_K_M-MTP.gguf local Strict VDR2 screen on 2026-06-27 passed validity but lost (88.110 tok/s), below the current Q4_0-draft record (121.414 tok/s; also below the then-current 98.340 tok/s row).
MTP/gemma-4-26B-A4B-it-Q6_K-MTP.gguf local Strict VDR2 screen on 2026-06-27 passed validity but lost (85.729 tok/s), below the current Q4_0-draft record (121.414 tok/s).
MTP/gemma-4-26B-A4B-it-Q8_0-MTP.gguf 461,766,816 Alternate official Unsloth MTP draft file. Current strict VDR2 screen passed validity but lost (88.245 tok/s), below the current Q4_0-draft record (121.414 tok/s).
MTP/gemma-4-26B-A4B-it-F16-MTP.gguf 855,228,576 Higher-precision draft head. Tested 2026-06-23; valid but much slower than Q8_0 draft.
MTP/gemma-4-26B-A4B-it-BF16-MTP.gguf 855,228,576 Higher-precision draft head. Tested 2026-06-23; valid but much slower than Q8_0 draft.
mmproj-F16.gguf 1,193,058,784 Optional multimodal smoke after text baseline; not required for speed work.

The download script is pinned to the repo revision above and validates the exact primary Q8 file size. Override FILENAME and EXPECTED_BYTES explicitly for MTP or mmproj downloads.

Draft/assistant alternatives:

Different-model side lane:

Lower-precision public-speed lanes:

Runtime Options

llama.cpp SYCL / GGUF

This is the primary lane. It matches the one-replica-per-GPU goal and avoids tensor-parallel PCIe collectives. The local build is:

/home/steve/src/llama.cpp
commit dec5ca557
build /home/steve/src/llama.cpp/build-sycl-b70

Important local facts:

vLLM/XPU Int8 Per-Channel

This is the second lane, not the first. vLLM’s Gemma 4 recipe recommends --quantization int8_per_channel_weight_only for 26B A4B because its smaller MoE expert dimensions are sensitive to 4-bit quantization. Use this if llama.cpp Q8 is too slow, lacks a needed feature, or fails multimodal support.

Do not use one --data-parallel-size 4 process for this model on vLLM/XPU yet. There is a public Gemma 4 MoE DP issue whose workaround is separate DP=1 instances. That also matches this lane’s no-PCIe-overhead design.

Ollama

Useful as a compatibility/control runtime for GGUF and chat template behavior. Not the first optimization runtime because low-level SYCL flags, per-run identity, and LocalMaxxing-style reproducibility are harder to preserve.

Vulkan / Community B70 Kits

There is a community B70 repository claiming SYCL is generally stronger for dense Gemma/Qwen decode while Vulkan can be relevant for some MoE speculative paths. Treat this as an idea source only. This lane starts with the local SYCL build because it gives the best direct control over B70 flags and matches prior repo practices.

LocalMaxxing Reference

Use LocalMaxxing for public target context, not as direct Q8 comparison. Current public top rows include lower-precision modes such as MXFP4/Q4, which are outside the default quality lane. Search/title snippets on 2026-06-23 showed the Google model page around 87.3 tok/s, the Unsloth GGUF page around 94.3 tok/s, and a Gemopus GGUF fine-tune around 94.5 tok/s; these are mixed public rows rather than a B70 Q8 target.

Submission requirements and the lane-specific payload shape are in localmaxxing-and-targets.md. Submit only after this repo has a valid realistic-suite record packet: model file/revision, runtime commit, GPU count, fixed prompt-suite identity, all cached_tokens=0, primary median tok/s for generated tokens 1-100 after TTFT, p10/mean/TTFT/wall and full-512 metrics, prompt and output hashes, quality status, throughput JSON, server log path, env/flags, and reproducible command.