Repository navigation
RTX 5060 Ti 16GB: Qwen3.8-27B IQ4_XS + MTP-2 achieves 50.2 tok/s, 37/37 ReAct #30328
Replies: 3 comments 1 reply
|
Supplementary limits (from the same run records; no new measurements) Memory pressure. The host has 15,285 MiB (14.9 GiB) of system RAM. Minimum "available" RAM sampled during the runs was 3,529 / 4,483 / 4,867 MiB (3.4 / 4.4 / 4.8 GiB) for MTP off / MTP-1 / MTP-2. System-wide swap used peaked at 2,047 / 2,048 / 4,095 MiB, i.e. the whole 4 GiB swap file was in use during the MTP-2 pass. Swap is system-wide, part of it was already in use before the runs, and it was not isolated to the llama-server process, so it should not be attributed to MTP-2 itself. Treat 16 GB of system RAM as the practical floor for this setup. Single machine. All numbers come from one host and one GPU (RTX 5060 Ti 16 GB). No cross-machine or run-to-run repetition. How the launch parameters are known.
MTP head compatibility. I did not verify that the Unsloth MTP/ head is officially specified for this exact UD-IQ4_XS file. Compatibility was established only empirically: the head loaded, and drafts were accepted at 88.5 % (MTP-1) and 77.2 % (MTP-2). Not covered: other prompt mixes, contexts longer than 8K, concurrent slots, other hardware or other quantizations. |
|
Fyi, a data point from a similar setup: Qwen3.8-27B IQ4_XS on RTX 5060 Ti 16 GB, --spec-type draft-mtp (default 3 draft tokens), b11707. • One card, 64k ctx, q4_0 KV (stock UD-IQ4_XS): MTP took decode from ~25 to ~41 tok/s for ~1.2 GB extra VRAM. Adding ngram-simple on top made it 15–20% slower: MTP already accepts ~97% of draft tokens on tool-call JSON. Full settings and results in my write-up: https://siimtolk.github.io/articles/llm-testing-overnight/ |
|
Thanks for sharing these results, Siim! Really interesting data, especially the MTP acceptance rates and the multi-GPU performance. Our 50.2 tok/s result was measured at 8K context with MTP-2, so it's not a direct apples-to-apples comparison. Two things I'm curious about:
We're particularly interested in end-to-end agentic performance rather than raw token throughput, so your findings are useful. Thanks again for contributing!😍 |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Sharing results from an internal ORDIS evaluation of Qwen3.8-27B on an NVIDIA RTX 5060 Ti 16GB, using stock llama.cpp, Unsloth UD-IQ4_XS quantization, and an external MTP head.
The goal was to exceed 25 tokens/s while maintaining task performance. MTP-2 reached 50.2 tok/s on the short-prompt decode test, with unchanged aggregate evaluation scores.
Correction: VRAM units
My original post incorrectly divided the raw MiB readings by 1000 and labelled the results “GB”. The corrected table below uses GiB (1 GiB = 1024 MiB).
VRAM figures are the highest whole-GPU
nvidia-smi memory.usedreadings sampled once per second, not isolated server-process allocations. The card reports 16,311 MiB (15.9 GiB) total.Performance results
All configurations used UD-IQ4_XS, an 8192-token context, and full GPU offload.
Decode speeds are the mean of two timed requests per prompt: three requests were sent, and the first was discarded. Each configuration completed one full evaluation pass. There are no repeated full runs or variance estimates.
Suite wall time covers the ReAct, general, and multi-step evaluations at temperature 0, seed 42. Decode throughput is measured separately and is not end-to-end task throughput.
Compared with MTP disabled, MTP-2 increased short-prompt decode throughput by approximately 81.9% and reduced suite wall time by approximately 39.8%.
Evaluation results
These are internal ORDIS test sets, not standardized public benchmarks. Unchanged aggregate scores do not establish identical generated outputs or equivalent quality on other workloads.
The two general-suite failures occurred in all three configurations:
[a-z]+, losing Turkish characters and splitting words such asdünya.The multi-step tasks use a simulated tool world. The harness executes tools in a sandbox and supplies observations to the model. A pass requires the expected value in the final answer within a six-step budget. Across all three configurations, there were zero model-written observations and zero multiple-action steps.
The failed multi-step task asked for “the port value in
config.json” without specifying a path. The sandbox file existed only at/app/config.json, and no search tool resolved a bare filename. The model attempted reads and a shell call, exhausted the six-step budget, and produced no final answer; it did not fabricate a value.A clarified version with an explicit path was not evaluated. This case is confounded by task ambiguity and the six-step budget; without a clarified rerun, we cannot isolate the cause of failure. It remains scored as a failure in the reported 7/8 result.
Reproducibility: source and artifacts
23b0202a189c44a54625aadcb37a946dd1d6278d1fb4e5f71f50526ec7cae25bb1e9279d75d899e089386a82b71e42b951ea5d00version: 0.6.0-dev (build 0, commit unknown)llama-serverSHA-256b2c18fb08ee2d44e00ef21c1e2eac8e84044914cad377ccd52722099a2b59cc1unsloth/Qwen3.8-27B-GGUF4ca720788d1e01f1bff70c033e0d0028fd02e502Qwen3.8-27B-UD-IQ4_XS.gguf40fac4050e940397dbf13087afd50f4734a11805bf9d65ef8ddd7483470e6199MTP/mtp-Qwen3.8-27B-Q4_0.gguf, from the same repository revision50d9ce5a6da381bbcfb31061cf73df94a90e6faf8efeddee379a9cb8f1501c6eThe source commit was verified through the source tarball:
git get-tar-commit-idreturns the recorded SHA, the build directory’sCMAKE_HOME_DIRECTORYpoints to the extracted source tree, anddiff -ragainst a fresh extraction shows the source tree unchanged.The binary was built from a tarball without
.git, so it reportscommit unknown. The commit attribution comes from the source and build records, not from the binary’s version output. Sharedlibggml*.sofiles were not hashed.Both GGUF files matched their Hugging Face LFS hashes after download and again after copying to the benchmark host.
Build environment
GGML_CUDA=ONGGML_CUDA_FA_QUANTS=allCMAKE_CUDA_ARCHITECTURES=120a-realLLAMA_CURL=OFFReconstructed launch command
The following MTP-2 command was reconstructed from the launcher script and per-run metadata. It is not a captured
/proccommand line.Replace
<MODELS_DIR>and<PORT>with your local values. The MTP head path below assumes it is stored directly in<MODELS_DIR>.All reactions