Issues / #2274
#2274 # Community benchmark: RX 7900 XTX 24 GB on Windows, i7-12700K, 128 GB DDR4 — IQ3_S
open · @wburzyns · 1 Kommentare · Auf GitHub
BenchmarksSetup & installServer & APIMulti-GPUAMD / HIPModels & quantsWindows
Beschreibung
Measured on 2026-10-13 with `tools/strata_bench.py --long --runs 5` (medians with ranges), Strata 0.1.43.1, the prebuilt Windows HIP engine. The same configuration was run twice in one sitting, at the start and at the end of a one-hour batch; both runs are reported. Speeds are the engine's own timings; first-token times are measured by the client over HTTP. Speed only: no correctness check was run. As far as I know this is the first community report for an RX 7900 XTX (gfx1100) on Windows. ## Hardware and software - GPU: AMD Radeon RX 7900 XTX, 24 GB (gfx1100). Undervolted to 1050 mV, with a lowered clock limit and power limit in AMD Software (-10%; the PC runs behind a 520 W UPS, so the card is kept capped). Fan curve tuned so VRAM stays at or below about 82 °C during long runs. - The card drives no display (the monitor is on the CPU's integrated GPU); the Radeon holds 2 MB with Strata closed. - CPU: Intel Core i7-12700K, 8 P-cores + 4 E-cores, **Hyper-Threading off** (12 logical processors: 0-7 = P-cores, 8-11 = E-cores). - RAM: 128 GB DDR4-3600, dual channel. - PSU: 750 W. - OS: Windows 10 (10.0.17763). GPU driver: not recorded. PCIe link: not recorded. Storage: not measured. - Strata: project 0.1.43.1, commit a0116b27; engine 0.1.43.1 (prebuilt Windows HIP). - Background load: other GPU programs closed for the runs. The benchmark tool did not detect the GPU on this Windows HIP install (its machine facts say "CPU only, VRAM not read"); the GPU facts above are filled in by hand. ## Model and configuration - Model: original Qwen3.8-Flash-Next, ISTA-DASLab GSQ-RCO **IQ3_S**, as installed by setup. - Context: 204,800 tokens; INT8 KV with 32,768 cells resident and streaming; one parallel slot; no vision. - Expert cache: auto, **8,977 experts / 17.02 GiB** in VRAM; the engine reported 784 MiB of VRAM free after start. - Thinking off and temperature 0 for the suite. ```text strata.exe --pack iq3_s --native Qwen3.8-Flash-Next-GSQ-RCO-IQ3_S-00001-of-00002.gguf --ple-gguf Qwen3.8-Flash-Next-GSQ-RCO-IQ3_S-00002-of-00002.gguf --expert-profile expert-profile.bin --expert-cache auto --prefill auto:32768 --spec 4 --spec-min-p 0.5 --mtp rt --max-context 204800 --kv int8 --kv-resident 32768 --pool-workers 7 --vram-reserve-mib 1000 ``` Environment of the config: `STRATA_HIPBLASLT_TUNING=gfx1100-hipblaslt-100500.txt`, `STRATA_WDDM_BUDGET=0`, `STRATA_PF_FUSED=1`, `STRATA_PF_GEMM=1`, `STRATA_PF_SWITCH_MIN_T=4096`, `STRATA_HIP_WMMA=1`, `STRATA_PA_FAST=1`. The engine log confirms `STRATA_HIP_WMMA: the prompt attention on matrix cores on (gfx1100)`. Changed from setup's defaults: `--prefill auto:32768`, `--pool-workers 7`, `--vram-reserve-mib 1000`, and the environment switches above (setup writes only `STRATA_HIPBLASLT_TUNING`). Why each one is there: see [Tuning notes](#tuning-notes). ## Results Two runs of the same configuration, about an hour apart (run 1 = `results.json`, run 2 = `results-run2.json`). | Test | Run 1 | Run 2 | | --- | --- | --- | | short chat, decode tok/s (100 tokens out, n=15) | 67.2 (57.8-73.4) | 67.7 (53.6-72.1) | | short chat, first token s | 0.45 (0.39-0.53) | 0.44 (0.39-0.54) | | 4K prompt (4,019 tokens), prompt tok/s | 956.4 (752.5-960.2) | 960.0 (752.1-964.3) | | 4K prompt, first token s | 4.23 (4.21-5.37) | 4.22 (4.19-5.37) | | 16K prompt (16,058 tokens), prompt tok/s | 1,829.6 (1,498.0-1,832.2) | 1,819.7 (1,491.2-1,827.8) | | 16K prompt, first token s | 8.81 (8.80-10.75) | 8.86 (8.82-10.80) | | 32K prompt (32,049 tokens), prompt tok/s | 2,042.9 (1,993.6-2,043.6) | 2,062.2 (2,015.0-2,080.1) | | 32K prompt, first token s | 15.74 (15.73-16.13) | 15.59 (15.46-15.96) | | agent session, follow-up turn first token s (n=25) | 4.19 (3.54-6.37) | 3.93 (3.28-6.39) | | agent session, decode tok/s (up to 64 out) | 69.4 (49.6-96.7) | 77.3 (52.7-102.8) | | agent session, conversation cache hit | 68.6 % | 68.8 % | The lowest value in each fresh-prompt range is the first prompt of the session (always about 20 % slower). Total suite time: 331 s and 326 s. **Long generation with thinking on** (not part of the suite; one 88,826-token answer to a coding prompt, earlier the same day, same VRAM settings but before the prompt switches were added, which do not affect decode): **72.0 tok/s** average over 1,235 s, expert cache 93.2 % hit, 4.6 % of routed experts over PCIe, about 24,150 MiB of VRAM in use. ## Tuning notes Measured on this machine during the day, one setting changed at a time. Numbers are single runs unless noted. 1. **A process-wide CPU affinity tool hurts badly.** With `strata.exe` on CoreDirector's "keep off E-cores" list, a short answer decoded at 40.3 tok/s; with it removed, 60.7 tok/s. An earlier 66K-token run in the session where the tool had been enabled for `strata.exe` fell abruptly from about 43 to about 15 tok/s partway through; with the tool off, comparable 71-89K-token runs showed no such drop. The engine pins its own pool threads (`SetThreadGroupAffinity`), and the tool's rule overrides that. Keep such tools off `strata.exe`. 2. **Pool size on a hybrid CPU with Hyper-Threading off.** The default started 11 workers on logical processors 1-11 plus the host on 0, i.e. four of them on E-cores. `--pool-workers 7` puts the host and seven workers on the eight P-cores (logical 0-7). `--pool-affinity auto` was not tried. 3. **The Windows video-memory budget.** The engine logged `Windows budgets 20837 of this card's 24560 MiB for this process`, so about 3.7 GB of the card stayed unused. With `STRATA_WDDM_BUDGET=0`, long-run decode (74-89K-token answers, thinking on) went: | Setting | VRAM in use | Decode tok/s | Expert cache hit | | --- | ---: | ---: | ---: | | budget on, reserve 400 MiB | ~21,000 MiB | 66.4 | 90.6 % | | budget off, reserve 1,500 MiB | 23,658 MiB | 68.9 | 92.5 % | | budget off, reserve 1,000 MiB | 24,147 MiB | 72.0 | 93.2 % | | budget off, smaller reserve (value not recorded) | ~24,500 MiB | dropped to 34 | — | With the card practically full, Windows starts paging GPU memory and decode halves, as in #1376. A reserve of 1,000 MiB (about 400 MiB left free) held through 89K-token runs here; nothing else uses the card. 4. **Prompt switches** (benchmark A/B, `--long`, 3 runs each, against the previous step): | Step | 4K prompt tok/s | 16K | 32K | Agent turn first token | | --- | ---: | ---: | ---: | ---: | | setup's defaults (+ items 2 and 3) | 768 | 872 | 870 | 4.91 s | | + `STRATA_PF_FUSED=1 STRATA_PF_GEMM=1 STRATA_PF_SWITCH_MIN_T=4096`, `--prefill auto:32768` | 843 | 1,379 | 1,442 | 4.48 s | | + `STRATA_HIP_WMMA=1 STRATA_PA_FAST=1` | 963 | 1,848 | 2,093 | 3.88 s | | + `STRATA_HC_UPMIX=1` | 959 | 1,856 | 2,075 | 3.90 s (no change; not kept) | Decode was unchanged within noise at every step. Before these switches, prompt speed was flat at about 870 tok/s from 16K to 32K. 5. **Not better on this machine** (controlled batch: the chosen configuration ran first and last and agreed within about 1 %, `--long --runs 5` for all): `STRATA_PF_SWITCH_MIN_T=2048`, `--spec-min-p 0.4`, `--lookup-chain 4`. In an earlier batch `--spec-min-p 0.6` also lost. All of these decoded the short chat at 58-60 tok/s against 65-68 for the chosen configuration, including the MIN_T change, which should not touch short-chat decode; the cause was not found (expert count, settings and startup lines were identical apart from the one intended change). ## Correctness and limitations Not measured: this is a speed suite. The conversation uses the model's own replies, so token counts differ a little between runs. The prompt switches change rounding, so outputs are not byte-identical to setup's default configuration. GPU power and clock limits were lowered, which costs mostly prompt speed; a stock card should read prompts faster. Engine log excerpt of run 1: `engine-log-excerpt.txt`.
Mehr auf der Site
Links zu Install, Modellen, Releases.