Issues / #2711

#2711 Community report: Strix Halo (gfx1151, Windows): default 15 pool workers vs 6 + STRATA_VERIFY_PROFILE=1, 32.0 -> 41.7 tok/s in one ~120 W budget

open · @yoheier · 0 Kommentare · Auf GitHub

BenchmarksServer & APIAMD / HIPNVIDIA / CUDAModels & quantsWindows

Beschreibung

### Strata version, GPU, OS

0.1.41 · Radeon 8060S (gfx1151, Ryzen AI Max+ 395) · Windows 11

### Your question

On a Ryzen AI Max+ 395 the CPU cores and the GPU share one package power limit. During decode Strata runs the CPU expert pool and the GPU at the same time. With the default pool size (15 workers, chosen by the engine when `--pool-workers` is not given) the CPU takes most of the power and the GPU clock drops to about 1.77 GHz while decoding. With fewer workers the GPU stays near 2.8 GHz, and `STRATA_VERIFY_PROFILE=1` alone lifts it to about 2.3 GHz. Decode is 14-30% faster in those settings. I recorded HWiNFO64 sensors (2 s steps) during the same 7-step smoke test for each setting (table below).

1. Is the default pool size (15 workers here) meant to be that high on a Strix Halo? Fewer workers leave more of the shared power for the GPU, and in my runs 4 workers (36.4 tok/s) was no better than 6 workers (36.6 tok/s). I saw #1351, where 4 workers beat the default of 15 on an RTX 4080 SUPER, so this may be the same effect with a power limit on top. Could the default on gfx1151 be lower (for example 6), or be chosen from the power limit?
2. `STRATA_VERIFY_PROFILE=1` alone gave +19% with 15 workers (GPU clock 1770 -> 2340 MHz, CPU busy 58% -> 50%), and +14% on top of 6 workers. What does it change? I suspect it makes the CPU workers wait instead of spinning, which frees power for the GPU. That looks like the same mechanism as #2174 (waiting workers spinning and taking GPU power), but I have not checked. As far as I know `STRATA_POOL_UMWAIT` needs a WAITPKG CPU, and I do not know whether the Ryzen AI Max+ 395 has it. If it does not, is there a non-diagnostic way to get the same effect? I have not yet run a long soak test with `STRATA_VERIFY_PROFILE=1` on.
3. Could the log or Monitor tab show instantaneous tok/s as well as the running average? On Windows there are no GPU power or clock readings in About.

### Results

| run | setting | avg tok/s (smoke test) | busy CPU (total %) | CPU clock (MHz) | GPU clock while decoding (MHz) | DRAM read (GB/s) | package power (W) |
|---|---|---|---|---|---|---|---|
| A | default, 15 workers | 32.0 | 58 | 2860 | 1770 | 101 | 120 |
| B | 15 workers + `STRATA_VERIFY_PROFILE=1` | 38.1 (+19%) | 50 | 2380 | 2340 | 121 | 120 |
| C | `--pool-workers 6` | 36.6 (+14%) | 31 | 1565 | 2830 | 117 | 120 |
| D | `--pool-workers 4` (same conditions as C, without `STRATA_VERIFY_PROFILE`) | 36.4 (+14%) | 25 | 1270 | 2870 | 119 | 119 |
| E | `--pool-workers 6` + `STRATA_VERIFY_PROFILE=1` | 41.7 (+30%) | 23 | 1150 | 2855 | 127 | 117 |

HWiNFO columns are means over the decode samples after the first 8 s of each run, averaged over the whole smoke test. In the prefill steps of the same runs the CPU is nearly idle and the GPU holds 2790-2860 MHz in all five runs, so the GPU can run at about 2.85 GHz inside the same 120 W. The tok/s of A, B, C and E come from the smoke test summaries; the GPU clock figures I noted at the time were about 1,610 / 2,240 / 2,500 / 2,750-2,800 MHz with slightly different averaging.

In run E the log shows one verify window taking about 46-51 ms (about 60-65 ms in run A), with the GPU wait about 30-33 ms. The CPU part of the window is slower (about 3.5-4.8 ms), but the faster GPU more than pays for it. Expert cache hit rate stays at 92-95% and KV VRAM hit rate at 99% or more.

**Power and limits seen in the logs**

- The package power is about 138 W for the first 8-16 s of a run (PPT FAST limit about 99%), then falls to about 120 W when the PPT SLOW limit reaches 100%. STAPM stays below 60% of its limit and there is no thermal throttling flag, so PPT SLOW is the binding limit. That is also why a long answer starts fast and then slows down: on one 512-token answer the running average went from 49.5 tok/s in the first second to 33.1 tok/s at the end.
- Prompt reading is steady at about 700 tok/s in repeated runs (spread about 2%), because it is GPU-bound and the CPU pool is idle then.

**Environment**

- Machine: EVO-X2 mini PC, AMD Ryzen AI Max+ 395 / Radeon 8060S (gfx1151), 96 GB visible RAM + 32 GB BIOS carve-out
- OS: Windows 11, AMD driver 32.0.31041.1004; HWiNFO64 sensors
- Strata 0.1.41 for the five HWiNFO runs (2026-10-10), before I updated to 0.1.43. The same 15-worker default also appears in my 0.1.43 logs.
- Model: Qwen3.8-Flash-Next GSQ-RCO IQ3_XXS, `--expert-cache auto`, `--spec 4 --spec-min-p 0.5 --mtp ...`, int8 KV, `--max-context 131072` for these measurements (I raised it to 196608 and later 262144 for other tests, and saw no meaningful change in tok/s)
- `STRATA_DECODE_TIMING=1`: the attached log of run E shows `strata decode timing` lines, so it was on for E. I have no logs for A-D, so I cannot confirm it was on there. It is not set in my current config. I have not checked how much overhead it adds.
- Power mode: "Performance" mode of the EVO-X2 (the only power setting the BIOS offers on this machine; I did not change any TDP/power limit values). HWiNFO shows the limits actually in force: PPT SLOW about 120 W (the package power settles there and the "PPT SLOW Limit" reading is 100%), PPT FAST about 140 W (package power peaks at 138-140 W at about 99% of "PPT FAST Limit").

**Not measured yet (I can add these later if useful)**

- A longer soak test (20-30 min) of setting E, to check that tok/s does not fall and nothing crashes.
- The same comparison on the latest release (0.1.44.1), with a pause between runs so each starts cool.
- Optional: 8 or 10 workers, to see where the GPU clock starts to fall.

**Attached**

- `hwinfo_smoke_runs_A-E.zip`: the five HWiNFO64 CSV files (runs A-E, 2 s steps).
- `strata_engine_log_runE_0.1.41_cleaned.log`: engine log of the run E session (engine 0.1.41, 6 workers, `--max-context 131072`). I removed the AMD COMGR compiler output and my Windows user name; the Strata lines are unchanged. No logs are available for A-D.

[hwinfo_smoke_runs_A-E.zip](https://github.com/user-attachments/files/33520527/hwinfo_smoke_runs_A-E.zip)

[strata_engine_log_runE_0.1.41_cleaned.log](https://github.com/user-attachments/files/33520540/strata_engine_log_runE_0.1.41_cleaned.log)

Mehr auf der Site

Links zu Install, Modellen, Releases.