Pull requests / #3375

#3375 [Benchmark] RX 9070 XT on Windows 11, Coder IQ1_M at 64K, engine 0.1.45.3 built on the PC

open · @facundopanizza · 0 Kommentare · Auf GitHub

BenchmarksSetup & installAMD / HIPModels & quantsDocumentationWindows

Beschreibung

## Problem and result

`docs/AMD_HIP.md` asks for reports of a Windows AMD card running a model ("The ready-made zip itself has not run a model on a discrete card yet - please report", and "Reporting a Windows AMD run"). This is one: an **RX 9070 XT 16 GB (gfx1201) on Windows 11**, Ryzen 9 9950X, **31 GB RAM**, running the **Coder IQ1_M at 65,536 context** in the low-RAM mode. The engine (0.1.45.3) was built on this PC with `tools\hip\build_windows.bat` because no ready-made AMD engine was published for 0.1.45.3.

Results only, no code change. Two reports, each one `tools/strata_bench.py --long` suite on a fresh server (medians):

| Test | **Before**: RAM 4800 MT/s, setup's config | **After**: RAM 5600 MT/s (EXPO), `STRATA_PREFILL_HOST_PLAN=0` | Change |
| --- | ---: | ---: | ---: |
| chat decode tok/s | **46.9** (42.5-58.8, n=9) | **56.6** (49.3-79.4, n=9) | +21% |
| chat first token (s) | 0.64 | 0.45 | -29% |
| fresh prompt 4K / 16K / 32K tok/s | 909 / 1,271 / 1,237 | 1,219 / 1,314 / 1,323 | +34 / +3 / +7% |
| 32K first token (s) | 25.95 | 24.30 | -6% |
| agent session decode tok/s | 60.5 (n=15) | 69.1 (n=15) | +14% |
| agent cache hit | 69.6 % | 69.5 % | |

- **Before** (`bench/results/2026-10-20-community-rx-9070-xt-qwen3-8-flash-next-coder-iq1-m/`): the install as setup wrote it.
- **After** (`…-iq1-m-expo/`): the configuration this PC now runs. AMD EXPO on, and `STRATA_PREFILL_HOST_PLAN=0` in the config's `env`, because on this PC the host-aware prompt plan made 16K-32K prompts 7-67% slower whenever it engaged (A/B and logs in #3518). With it off the prompt path is the same as in the first run (6144-token chunk, 96-slot ring; the first run's plan also kept 6144/96).
- **Not a clean A/B of EXPO:** the restart after enabling EXPO also left more memory free, so the second engine start got a larger GPU cache (3,081 vs 2,934 slots) and RAM copy (16.45 vs 10.86 GiB). The two effects cannot be separated with these runs. Two more starts with the "after" settings (the "off" arms in #3518) measured chat 56.6 / 58.3 tok/s and 32K 1,281 / 1,277 tok/s.

**The experimental speed projection was on** (chosen in setup) in both runs; there is no run without it.

Each folder has the report (`README.md`), per-request data (`results.json`) and the engine's start-up lines (`engine-log-excerpt.txt`); the device checks are in the first folder (`strata-device.txt`). One entry added to the list in `docs/COMMUNITY_BENCHMARKS.md`.

## Related discussion

- The `docs/AMD_HIP.md` request above (#325 is the Windows AMD thread it names).
- #3235: the `strata_bench.py` start-up `NameError`, reproduced here (see Failed).
- #3518: the host-aware prompt plan slowing long prompts on this PC (why the "after" run sets `STRATA_PREFILL_HOST_PLAN=0`).

## Approach

Measured with the repository's own `tools/strata_bench.py`, unchanged. Because its self-start path fails (#3235), the server was started with the tool's own `start_server()` in a separate process and the suite run with `--config strata-coder-iq1_m.json --url http://127.0.0.1:8080 --long` (the second with `--compare <first run>`). The tool's reports were kept as written; the hardware, build, storage, low-RAM and speed-projection facts it marks "not recorded" were filled in from Windows (WMI) and the engine log. Paths in the added files are replaced by `<HOME>`, `<STRATA>`, `<DATA>`.

## Validation

**Passed:**
- `engine\strata-device.exe --list-devices` (PATH: `engine\rocm\bin` first), e88ee39d build: lists device 0 (integrated Radeon, gfx1036, "cannot run") and device 1 (RX 9070 XT, gfx1201).
- `HIP_VISIBLE_DEVICES=1 engine\strata-device.exe --selftest`: `strata-device selftest OK` on the RX 9070 XT.
- Before: `tools/strata_bench.py --config strata-coder-iq1_m.json --url http://127.0.0.1:8080 --long`: `failures: []` and `skipped: {}` in `results.json`, suite 239 s.
- After: the same command with `--compare <first run>` and `STRATA_PREFILL_HOST_PLAN=0` in the config's `env`: the engine printed `prompt chunk auto: 6144 tokens, a 96-slot ring` and no plan line; `failures: []`, `skipped: {}`, suite 216 s; the comparison table is in that report.
- Files checked for user names, host name, home paths, IP addresses and the server's API key: none present.

**Failed:**
- `engine\strata-device.exe --selftest` without `HIP_VISIBLE_DEVICES`, as `docs/AMD_HIP.md` gives it: exits 1 because it tests device 0, the integrated GPU (output in `strata-device.txt`).
- `python tools/strata_bench.py --long` (the self-start path `BENCH.bat` uses): `NameError: name 'port' is not defined` at `tools/strata_bench.py:990`, as in #3235.

**Not run:**
- A run without the experimental speed projection, and `STRATA_HIP_WMMA=1` (off by default on Windows).
- A clean EXPO A/B (only EXPO toggled, the same free memory at engine start, several runs each).
- More than one suite per server start; needle or other correctness checks; the ready-made 0.2.0 `rx9070` package.

## Limits

One machine, one suite run per configuration, with the Windows desktop and other apps open. The engine warned that the Windows commit limit had 4.7 GiB left at the first run's start (#1607); no crash happened. The numbers include the speed projection and the low-RAM mode on 31 GB, so they are not comparable to a run with more RAM or without the control vector.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Mehr auf der Site

Links zu Install, Modellen, Releases.