Skip to content

[Benchmark] 2x Quadro RTX 5000 / Qwen3.8-Flash-Next GSQ-RCO IQ3_S / strata-qwen38-thinking-v1-draft.1 - #4697

Open
arpleasa wants to merge 1 commit into
Niko1221:mainfrom
arpleasa:bench-quadro-rtx-5000-standard-028
Open

arpleasa wants to merge 1 commit into
Niko1221:mainfrom
arpleasa:bench-quadro-rtx-5000-standard-028

Conversation

@arpleasa

Copy link
Copy Markdown

Problem and result: adds one standard-v1 result for the sm_75 Turing pair nobody has reported yet: 2x Quadro RTX 5000 16 GB running Qwen3.8-Flash-Next GSQ-RCO IQ3_S at the model's native 262,144-token window. Run 20261030T110159Z-2871c04a, status complete, started with --profile so the runner recorded both cards and the engine options itself. Report: bench/results/2026-10-30-standard-quadro-rtx-5000-plus-quadro-rtx-5000-2871c04a/README.md.

Related discussion: #3854 (a single Quadro RTX 5000 laptop asking after this card family), #3495 (the 2x TITAN RTX standard submission this comparison uses), #4473 / #4477 (why an earlier run of the same setup is not in this PR, see Limits).

Hardware / model / configuration tested

  • 2x Quadro RTX 5000 16 GB (sm_75, no NVLink), layer split 24 with --pipeline-windows 2; Xeon W-2133 (no AVX-512); 94 GiB RAM; NVMe; Ubuntu 24.04.4; driver 580.178.04; 200 W per card; measured host-to-device PCIe 12.3 GB/s.
  • ISTA-DASLab/Qwen3.8-Flash-Next-GSQ-RCO-GGUF, IQ3_S, shards 4c1eb2ceb4915e11… and 316b46f3a2dbd68c… — the same two hashes as [Benchmark] 2x NVIDIA TITAN RTX / Qwen3.8-Flash-Next / IQ3_S / strata-qwen38-thinking-v1-draft.1 #3495, so model bytes are not a variable between those two runs.
  • Strata v0.2.8 (870aedd9), engine 0.1.54 built from source for sm_75 against the CUDA 12.9 toolkit (CMAKE_CUDA_ARCHITECTURES=75, STRATA_PORTABLE=OFF), so the track is custom, not a release binary. --kv int8, --expert-cache auto, --prefill auto, --spec 4 --spec-min-p 0.5, MTP draft pack, --trim-stage-weights, --vision on CPU, --conversation-cache-min-tokens 4000, 1 slot, env STRATA_SM75_PERF=1 STRATA_EXP_MODE=8 STRATA_BF16_TC=1. Hashes of the vision encoder, expert profile and MTP pack are in the report; the files themselves are not attached.

Stages run

Required only: 1 warm-up + 3 repetitions of short/prompt-4k/prompt-16k + the 12 sanity cases. 21 of 21 required requests finished, 0 failed, 0 skipped, 2 min 45 s after the model loaded. The optional four-client stage was not run: the server has one slot.

Case Prompt tok/s Decode tok/s TTFT s Capped
short 69.0 (68.8-104.4) n=3 70.3 (66.9-72.3) n=3 1.15 0/3
prompt-4k 1007.7 (1006.1-1016.4) n=3 62.3 (61.2-66.3) n=3 4.09 3/3
prompt-16k 1542.5 (1534.5-1555.7) n=3 63.6 (58.7-64.5) n=3 10.66 3/3

Sanity: 12/12 (instruction 4/4, retrieval 4/4, tool calls 4/4). Against #3495 (same protocol, quantization and model hashes): prompt 1007.7 against 955.3 and 1542.5 against 1474.6 (+5.5%, +4.6%); decode 62.3 against 76.4 and 63.6 against 79.5 (-18.5%, -20.0%) at 4K / 16K. Different engine version and different cards, so this is a stated comparison, not a score.

Values the runner could not read

Nothing in this run is nonconforming, and hardware.gpus lists both cards. Five report-level fields are null with the runner's reason, all listed in a table in the report: protocol.model_card_revision (draft protocol), run.optional_duration_s (optional stage not selected), model.source_revision, model.tokenizer_revision, model.custom_pack (no --custom-pack; the pack, expert profile and MTP pack are named with hashes in the prose).

Two things worth a reviewer's eye:

  1. --model-revision was passed as ed59f92082b1e93c0e96d60a8b11aab089b52f09. The files were downloaded from resolve/main on 2026-10-08 with no commit recorded; the revision rests on the repository not having changed since 2026-09-29 and its main LFS object ids for both shards equalling the hashes of the files used. The report says so.
  2. The runner redacts the value of --conversation-cache-min-tokens as <redacted> in config.json (its secret filter matches names containing "token"). The value is 4000 and is stated in the report.

