Pull requests / #1802

#1802 bench: RX 9060 XT IQ2_XS and IQ3_XXS community results

closed · @isoux35 · 0 comments · View on GitHub

BenchmarksSetup & installAMD / HIPModels & quantsDocumentationWindowsLinux

Description

## Summary
Community measurements on a Windows desktop with an RX 9060 XT 16 GB, Ryzen 7 9800X3D and 64 GB RAM, using the packaged Strata 0.1.40.3 HIP engine and Qwen3.8-Flash-Next GSQ-RCO IQ2_XS / IQ3_XXS.

- IQ2_XS prefill sweep: 2,048 / 4,096 / 8,192 / 16,384, with three measured runs per prompt size and configuration.
- Matched 32K-context coding comparison: three synthetic fixtures, three runs each per model; both completed 9/9 tasks and 243/243 acceptance checks.
- One 113,501-token recall request with a 122,880-token context limit, plus conversation-prefix reuse and tool-call smoke checks.

## Tested models and settings

Models: **ISTA-DASLab Qwen3.8-Flash-Next GSQ-RCO IQ2_XS and IQ3_XXS**, using existing prepared packs and a Q2_0 MTP runtime pack. Engine: **Strata 0.1.40.3, native Windows HIP**, not Vulkan or WSL inference. OpenCode 1.18.34 / OpenChamber 1.24.2 were the clients.

Common settings (portable arguments; model paths omitted):

```text
STRATA_HIP_WMMA=1
--expert-cache auto --prefill 8192
--spec 4 --spec-min-p 0.5
--kv int8 --kv-resident 32768 --vram-reserve-mib 2048
```

**Context:** 32,768 for both models in the matched coding comparison; 122,880 for the IQ2_XS prefill sweep and near-limit recall. The sweep varied prefill only. One parallel request; vision and speed projection off. Sampling: temperature 1.0, top-p 0.95, top-k 20, min-p 0, seed 42, repeat penalty 1.0, presence/frequency penalties 0. Coding used medium reasoning with an 8,192-token output allowance; recall used low reasoning with a 1,024-token cap.

## Measured results

### Matched 32K coding: IQ2_XS versus IQ3_XXS

Three synthetic TypeScript fixtures, three runs each per model:

| Measurement | IQ2_XS | IQ3_XXS |
| --- | ---: | ---: |
| Tasks passed | 9/9 | 9/9 |
| Acceptance checks across repetitions | 243/243 | 243/243 |
| Median task time, seconds | 99.988 | 136.321 |
| Task time range, seconds | 55.463–145.326 | 81.012–166.632 |
| Weighted engine decode, tok/s | **49.61** | **42.52** |
| Minimum available host RAM, GiB | 8.92 | 3.11 |
| Peak dedicated adapter counter, GiB | 14.88 | 15.04 |
| Peak shared adapter counter, GiB | 34.16 | 41.12 |

IQ2_XS had about **27% lower median task time** and **17% higher weighted decode throughput** on these tasks. Both passed the limited checks; this does not establish equal general answer quality. The 243 checks are 81 across the three fixtures repeated three times. Weighted decode includes reasoning and can include client helper requests. Shared GPU memory is system RAM, not extra VRAM; adapter peaks must not be added together. IQ2 ran first, then IQ3; order was not randomized.

### IQ2_XS prefill tuning at 122,880 configured context

Median results over three fresh-prompt requests per size and setting (no prefix reuse; loading excluded):

| Prefill | 8,019-token input: prompt / decode tok/s | 8K wall seconds | 28,180-token input: prompt / decode tok/s | 28K wall seconds |
| ---: | ---: | ---: | ---: | ---: |
| 2,048 | 346.3 / 53.2 | 25.400 | 347.0 / 57.9 | 83.355 |
| 4,096 | 593.3 / 52.7 | 15.703 | 593.1 / 57.0 | 49.558 |
| **8,192** | **879.4 / 56.3** | **11.212** | **807.4 / 57.6** | **37.008** |
| 16,384 | 876.3 / 55.3 | 11.384 | 811.2 / 57.8 | 36.778 |

Prefill 8,192 reduced median wall time by about **56%** versus 2,048 at both lengths; 16,384 gave no meaningful further benefit. Recall content passed 24/24, but strict plain JSON passed 0/24 because responses used Markdown fences. Outputs were only 111–120 tokens, and adaptive expert/OS caches remained within each arm.

### IQ2_XS large-context recall

**One run**, context 122,880, prefill 8,192; **113,501 input / 119 output / 0 reused tokens**:

| Measurement | Result |
| --- | ---: |
| Engine prompt processing | **789.9 tok/s** |
| Engine decode | **46.9 tok/s** |
| First streamed token (includes reasoning) | 144.157 s |
| Total wall time | 146.629 s |
| Minimum available host RAM | 9.49 GiB |

All three start/middle/end markers were recovered, with the same Markdown-fenced JSON issue. This is a single simple recall test, **not validated 120K coding or an 8K answer at the limit**.

**Configuration retained on this desktop:** IQ2_XS, prefill 8,192, context 122,880, with normal client compaction retained; IQ3_XXS remains a fallback. This is not a comparison against the previous dense Qwen 27B llama.cpp setup.

Full ranges, per-run data, cache/tool checks and reproduction details: [benchmark report](https://github.com/isoux35/Strata/blob/33b9505360b3921d712e448660df0fd86cf05b7c/bench/results/2026-10-10-community-rx-9060-xt/README.md) and [methods](https://github.com/isoux35/Strata/blob/33b9505360b3921d712e448660df0fd86cf05b7c/bench/results/2026-10-10-community-rx-9060-xt/METHODS.md).

## What changed
Adds only `bench/results/2026-10-10-community-rx-9060-xt/`: a short report, detailed methods, per-run JSON, synthetic fixtures and generated solutions, and reproduction scripts. No engine, backend, installer or default-setting changes.

## Extra notes
All 18 exported solutions were independently rechecked (486 passing acceptance checks, zero failures), and all 42 solution-file hashes verified. The 70 committed files match the reviewed export byte for byte. Credentials, private configurations, personal paths, conversation logs, model binaries and executable hashes are excluded.

Limitations are explicit: one machine, fixed arm order, adaptive expert caches, short decode outputs in the prefill sweep, fenced JSON failures, and a single large-context recall test rather than complex long-context coding. Memory readings are whole-host/whole-adapter observations; the short stability window is not an overnight guarantee.

Related on strata.com

Editorial links to help you install, pick models, or read release notes — not part of the upstream thread.