Pull requests / #3627

#3627 [Benchmark] RX 6900 XT / Qwen3.8-Flash-Next / GSQ-RCO IQ2_XS / strata-qwen38-thinking-v1-draft.1

open · @yusheng227507 · 0 コメント · GitHub で見る

BenchmarksSetup & installAMD / HIPModels & quantsDocumentationWindows

本文

## Problem and result

Two results-only `standard-v1` runs on one AMD RDNA2 machine, same engine, same model, back to back: the pre-tuning baseline and a tuned configuration. Both are `track: custom`.

This also supplies the AMD/RDNA2 side of the two-hardware pilot the draft protocol is waiting for (`strata-qwen38-thinking-v1-draft.1`), and documents a large gfx1030 prompt-path win.

| Run | Folder | Prompt-4k tok/s | Prompt-16k tok/s | TTFT 4k / 16k (s) | Short decode tok/s | Sanity |
| --- | --- | ---: | ---: | --- | ---: | --- |
| baseline | `bench/results/2026-10-21-standard-rx-6900-xt-baca09ad` | 428.2 | 447.3 | 9.60 / 36.68 | 51.1 | 12/12 |
| tuned | `bench/results/2026-10-21-standard-rx-6900-xt-3030aef9` | 722.8 (+68.8%) | 857.7 (+91.8%) | 5.71 / 19.16 | 53.2 | 12/12 |

Both: status **complete**, 21 of 21 required requests finished, 0 failed, 0 skipped. The optional concurrency stage was not run. Duration after model load: 6 min 22 s (baseline), 4 min 51 s (tuned).

## Related discussion

None for this submission. The AMD/RDNA2 side of the standard benchmark is new here; the same protocol's two-hardware pilot is what the draft is waiting for.

## Hardware and software

- GPU: AMD Radeon RX 6900 XT, 16.0 GiB (gfx1030, RDNA2, wave32, no WMMA)
- CPU: Intel Core i9-9900K @ 3.60 GHz (8 cores / 16 threads, AVX2 only); RAM 63.9 GiB; model storage on Samsung 980 PRO 2 TB NVMe
- OS: Windows 11 (10.0.26300); GPU driver 32.0.21043.19003; ROCm bundled with the engine (10.2.0a20260930)
- Strata 0.2.2, commit `011c9e600a93bbc9fd451c563501b5831c32bbca`
- Engine 0.1.47 from the official Windows `hip-rdna2` package of the 0.2.2 signed feed (not a local build): `BUILD.json` commit `76f90e58`, archs `gfx1030,gfx1031`, archive `strata-engine-0.1.47-windows-x86_64-hip-rdna2.tar.gz` sha256 `f9e8954f2bf1c153994441ffd69006f0492e1d8300650098058ede1a4d7c742a`

## Model

- `ISTA-DASLab/Qwen3.8-Flash-Next-GSQ-RCO-GGUF`, IQ2_XS, revision `ed59f92082b1e93c0e96d60a8b11aab089b52f09`
- Source weights `Qwen/Qwen3.8-Flash-Next` revision `de4b8e4d43b917e7706784d8bb445c9af86a3540`; tokenizer pinned to the quantization repository revision
- Per-file SHA-256 values are in each `results.json`

## Configuration

Shared by both runs: `--spec 4 --spec-min-p 0.5 --max-context 65536 --kv int8 --kv-resident 32768 --prefill auto --expert-cache auto`, one server slot, `STRATA_SPEC_COUPLED=1`, `STRATA_SPEC_GUMBEL=1`.

Only these differ in the tuned run:

| Setting | Baseline | Tuned |
| --- | --- | --- |
| `STRATA_HIP_PROMPT_F16` | unset | `1` |
| `STRATA_ROUTE_RESIDENT` | `0.5` | `1.0` |
| `--pcie-frac` | unset (start-up probe) | `0.15` |

`STRATA_HIP_PROMPT_F16=1` runs the prompt's 16-bit GEMMs as FP16 in and out, which the engine log says is what rocBLAS is tuned for on gfx103x; it is not bit-identical to the default. No other engine, model or sampler setting changed between the runs, and each run started from a freshly loaded engine (0 requests answered before the suite).

## Approach

Results only: two folders under `bench/results/`, one per run, and no change to the engine, the tools, the protocol or any document. Each folder holds the runner's own `README.md`, `results.json`, `outputs.jsonl` (every request with its usage, engine timings and client event offsets), `config.json` and `provenance/` (corpus manifest and the chat template used).

The two runs are deliberately in one pull request: the baseline and the tuned arm are the same machine, the same engine and the same model, so they are the comparison the tuning was based on.

## Validation

**Passed:**

- `strata bench run --profile <config> --suite standard-v1 --track custom --model-revision ed59f92082b1e93c0e96d60a8b11aab089b52f09 --source-revision de4b8e4d43b917e7706784d8bb445c9af86a3540 --tokenizer-revision ed59f92082b1e93c0e96d60a8b11aab089b52f09 --quantization "GSQ-RCO IQ2_XS"` - two runs on Strata commit `011c9e600a93bbc9fd451c563501b5831c32bbca` (v0.2.2) with engine 0.1.47 from the official Windows `hip-rdna2` package, Windows 11, driver 32.0.21043.19003 - both runs report `Status: complete. 21 of 21 required requests finished, 0 failed, 0 skipped`, and `strata bench report <folder>` re-validates each saved result.
- The corpus check: the runner verified all 34 frozen fixtures against the bundle manifest before sending anything and refuses to run on a single differing byte.
- Independent corroboration that the prompt gain is not specific to this workload, from `tools/strata_bench.py` on the same machine (different workload, temp 0, thinking off):
  - fresh 4K prompt 420.0 -> 731.0 tok/s (+74%), TTFT 9.60 -> 5.53 s
  - fresh 16K prompt 437.1 -> 844.7 tok/s (+93%), TTFT 36.77 -> 19.05 s
  - agent session first token 7.13 -> 5.28 s, decode 48.5 -> 56.9 tok/s

**Failed:**

- None. All twelve sanity cases passed in both runs (instruction 4/4, retrieval 4/4, tool calls 4/4), with identical pass sets.

**Not run:**

- The optional concurrency stage of the protocol (`--optional-concurrency`): not required by the protocol.
- The same protocol on the original (non-abliterated) weights, on another card, or on another backend: one machine, one model, one engine.
- Storage speed of the model files and background work on the machine: both are reported as "not measured" in the JSON. The machine is a desktop with normal Windows background load.

## Quality

Sanity checks passed 12/12 in both runs (instruction 4/4, retrieval 4/4, tool calls 4/4), identical pass sets. This is a regression screen, not a quality measurement; no quality claim is made beyond it.

## Limits

- The runner labels the engine "source build"; it is the official prebuilt `hip-rdna2` package from the 0.2.2 feed. The archive hash above is the provenance.
- One engine session per run, no clock or power capture, no background-work record; the machine is a desktop with normal Windows background load.
- Both runs are `custom` track because the settings are not setup defaults; the baseline is the same installation with three setup-era switches left alone, not a stock 0.2.2 default.
- The tuned arm changes `STRATA_HIP_PROMPT_F16`, which is documented as not bit-identical to the default, so the two runs are not expected to produce identical tokens; no token-level comparison was made.
- Results for a derivative tuning of this machine only; the protocol's draft status still applies.

関連リンク

インストール・モデル・リリースへのサイト内リンク。