GFX1100-TG200: T5a vectorizes shared Q8_K quant superblock body
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 423
- Forks
- 53
- Avg merge
- 20h 26m
- Merged PRs (30d)
- 310
Description
Row: GFX1100-TG200
T5a vectorizes the QuantQ8KSBlock body in rocm_act_quant.h with 16-byte
vector loads, replacing the scalar per-element loop with a vectorized path.
This is the root-cause fix for lever-C's norm-quant fusion regression: the
scalar quant body was ~50us/launch, and T5a reduces it to <2us.
Always-on (not env-gated). Byte-identical output — the vectorization only
changes the instruction sequence, not the computed values.
A/B benchmark (interleaved, 5 pairs, Qwen3.5-4B Q4_K_M, 256 tokens)
| Arm | Median tok/s | Delta | ±stdev |
|---|---|---|---|
| T25 parent (all flags) | 45.2 | — | — |
| T5a feature (all flags) | 51.4 | +13.6% | 0.18% |
+13.6% over T25 parent. The largest single-lever improvement in the
campaign. Brings the full stack from -6.7% below baseline to +6.2% above
baseline (51.4 vs 48.4 tok/s).
Validated by test_rocm_quant_dot (12/12 cases, 797 assertions).
FOLLOWING_AGENTS_PROTOCOL
Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:GLM-5-2 [OMP]
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in rocm_act_quant.h at the QuantQ8KSBlock body and review the existing scalar per-element loop alongside the 16-byte vector-load path described in the issue. Run test_rocm_quant_dot, confirming all 12 cases and 797 assertions pass with byte-identical output; use the supplied interleaved benchmark to verify the reported performance improvement.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend, performance
- Issue type
- Refactor
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 65/100