改动 / #3452

#3452 [Benchmark] community benchmark: RTX 4070 12 GB (sm_89), Coder IQ1_M, 131,072-token context

open · @rodi4eg · 0 评论 · 去 GitHub 看

BenchmarksAMD / HIPNVIDIA / CUDAModels & quantsDocumentationWindowsLinux

说明

## Problem and result

Two gaps in the community data, both on the same card:

- **No Ada (sm_89) measurement exists.** `docs/MMVQ_IL_TABLE.md` says so outright ("nobody has measured sm_89 yet (we have no such card)"), and the per-architecture switch tables in `src/core/nv_defaults.cpp` only match cc 8.6 and cc 6.0 - so an RTX 4070 gets **no** table at all and takes the shared fallback.
- **The Coder IQ1_M on a 12 GB card** (the model that keeps the experts in RAM and streams the misses) was not measured on Ada.

This report adds both: a sweep of the engine's opt-in switches on an RTX 4070 with the Coder IQ1_M, the corrected final arms with 5 runs each, and the **first measured MMVQ-IL table for sm_89** (a separate PR).

The headline finding is not a switch but the **VRAM budget**: with everything loaded the engine reports **229 MiB of VRAM free** and warns that requests may stall. Every change that helped gave the expert cache more room or took pressure off the 8-core CPU pool, and the two settings that looked attractive were traps on this card (`--kv k8v4` made the short-prompt time to first token go from 0.77 s to 5.13 s; `--ple-io mmap` cost 19% of the 16K prompt rate).

## Related discussion

none

## Approach

Data only: a `bench/results/2026-10-20-community-rtx-4070-coder-iq1_m/` folder with

- `README.md` - hardware, software, model, the exact launch command, the method, the results, and the limits
- `results.json` - every request of every arm, with the engine's own timings
- `engine-log-excerpt.txt` - the engine's start-up lines (expert cache, VRAM free, PCIe share, the prefill plan)
- `matrix-summary.md` - the wider 48-configuration sweep behind the report, with the noise caveat

plus one bullet in `docs/COMMUNITY_BENCHMARKS.md`. No engine code and no default changes, so the results can be
assessed on their own.

## Validation

**Passed:**

- `python tools/strata_bench.py --config <config> --runs 5` per arm, a fresh engine per arm (the repository's own
  harness; the `port` fix in the sibling PR is needed for it to run at all on this path).
- Every number in the report is generated from the harness output, not typed by hand.
- The engine's own `expert cache hit rate`, `VRAM free` and `PCIe share` lines are in the log excerpt.

**Failed:**

- three arms in the wider sweep could not be measured: `--expert-cache 4096`, `--vram-reserve-mib 300` and
  `--kv k8v4 --expert-cache 4096` all **fail to load the model** (the card cannot hold them) - that is reported as
  a result, not left out.

**Not run:**

- HIP, SYCL and Metal builds (no toolchains on this machine; the engine here is a CUDA sm_89 source build).
- A recall (needle) test: not included in this report.
- Windows: the same harness was used on Linux only.

## Limits

- **The run-to-run spread of this box is about +/-5% for decode.** Two arms of the sweep are the *stock
  configuration re-measured* (the sweep script failed to add their flag) and they came out at 40.5, 44.5 and 40.6
  tok/s in one session. Every difference below that is not separable here, which is why the report gives medians
  with ranges and does not rank the configurations.
- One machine, one driver (580.126.09), one model build, one engine build.
- The 16K prompt test is the long-prompt case; no 128K prompt was measured (the RAM budget does not allow the KV
  cache to grow that far with the experts resident).
- The answers are not compared across configurations: the per-layer expert cache changes which side computes an
  expert and the two round differently, so a greedy answer can change in wording while staying equivalent in
  substance.

本站相关内容

相关页面的快捷入口。