Skip to content

bench: 2x TITAN RTX (sm_75) at Strata v0.1.40.3, IQ3_S at 262K - #1429

Closed
shrisha108 wants to merge 3 commits into
Niko1221:mainfrom
shrisha108:bench-titan-0.1.40.3
Closed

shrisha108 wants to merge 3 commits into
Niko1221:mainfrom
shrisha108:bench-titan-0.1.40.3

Conversation

@shrisha108

Copy link
Copy Markdown
Contributor

Community benchmark per docs/COMMUNITY_BENCHMARKS.md, re-measured on the current release tag.

Hardware: 2x NVIDIA TITAN RTX 24 GB (Turing, sm_75), nvidia-smi topo -m reports NV2 but the engine does not use it, so the same numbers should be expected without a bridge. Xeon E5-2696 v4 (no AVX-512), 125 GiB RAM, PCIe x16 gen 3 under load.

Software: AlmaLinux 9.8, driver 615.71.09, CUDA 12.9, Strata tag v0.1.40.3 (commit d5ea713) built from source with CMAKE_CUDA_ARCHITECTURES=75.

Configuration: --expert-cache auto --prefill auto --spec 4 --mtp ... --max-context 262144 --kv int8 --kv-resident 65536 --vision --vram-reserve-mib 700 --ple-io ram --layer-split auto --reasoning-budget-tokens 12000.

Results (three runs per length, prompt tokens; benchmark.py reproduces all nine):

Prompt Prompt t/s Decode t/s TTFT
4,096 831.8 / 876.3 / 868.9 65.9 / 70.9 / 71.5 3.50-3.69 s
32,768 1552.1 / 1548.9 / 1540.3 77.3 / 79.2 / 77.0 15.97-16.10 s
128,000 1636.7 / 1626.9 / 1621.7 71.1 / 73.8 / 70.7 59.13-59.69 s

8,649 experts cached (16.00 GiB of VRAM), expert cache 95-99% hit. needle_bench.py --lengths 32k,128k --depths 10,50,90: 6 of 6 found, no misses, at 125,918-token actual prompts.

Note for anyone comparing against our earlier 0.1.31 report (#389): this run holds the vision encoder resident, which costs VRAM and settles the expert slot count at 8,649 instead of ~10,000. Prompt throughput is correspondingly lower; decode is unchanged or slightly higher at 32K.

Credentials are stripped from the published config, and benchmark.py reads the key from STRATA_API_KEY.

Nine files following docs/COMMUNITY_BENCHMARKS.md. Engine v0.1.40.3
(tag d5ea713) built from source for sm_75, IQ3_S at the model native
262,144-token window, with --vision and --reasoning-budget-tokens 12000.

Three runs each at 4,096 / 32,768 / 128,000 prompt tokens: decode
70.9 / 77.3 / 71.1 tok/s, prompt 868.9 / 1548.9 / 1626.9 tok/s, medians
in the index and full ranges in the report. needle_bench 6/6 at 32k and
128k. Records that NVLink is present but unused by the engine, so a bridge
on consumer boards is not worth buying.
With STRATA_STAGE_TRIM=1 (PR Niko1221#639) each card loads only its own layers
dense weights and the freed VRAM goes to the expert cache. On this box:
resident experts 8649 -> 9387 (+8.5%), prompt throughput back to
0.1.40.1 levels (~1854 tok/s at 128K), TTFT 59.5 -> 52.2 s, decode
unchanged. Re-ran the full benchmark on the warm cache and needle_bench
(6/6). Adds run-262k.sh so the environment is reproducible.
@shrisha108

Copy link
Copy Markdown
Contributor Author

Update: STRATA_STAGE_TRIM=1 re-measured on the same box.

The report is now measured with STRATA_STAGE_TRIM=1 (PR #639) enabled, per the "please report how it goes" note in docs/MULTI_GPU.md. Effect on this box:

without with
resident experts 8,649 9,387 (+8.5%)
expert cache VRAM 16.00 GiB 16.91 GiB
prompt t/s @ 128K 1,626.9 1,853.6
TTFT @ 128K 59.5 s 52.3 s
decode @ 128K 70.6-73.8 t/s 66.9-72.2 t/s (unchanged)

Each card loads only its own layers' dense weights instead of a full copy, so the freed VRAM goes to the expert cache — the same direction as the 2x MI50 numbers in MULTI_GPU.md (8,819 → 10,626 experts). On this box it returns prompt throughput and TTFT to the levels measured on 0.1.40.1, so the win is prompt-bound rather than decode-bound.

Full benchmark re-run on the warm cache; needle_bench re-run, still 6/6 at 32k and 128k (actual prompts 125,975-125,977). Updated README.md, titan-results.json, needles.json, engine.log, and added run-262k.sh so the environment is reproducible.

Note as documented: with more experts resident the output can differ slightly from a run without the flag.

@Niko1221

Copy link
Copy Markdown
Owner

Thanks for the pull request.

We're resetting the tracker for 0.2.0-beta. There are more than 1,300 open issues and pull requests, too many for us to review properly, so we're closing everything that isn't being worked on right now. Closed here does not mean rejected.

To reopen it takes about two minutes:

  1. Rebase on main if it no longer applies, and re-run your checks on 0.2.0-beta.
  2. Start the title with its area: [Engine], [GUI], [TUI], [Benchmark], [Docs] or [Other].
  3. Fill in the pull request template: the problem and result, and the validation (what you ran, on which revision, what you saw).
  4. Comment /reopen. A check runs and either reopens the pull request or lists what is still missing.

The rules are in CONTRIBUTING.md.

@Niko1221 Niko1221 closed this Oct 19, 2026
@shrisha108

Copy link
Copy Markdown
Contributor Author

Thanks for the reset notice - understood, and no need to reopen this one: its content was already taken into main (both bench/results/2026-10-01-community-2x-titan-rtx and bench/results/2026-10-08-community-2x-titan-rtx-0.1.40.3, the latter carrying the STRATA_STAGE_TRIM=1 numbers you asked for).

The re-measurement on the current release is a new pull request, #3495: the draft standard protocol strata-qwen38-thinking-v1-draft.1, run with strata bench run on Strata v0.2.1 (engine 0.1.46.1, commit dea6920b), on 2x TITAN RTX in an HP Z440. Status complete, 12 of 12 sanity checks passed, and the folder carries the runner's own report, the engine log, the sanitized config and artifact hashes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants