Issues / #3099
#3099 Community benchmark: RTX 5060 Ti + RTX 3090, Unsloth UD-IQ4_XS, 262K.
open · @pluberd · 1 コメント · GitHub で見る
BenchmarksSetup & installServer & APIAMD / HIPNVIDIA / CUDAModels & quantsLinux
本文
Measured on 2026-10-18 with `tools/strata_bench.py` (suite 1, 3 runs per test, medians with ranges). Speeds are the engine's own timings; first-token times are measured by the client over HTTP. Speed only: no correctness check was run. ## Hardware and software - GPU and VRAM: NVIDIA GeForce RTX 5060 Ti + NVIDIA GeForce RTX 3090, 40 GiB VRAM - CPU: AMD Ryzen 7 9700X 8-Core Processor (8 cores, 16 threads); installed RAM: 91.6 GiB; storage: not measured - OS: Linux 7.0.0-34-generic; GPU driver: 595.91.07; CUDA: 13.2 - Strata: project 0.1.45, commit 1b7f1fe0; engine 0.1.45 - Background workloads: Ubuntu desktop running, monitors attached to the RTX 5060 Ti; only very light background work during the run (the client application that normally uses the server was paused) - Power limits: RTX 5060 Ti 150 W (default 180 W), RTX 3090 250 W (default 350 W), set by the owner, all runs - PCIe: RTX 5060 Ti in the first slot at PCIe 4.0 x8 (14.4 GB/s measured); RTX 3090 in the second slot at PCIe 4.0 **x4** (CPU root port, 6.7 GB/s measured). The board cannot run the cards the other way round. Layer split auto: CUDA0 layers 0-6, CUDA1 layers 7-47 - RAM: the model (about 94 GB, 3 GGUF shards) is larger than the installed RAM (91.6 GiB), so part of the experts is read from the SSD; about 10 GB of RAM were free while the server ran - Build: CUDA 13.2.2 (13.2.0/13.2.1 nvcc produce wrong results on sm_120, #892/#968). The engine is 0.1.45 plus one local change that only touches the Qwen3.6 path (`src/qwen35`), not Flash-Next ## Model and configuration - Model and quantization: qwen3.8-flash-next-unsloth-ud-iq4_xs - Context: 262144 tokens; parallel slots: 1 - Settings: setup's configuration, changed by hand: 262K context, `--prompt-cache-root 256`, conversation cache 4 GiB / 4 slots; thinking off for the suite; temperature 0 ```text strata --pack unsloth-ud-iq4_xs --native Qwen3.8-Flash-Next-UD-IQ4_XS-00001-of-00003.gguf --expert-profile expert-profile.bin --expert-cache auto --prefill auto --spec 4 --spec-min-p 0.5 --mtp rt --max-context 262144 --kv int8 --prompt-cache-root 256 --kv-resident 32768 --conversation-cache-mib 4096 --conversation-cache-slots 4 ``` Environment of the config: `STRATA_HC_Q8=1`, `STRATA_ROUTE_TAIL_SKIP=0` ## Method Run by `python tools/strata_bench.py --long` against the HTTP API of a Strata server (already running); model loading is not timed. One warm-up chat and a 1K prompt are discarded first. Every prompt starts with a unique tag, so the conversation cache cannot help the fresh-prompt tests. - short chat: the three questions of `tools/ab_engine.py`, up to 100 new tokens, 3 runs - 4K / 16K prompts: generated word lists sized by a calibration request, 24 new tokens, 3 fresh prompts each - agent session: system prompt and four tools, then 5 turns that each add about 1500 words of a project file and continue from the model's own earlier answers (the way agent clients resend a conversation), 64 new tokens per turn, 3 sessions; the cache numbers come from the answer's usage (`cached_tokens`) and timings (`prompt_n`) - concurrency (when run): N requests sent at the same moment, total tokens over the wall time of the burst, latency over all requests ## Results | Configuration | Actual prompt tokens | Reused tokens | Generated tokens | Runs | Prompt tok/s median and range | Decode tok/s median and range | TTFT seconds median and range | | --- | ---: | ---: | ---: | ---: | --- | --- | --- | | short chat | 46 (43-51) | 0 | 100 (100-100) | 9 | not measured | 60.7 (51.9-68.7) | 0.57 (0.46-0.81) | | 4K prompt, fresh | 4019 (4019-4019) | 0 (0-0) | 24 cap | 3 | 583.4 (581.6-584.2) | not measured | 6.91 (6.90-6.93) | | 16K prompt, fresh | 16058 (16058-16058) | 0 (0-0) | 24 cap | 3 | 1093.2 (1093.0-1098.0) | not measured | 14.71 (14.65-14.71) | | 32K prompt, fresh | 32049 (32049-32049) | 0 (0-0) | 24 cap | 3 | 1128.9 (1127.2-1130.4) | not measured | 28.42 (28.38-28.46) | | agent session, follow-up turns | 14594 (14590-14611) at the last turn | see below | up to 64 | 3 | see below | 75.3 (54.8-86.5) | 6.81 (6.33-7.00) | Ranges are the lowest and highest of the runs; `Runs` counts requests that returned a token. ### Agent session (conversation cache) Cache hit over the follow-up turns: 68.8 % (68.6-68.8); earlier-turn tokens read again per session: 3 (3-72) (earlier turns that the cache did not hold; the 13720 (13717-13720) new tokens of the files are read once); first turn (nothing cached) first token: 4.91 s (4.91-4.92). | Turn (run 1) | Prompt tokens | Reused | Read | Prompt tok/s | First token (s) | Decode tok/s | | ---: | ---: | ---: | ---: | ---: | ---: | ---: | | 0 | 609 | 0 | 609 | 124.7 | 4.905 | 49.9 | | 1 | 3757 | 637 | 3120 | 453.7 | 6.903 | 54.8 | | 2 | 5290 | 3821 | 1469 | 232.7 | 6.332 | 57.4 | | 3 | 8723 | 5353 | 3370 | 483.4 | 6.995 | 73.5 | | 4 | 11646 | 8784 | 2862 | 420.8 | 6.823 | 75.3 | | 5 | 14590 | 11691 | 2899 | 426.8 | 6.813 | 61.4 | Per-request data: `results.json`. Engine log lines from the start: `engine-log-excerpt.txt` (when this run started the server). ## Correctness and limitations Not measured: this is a speed suite. The conversation uses the model's own replies, so token counts differ a little between runs. Machine details come from the server, `nvidia-smi`/`rocm-smi` and the OS; background load and power limits were added by hand. The short chat reads only 46 tokens, so the prompt speed of short prompts is dominated by a fixed start-up cost per request (about 2 s here).
関連リンク
インストール・モデル・リリースへの站内リンク。