Validation

  • Passed: strata.py bench run --profile <install>/strata-iq3_s.json --suite standard-v1 --track custom --track-notes "release 0.2.8 (tag 870aedd9) with a local sm_75 CUDA 12.9 engine build 0.1.54; 2x Quadro RTX 5000 layer split 24, pipeline-windows 2, trim-stage-weights, int8 KV, MTP spec 4, vision on, 1 slot, STRATA_SM75_PERF=1 STRATA_EXP_MODE=8 STRATA_BF16_TC=1, 200 W cap" --quantization IQ3_S --model-revision ed59f92082b1e93c0e96d60a8b11aab089b52f09 --build-options "source build, CUDA 12.9, CMAKE_CUDA_ARCHITECTURES=75, STRATA_PORTABLE=OFF" --background "headless Z4, no other GPU processes; Pi traffic to 8087 paused" at commit 870aedd9: status complete, status_reasons: [], started_engine: true, server_requests_before_run: 0, sanity 12/12, exit 0.
  • Passed: strata.py bench report bench/results/2026-10-30-standard-quadro-rtx-5000-plus-quadro-rtx-5000-2871c04a (on the test machine, same commit) re-validates the result and prints status complete, 21 of 21 required requests, 0 failed, 0 skipped; exit 0.
  • Passed: artifact hashes. Python reading results.json artifacts[] and hashing each listed file in the committed folder (outputs.jsonl, config.json, engine.log, the three provenance/ files): hashlib.sha256(open(path,'rb').read()).hexdigest() == artifact['sha256'] for all 6. sha256sum results.json outputs.jsonl on the test machine and in the commit: 1319a7227308… / 277e4312bc02…, identical, so both are exactly what the runner wrote.
  • Passed: report tables against results.json. A Python script (json.load, summaries[] filtered to phase == "performance", quality, run.required_duration_s, request_counts) compared median / min / max / n of prompt_tps, decode_tps, ttft_s, total_s, the capped counts, 6 of 9 truncated, sanity 12/12, duration 165.95 s, and the five missing fields against the report: 0 mismatches.
  • Passed: comparison with [Benchmark] 2x NVIDIA TITAN RTX / Qwen3.8-Flash-Next / IQ3_S / strata-qwen38-thinking-v1-draft.1 #3495 and the model revision. The results.json of [Benchmark] 2x NVIDIA TITAN RTX / Qwen3.8-Flash-Next / IQ3_S / strata-qwen38-thinking-v1-draft.1 #3495 fetched from its PR files (gh api repos/Niko1221/Strata/pulls/3495/files); medians 955.3 / 1474.6 prompt and 76.4 / 79.5 decode, shard sha256 4c1eb2ce… / 316b46f3… equal to ours. curl https://huggingface.co/api/models/ISTA-DASLab/Qwen3.8-Flash-Next-GSQ-RCO-GGUF → sha: ed59f92082b1e93c0e96d60a8b11aab089b52f09, lastModified: 2026-09-29; curl …/tree/main/IQ3_S → LFS oids equal the two shard hashes.
  • Passed: draft-acceptance figures. grep -oE "prompt [0-9]+ tokens.*drafts accepted [0-9]+ of [0-9]+" engine.log gives 22 lines (the 22 scheduled requests); lines 2-10 sum to 1872 of 3033 = 61.7%. The attached provenance/draft-acceptance-counts.txt gives 2066 of 3356 = 61.6% (earlier run rows with prompt 77 / 4093 / 16387) and 27981 of 42446 = 65.9% (rows of 40,000+ tokens), by awk '!/^#/{...}'.
  • Passed: privacy scan. git show HEAD | grep -inE "mtudee|192\.168|api[_ -]?key|sk-[A-Za-z0-9]|/home/[a-z]" filtered for the runner's own /home/<user> placeholder: the only remaining line is "api_key_sent": false in results.json. No user name, real home path, LAN address, host name or credential value is in any added file.
  • Failed: nothing observed.
  • Not run: the optional concurrency stage (1 slot); a --source-revision / --tokenizer-revision argument.

Limits

One configuration, one build, no A/B against another setting on this machine. The same build and configuration was run once before against the already-running production server with --url: medians 1012.3 / 1547.6 prompt and 61.5 / 61.8 decode at 4K / 16K, status complete, 12/12 sanity; that run listed one GPU instead of two (#4473) so it is left out of this PR, and it is available if wanted. The expert cache is warm by design and prompt-prefix reuse is the shared template prefix only; these are not cold-model measurements. 6 of 9 performance requests reached the 512-token cap while still reasoning, so their totals are time-to-cap. Clocks were not sampled per request. The numbers describe a source build for sm_75, not an official 0.2.8 release binary.

…trata-qwen38-thinking-v1-draft.1

Standard-v1 run 20261030T020746Z-94efe6ea on Strata v0.2.8 (870aedd) with a local
sm_75 CUDA 12.9 source build of engine 0.1.54, 262144-token context, 1 slot.
Status complete, 21/21 required requests, sanity 12/12.
README records the two runner gaps: one GPU listed on a two-identical-card split
(Niko1221#4473) and the engine options the runner cannot read from a server it did not start.
@github-actions github-actions Bot added the needs-format Title or template does not follow CONTRIBUTING.md yet label Oct 30, 2026
@github-actions

Copy link
Copy Markdown

Thanks for the pull request. To keep the tracker readable, every item needs an area prefix in the title and the parts of the pull request template filled in. This one is missing:

  • Fill in "Problem and result": what triggered the change, and how it behaves before and after.

Edit the pull request (title and description) and this note goes away on its own. If it is still missing parts in 5 days it will be closed, which is not a rejection: fix it and comment /reopen.

Details: CONTRIBUTING.md

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

Labels

needs-format Title or template does not follow CONTRIBUTING.md yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant