Pull requests / #3120

#3120 Community benchmark: RTX 5070 Ti + Core Ultra 7 270K Plus, IQ3_S at 262K on 0.1.45 - speed, and the quant yardstick against Q8_0

open · @Rui-Shi · 0 commentaires · Sur GitHub

BenchmarksSetup & installAMD / HIPNVIDIA / CUDAModels & quantsDocumentationWindows

Description

## Title
Community benchmark (results only): RTX 5070 Ti 16 GB, Core Ultra 7 270K Plus (AVX2), 63.5 GiB RAM, Windows 11; IQ3_S at 262K on the 0.1.45 release engine.

## Summary
One new folder, `bench/results/2026-10-18-community-rtx-5070-ti-qwen3-8-flash-next-iq3-s/`; no code or doc changes.

- **Speed** (`tools/strata_bench.py --long`, the install's own config, 3 runs each): decode 94.5 tok/s (short chat, 80.6-106.8); prompt 2,823 / 3,482 / 3,500 tok/s at 4K / 16K / 32K fresh tokens; agent session cache hit 68.6%.
- **Quality against Q8_0** (`tools/quant_quality.py`, Unsloth's Q8_0 run on the same PC as the reference, 39 GiB RAM budget, the rest read from the GGUF):
  - IQ3_S with the yardstick's defaults: 87.51% the same top token, mean KL 0.142, perplexity 4.061 vs 3.997 (QUANTS.md's R9700 row: 87.69%, 0.144, 4.097 vs 4.052).
  - This PC's settings (GPU expert cache, tail skip off, int8 K/V, FP8 n-gram table): 87.11%, KL 0.1435, perplexity 4.036. Per text, IQ3_S is within 1% of Q8_0's perplexity on code, docs and the other languages and 8-13% above it on the agent transcript.
  - Per-position effects against Q8_0 (95% ranges of 32-position blocks): `STRATA_ROUTE_TAIL_SKIP=7` +0.0104 (+0.0004 to +0.0196, at the edge of zero overall, separated on four of the five texts); int8 vs FP16 K/V -0.0001 (-0.0083 to +0.0084); the GGUF's IQ4_NL n-gram table vs FP8 +0.0033 overall (not separated), +0.030 on the agent text.

## What changed
- `README.md`, `results.json`, `engine-log-excerpt.txt`: the strata_bench report, with the files, settings, the quality summary and the notes below added by hand.
- `quality/`: the yardstick runs. `README.md` (method, per-text tables, observations, what was not tested), `data/q8_0.tsv.gz` (the full Q8_0 run), `data/positions.tsv.gz` (one row per position for the five IQ3_S runs), `data/*.seg.json`, `configs/` (no API key), `run.sh` (the commands), `qq_kv.py` (the tool with `--kv int8` instead of its fixed FP16), `make_positions.py`, `analyze.py` (every table; standard library only), `results.txt`, `engine-start-excerpts.txt`.

## Extra Notes
- `tools/strata_bench.py` 0.1.45 stopped twice before measuring when it started the server itself: the `port` NameError (#3096, fix in #3098) and the GBK `CMakeLists.txt` read (#2792, fix in #3092). This run used the unchanged tool with the module's `port` set by a wrapper and `PYTHONUTF8=1`.
- Observations about `tools/quant_quality.py` on Windows, not changed here: `lib_dirs` goes into `LD_LIBRARY_PATH` (the engine then cannot find the CUDA DLLs; `run.sh` puts them on `PATH`), and `mem_available_gb()` reads `/proc/meminfo`, so the free-RAM guard does not apply.
- The tail skip's KL here (skip 7 vs 0 directly: 90.61% the same top token, KL 0.075) is larger than DETAILS.md's 0.003-0.006, which was measured on generated text through the MTP verify windows; details and the hit rates in `quality/README.md`. No default change is proposed.
- At a few of the agent text's largest-KL positions, Q8_0 rather than IQ3_S is far from the text (e.g. 90% on `<|im_start|>` right after `<|im_start|>`); listed in `quality/README.md` for a check against another Q8_0 run.
- Size: 2.6 MB, most of it `q8_0.tsv.gz` (2.2 MB), kept because no Q8_0 reference ships; the full IQ3_S runs are not included (the per-position table replaces them).

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

Sur le site

Liens install, modèles, releases.