Measured Evidence
Rows are sorted by decode uplift where there is a direct comparison. The class column separates clean model-format comparisons from served stack comparisons where MTP acceptance and request policy are part of the measured win.
| Comparison | Class | ROCmFP / Chadrock | Baseline | Decode Uplift | Technical Reading |
|---|---|---|---|---|---|
| Qwable ROCmFP4 dynamic n6 vs vanilla Q4_K_M n4, 3,946 prompt | Model + served MTP | 53.25 tok/s | 27.82 tok/s | +91.4% | FP4 artifact plus perfect draft acceptance on this prompt; not a pure kernel-only result. |
| ROCmFP4 STRIX_LEAN vs UD-Q5_K_XL, ROCm0 | Model format + same MTP settings | 27.60 tok/s | 15.70 tok/s | +75.8% | Custom FP4 block layout and backend path beat a larger K-quant baseline in the same merged stack. |
| Qwable ROCmFP4 n4 vs vanilla Q4_K_M n4, 3,946 prompt | Model + controlled draft depth | 45.66 tok/s | 27.82 tok/s | +64.1% | Same n_max removes the draft-depth explanation; remaining win is format, kernels, cache, and acceptance quality. |
| ROCmFP6 STRIX_QUALITY vs Unsloth Q6, 64k prompt | Clean Unsloth source-line comparison | 15.72 tok/s | 10.81 tok/s | +45.4% | Long-context decode benefits from FPX kernels plus KV/cache/runtime decisions that hold up at 64k. |
| ROCmFP4 STRIX_LEAN vs UD-Q5_K_XL, Vulkan0 | Model format + same MTP settings | 24.90 tok/s | 18.40 tok/s | +35.3% | Vulkan path also benefits, but less than ROCm0 for this profile. |
| ROCmFP6 STRIX_QUALITY vs Unsloth Q6, 512 prompt | Clean Unsloth source-line comparison | 29.52 tok/s | 22.10 tok/s | +33.6% | Short-context decode win without relying on long-context stress behavior. |
| ROCmFP6 STRIX_QUALITY vs Unsloth Q6, 16k prompt | Clean Unsloth source-line comparison | 30.03 tok/s | 25.76 tok/s | +16.6% | Middle-context row has the smallest uplift but still clears the baseline. |
Model Improvements
These are properties of the GGUF artifact or quantization recipe. They travel with the model only when the runner understands the custom types and dispatches the intended backend paths.
Real GGML Types
ROCmFP4 and ROCmFPX are not marketing aliases for stock Q4/Q6. They register separate GGML quantized types: Q4_0_ROCMFP4, Q4_0_ROCMFP4_FAST, Q3_0_ROCMFPX, Q6_0_ROCMFPX, and Q8_0_ROCMFPX.
AMD-Shaped Blocks
Blocks are built around compact integer codes multiplied by small floating scales. That reduces weight traffic and gives HIP/Vulkan kernels a regular decode path instead of generic K-quant unpacking.
Tensor-Aware Recipes
STRIX and STRIX_LEAN are not one blanket precision setting. Hot dense tensors can use FAST formats while quality-sensitive tensors stay protected or routed to higher precision.
Why this matters technically
- The quant recipe changes which tensors become bandwidth-bound and which stay accuracy-bound.
- Protected tensor routing explains why speed-oriented formats do not uniformly collapse structured output behavior.
- Direct block decode avoids converting everything back through a generic scalar path before useful GPU work happens.
- Model artifact size matters, but the more important point is that the format is aligned with the runtime's dot/dequant kernels.
llama.cpp / Chadrock Runner Optimizations
These are changes apart from the model artifact. Some help any Chadrock-served model; some only trigger when the model uses ROCmFP4/ROCmFPX tensor types.
Backend Kernel Coverage
- HIP MMQ/MMVQ and vec-dot paths for ROCmFP4/FAST and ROCmFPX.
- Vulkan shaders for dequant, matmul, copy, and fallback-safe reachability.
MUL_MAT_IDand MoE-sensitive routing so expert matmul avoids falling back to slow generic paths.
FlashAttention / KV Path
- Format-aware K/V decode and dequant coverage.
- Rows-per-thread and grouping choices selected by served throughput, not only microbenchmarks.
- KV cache promotions where a requested low-precision cache would break coherency or speed.
Serving MTP Controls
- Draft MTP exposed as a first-class served path, with request-level
n_max,p_min,p_split, and draft-layer policy. - Dynamic profiles can raise draft depth on easy prompts and back off where acceptance deteriorates.
- No-MTP controls show the magnitude:
12.78 tok/svs roughly52-53 tok/sin the Qwable sweep.
Regression Guards
- Microbench improvements were not blindly accepted when sustained served decode regressed.
- Guardrails rejected changes such as VDR settings that looked good in isolation but lost real Qwen MTP throughput.
- This is why the runner optimizations are practical serving wins rather than only benchmark-kernel wins.
Will This Help Any Chadrock Runner Model?
Yes for the generic serving path, conditionally for MTP-capable models, and only format-specific for ROCmFP4/ROCmFPX kernels. The transfer boundary is where many summaries become technically sloppy.
| Optimization | Applies to Any Chadrock Model? | Condition | Expected Value |
|---|---|---|---|
| Server request handling, batching, slot policy, profile wiring | Yes | Model is served through the Chadrock runner. | Lower overhead and better use of the same backend; effect size depends on prompt shape. |
| Draft-MTP scheduling and request controls | Conditional | Target has compatible MTP/drafter behavior and accepts draft tokens. | Huge when acceptance is high; can regress when deeper drafts add rejected work. |
| KV cache policy and FlashAttention profile tuning | Mostly | Backend and cache type must be supported for the model architecture and context length. | Most visible at long context or when a low-precision KV request would hurt coherency. |
| HIP/Vulkan ROCmFP4 and ROCmFPX matmul/dequant kernels | No | Requires tensors encoded as ROCmFP4, ROCmFP4_FAST, or ROCmFPX types. | Large, but format-specific; a stock Q4_K/Q6_K file will not hit these kernels. |
| Tensor-aware STRIX recipes and protected-tensor routing | No | Requires a model converted with those quantization recipes. | Moves the speed/quality frontier for that artifact; it is not a generic runner effect. |
Source Trail
These are the local files behind the report. The HTML is a visual companion to the markdown report, not a replacement for the code audit notes.