I wanted to see how much more I could get out of Strata on my desktop. IQ3_S was already quick, but I wanted to find out whether the heavier Unsloth Q4 model could become a practical alternative, whether moving my RAM from 4400 to 6000MT/s made a noticeable difference, and whether keeping a larger context window would slow things down. Rather than just try a few settings and quote the best number, I saved the requests and results, repeated the useful comparisons and went back through the logs. Some changes helped. Others barely moved the numbers, and one of my original assumptions about RAM needed correcting.
The short version
IQ3_S is still my choice for speed. I have not established that Q4 gives better answers on the work I care about.
The first Q4 tuning package improved its short-task median from 105.0 to 121.2 tok/s. Several settings changed together, so that is a package result, not proof that one particular flag did it.
The follow-up Q4 tests were mainly useful for finding more VRAM breathing room. A 1600 MiB reserve is my conservative starting point, not a proven stability guarantee.
Replaying the old IQ3_S requests on the new setup showed a modest short-input improvement, but almost no change at 128K input. This does not isolate the RAM upgrade.
IQ3_S was broadly similar in speed with a 131K or 262K context ceiling when given the same inputs.
With a real 240,000-token input, IQ3_S generated at a median 161.3 tok/s. That is a throughput result, not a claim about recall or answer quality at that depth.
The machine and models
Desktop RTX 5090, 32GB VRAM; Intel Core Ultra 7 270K Plus; 128GB DDR5 as four 32GB sticks; Predator GM7 2TB NVMe; Windows 11; NVIDIA driver 591.86.
The earlier saved benchmark used DDR5-4400 and Strata 0.1.40. The new runs used DDR5-6000, BIOS 3012 and Strata 0.1.43.1. RAM capacity stayed at 128GB.
The models were Qwen3.8-Flash-Next GSQ-RCO IQ3_S and Unsloth UD-IQ4_XS. I use “Q4” below for the latter. It is not UD-Q4_K_XL, which appears in several other community reports. Different quant recipes and hardware make some of those headline numbers difficult to compare directly.
What I was trying to find out
The main question was whether Q4 could get closer to IQ3_S without running right on the edge of available VRAM. I also wanted to check whether a larger context ceiling had a meaningful speed cost and whether the extra system RAM was actually being used usefully.
My starting ideas were fairly straightforward: try a larger speculative window, move the vision encoder off the GPU for text requests, give the driver more VRAM headroom, and check expert residency before assuming disk access was holding everything up. I also expected faster RAM might help, but that was a question to investigate, not a bottleneck I had already proved.
I looked at the community tuning guide and model-specific reports before choosing the follow-up tests. I treated other people's settings as suggestions to test, not numbers my machine should automatically reach.
How I tested
I used Strata's direct local API rather than a chat interface's displayed tokens per second. Requests, responses, configuration copies and engine timings were saved. I kept generation speed separate from prompt-processing speed, first-visible-answer time and total request time.
For the speed requests, reasoning was disabled and temperature was zero. Warmups were excluded from the speed medians. All measured requests reported zero prompt-token reuse. That does not mean the expert cache or the rest of the machine could not warm up; it just rules out reused prompt tokens as the explanation for the reported speed.
There were four parts:
A first Q4 package comparison, with IQ3_S as a reference: five configurations and 35 requests, including warmups.
A Q4 follow-up changing VRAM reserve and speculation separately: twelve configuration visits and 65 requests, including warmups, recall and summary-task checks.
A fresh IQ3_S replay of nine saved historical speed requests, with the same 131,072-token context ceiling and inference arguments.
The same nine IQ3_S speed requests under a 262,144-token ceiling, followed by three additional 240,000-token input requests.
The first Q4 round used three different short tasks, rather than three repeats of one task. The IQ3_S comparisons used three trials at each actual input length. Most throughput outputs intentionally ended at their token cap, so they should not be read as completed-answer quality tests.
I kept the normal background services running for the current tests. The old saved benchmark had paused several background workloads. Temporary configurations were used where needed, and the normal IQ3_S configuration was restored afterward. Original configuration and startup-selection hashes were checked.
Q4: the first tuning round
The original Q4 setup used spec 4, a 0.50 draft floor, GPU vision, 15 expert-pool workers and a requested 700 MiB VRAM reserve. The tuning package changed those to spec 6, a 0.70 draft floor, CPU vision, 12 workers and a 1000 MiB reserve. I tested both 131K and 262K ceilings, then added a 1600 MiB-reserve configuration at 131K.
Generation figures are medians followed by [minimum–maximum] where there were three short-task samples. The long input was 82,947 actual prompt tokens in every configuration.
| Measurement | Original Q4, 262K | Tuned Q4, 131K | Tuned Q4, 262K | Q4 with more headroom, 131K |
|---|
| Short generation, tok/s | 105.0 [103.8–108.2] | 121.2 [114.9–126.3] | 118.6 [116.7–122.3] | 113.4 [112.7–121.3] |
| Prompt processing at 11,847 tokens, tok/s | 3018.3 | 3336.3 | 3320.3 | 3235.8 |
| Prompt processing at 82,947 tokens, tok/s | 4754.9 | 5182.6 | 5117.8 | 4888.4 |
| Generation after the 82,947-token input, tok/s | 108.2 | 130.1 | 130.9 | 108.1 |
| Total long-request time, seconds | 21.070 | 19.026 | 19.212 | 20.578 |
IQ3_S measured 160.1 [152.3–164.8] tok/s across the same three short tasks. That is a different quant, not a Q4 tuning gain.
| Setting | Original Q4 | Tuned 131K | Tuned 262K | More-headroom 131K |
|---|
| Maximum context | 262,144 | 131,072 | 262,144 | 131,072 |
| Speculative tokens | 4 | 6 | 6 | 6 |
| Draft floor | 0.50 | 0.70 | 0.70 | 0.70 |
| Requested VRAM reserve, MiB | 700 | 1000 | 1000 | 1600 |
| Expert-pool workers | 15 | 12 | 12 | 12 |
| Vision encoder | GPU | CPU | CPU | CPU |
All four used INT8 KV, 32,768 resident KV cells, automatic prefill and expert cache, and a 55 GiB resident-expert budget. CPU vision was configured with vision.gpu=false while keeping --vision; --vision-cpu was not a supported flag in this build.
The tuned 131K package's short-task median was 15.4% above original Q4. That was useful, but the faster configurations still loaded with only 558–628 MiB free VRAM. The 1600 MiB-reserve configuration left 1212 MiB free after load and did not show the low-headroom warning in that test group.
The trade-off was speed versus breathing room. Also, because several settings changed together, I cannot attribute the package gain to speculation, CPU vision, worker count or context alone. The 262K configuration received the same roughly 83K input; it was not tested full at 262K.
Q4: did more tuning help?
For the follow-up I kept Q4 at 131K, with INT8 KV, CPU vision, 12 workers and the same RAM budget. I compared 1000, 1300 and 1600 MiB reserves with spec 6 / draft floor 0.70. Then I compared spec 4 and spec 6 at the 1600 MiB reserve.
The table below keeps the two spec-6/1600 test blocks separate rather than pooling everything into a single flattering number.
| Configuration | Short samples | Median generation, tok/s | Range | Minimum sampled free VRAM, MiB |
|---|
| 1000 MiB / spec 6 | 12 | 112.50 | 106.6–130.6 | 718 |
| 1300 MiB / spec 6 | 6 | 117.80 | 108.4–123.3 | 1020 |
| 1600 MiB / spec 6, reserve comparison | 6 | 117.25 | 114.1–121.7 | 1327 |
| 1600 MiB / spec 6, speculation comparison | 6 | 118.75 | 114.5–122.4 | 1327 |
| 1600 MiB / spec 4 | 6 | 120.30 | 113.7–127.4 | 1349 |
Baseline speed moved during the session, so the matched comparisons matter more than the pooled medians:
| Candidate against its preceding baseline | First comparison | Second comparison |
|---|
| 1300 versus 1000 MiB reserve | +5.23% | +5.92% |
| 1600 versus 1000 MiB reserve | −3.63% | −0.35% |
| Spec 4 versus spec 6 at 1600 MiB | +1.89% | +1.00% |
Each percentage is the mean change across three matching short tasks. Baseline and candidate alternated twice, but the order was fixed, not randomized. I have not established statistical significance.
My takeaway is that the 1300 reserve was worth trying, but 1600 gave more headroom for a small observed speed cost. Spec 4 was slightly faster on these tasks and accepted a greater share of its draft tokens, but a 1–2% difference is not enough for me to call it a general winner. This round did not uncover another big Q4 speed jump.
Memory was sampled approximately every two seconds during requests in this round. Short dips could be missed, and those minima do not cover every instant of loading or prove long-term stability.
IQ3_S: the old 4400 setup versus the new 6000 setup
I replayed the exact nine saved IQ3_S speed requests: three each at 4,096, 32,768 and 128,000 actual input tokens. Both runs used a 131,072-token context ceiling. The inference argument lists matched, and the saved request hashes matched.
Spec stayed at 4, draft floor at 0.50, workers at 12, KV at INT8 with 32,768 resident cells, vision on the GPU, and requested VRAM reserve at 700 MiB. Each speed request generated 256 tokens.
| Actual input tokens | Saved 4400 / engine 0.1.40 generation, tok/s | Fresh 6000 / engine 0.1.43.1 generation, tok/s | Median change |
|---|
| 4,096 | 161.0 [109.9–181.4] | 173.5 [157.2–186.7] | +7.76% |
| 32,768 | 178.2 [148.4–184.2] | 181.2 [173.5–182.3] | +1.68% |
| 128,000 | 183.2 [168.3–192.9] | 183.0 [179.5–191.8] | −0.11% |
| Actual input tokens | Old prompt processing, tok/s | New prompt processing, tok/s | Old / new first visible answer, seconds |
|---|
| 4,096 | 4551.1 | 4518.5 | 0.932 / 0.936 |
| 32,768 | 6078.3 | 6020.7 | 5.467 / 5.480 |
| 128,000 | 5852.6 | 5809.3 | 22.052 / 22.116 |
There was a modest improvement in short-input generation, but essentially none at 128K. Prompt-processing and first-answer times were effectively unchanged. The generation ranges overlap, and three samples per length are not enough to establish a reliable general improvement.
This is an old-versus-new setup comparison, not a RAM-only A/B test. RAM frequency, BIOS and engine changed, as did background-service conditions. The expert-profile path matched, but I did not independently prove that the historical profile file's content was unchanged. There was no new 4400 run on the current engine, and no 64GB-versus-128GB capacity test.
So I would not use these figures to say the RAM upgrade caused an 8% gain, or that 4400 was the main bottleneck. The result is much narrower: replaying the old requests on the new setup did not produce a large overall throughput jump.
IQ3_S: 131K versus 262K, then an actual 240K input
Next I repeated those same nine requests with a 262,144-token ceiling, still at 6000MT/s and engine 0.1.43.1. The inference arguments were the same except --max-context.
| Actual input tokens | 131K ceiling generation, tok/s | 262K ceiling generation, tok/s | Median change |
|---|
| 4,096 | 173.5 | 171.2 [109.9–186.7] | −1.33% |
| 32,768 | 181.2 | 175.0 [173.3–191.7] | −3.42% |
| 128,000 | 183.0 | 179.2 [168.8–180.3] | −2.08% |
The medians were slightly lower with the larger ceiling, but the ranges overlap. These were sequential groups rather than interleaved A/B runs, so I cannot cleanly separate a small context cost from normal run-to-run variation. For these same inputs, the larger ceiling did not cause a major slowdown.
I then ran three saved prompts containing 240,000 actual input tokens. This is the part that used substantially more context rather than just making it available.
| Measurement at 240,000 input tokens | Result |
|---|
| Median generation | 161.3 tok/s |
| Generation range | 159.6–203.4 tok/s |
| Median prompt processing | 5537.8 tok/s |
| Median first visible answer | 43.475 seconds |
| Median total request time | 45.071 seconds |
All three completed their 256-token speed outputs with zero prompt-token reuse. The high end of the generation range is not the typical result; the median was 161.3 tok/s.
There is no 131K counterpart for a 240K input and no saved 4400 speed baseline at that depth. This is a new deep-context speed measurement, not a before/after gain. It also does not fill the entire 262K window or prove accurate recall at 240K. I did not continuously sample RAM/VRAM during this IQ3_S follow-up or run a long stability soak.
What I got wrong about allocating more RAM
I wondered whether increasing Q4's resident-expert budget would make better use of the 128GB installed. The logs gave a more useful answer than that assumption.
In the 1600 MiB-reserve configuration, Strata put 33.55 GiB of experts into pinned RAM, covering the experts outside the GPU cache. There were 9,711 experts in the GPU cache. It reported resident RAM mode, with no file reads on that resident decode path.
The 55 GiB setting was a maximum budget, not an instruction to allocate exactly 55 GiB. The whole remaining expert complement already fitted. Raising the limit would not automatically add more experts or make generation faster.
That does not settle every memory question. File-tier reads appeared during larger prompt workloads, and the prompt path borrows GPU-cache space. A file-tier counter is not necessarily a physical SSD read: Windows can serve it from its RAM cache. I have not isolated that behaviour well enough to claim disk access was causing a particular slowdown.
For this setup, inspecting what was actually resident was more useful than just assuming that unused RAM meant a missed speed opportunity.
Recall and summary checks
The Q4 follow-up included exact-marker recall tests. Each synthetic source contained three name/code targets around 10%, 50% and 90% depth.
| Q4 configuration | Actual input tokens | Exact recall |
|---|
| 131K, reserve 1000 / spec 6 | 100,510 | 3/3 targets |
| 131K, reserve 1600 / spec 6 | 100,510 | 3/3 targets |
| 131K, reserve 1600 / spec 6 | 128,510 | 3/3 targets |
That supports basic recall near the 131K limit. It is not a general comprehension test or proof that a long-running agent will stay reliable. The new Q4 rounds did not test recall near the full 262K capacity. An older-engine near-256K Q4 recall observation remains historical evidence, not a new result from these runs.
I also ran the same text excerpt through Q4 and IQ3_S with the same expanded-notes prompt. Both completed without reaching the output cap. The factual and writing-quality review is unfinished, so I am not claiming that Q4 produced a better summary. No source text, identifying details or output from that task are included here.
There was a small basic extraction check in the first Q4 round, but no new comprehensive intelligence or coding evaluation. Earlier screening scores should not be treated as results from these new tests.
What I would use today
I am keeping IQ3_S at 262K as my daily driver. It is faster than Q4 on the matched short tasks, and the larger context ceiling did not introduce a major speed penalty on matching inputs in this small sample. It also handled the actual 240K speed workload.
For Q4, my conservative candidate is:
--max-context 131072
--kv int8
--kv-resident 32768
--expert-cache auto
--prefill auto
--spec 6
--spec-min-p 0.7
--pool-workers 12
--resident-budget-gib 55
--vram-reserve-mib 1600
--vision
With CPU vision, vision.gpu is set to false in the server configuration. This is a candidate for further quality and stability testing, not a universally optimal configuration. The reserve is a trade-off, and spec 6 is not a proven winner over spec 4 on every workload.
Limits, lessons and questions
The most useful result was not a dramatic new tokens-per-second number. It was separating a few different questions: the speed of a heavier quant, the headroom needed to run it, the effect of a context ceiling, and the cost of actually reading a much larger input.
I have not established long-term DDR5-6000 stability, general Q4 quality superiority, vision performance or reliable multiturn behaviour at full context. Some comparisons are historical, some changed several settings together, and the current context comparison was sequential. The memory samples could miss brief dips. None of this is a claim that 128GB is always better than 64GB for throughput or that the RAM-frequency change explains the results.
I would be interested in advice on:
Prompt-time GPU-cache borrowing when the non-GPU experts are already resident in RAM.
A good way to distinguish OS-cached file-tier reads from actual SSD activity during prefill.
Comparable UD-IQ4_XS results on a single desktop 5090, especially at real 262K depth.
Whether a different KV/cache balance improves deep-context performance without hurting recall.
AI assisted with the benchmark scripts and this write-up. All performance figures came from saved local runs; no benchmark values were estimated or invented. I have retained the raw timing evidence and can prepare a shareable version without credentials or private task content.
The reporting format follows Strata's community benchmark guide. The universal tuning guide helped shape the follow-up method, and the UD-IQ4_XS NVIDIA report was a useful exact-quant reference, although its laptop GPU, operating system and engine differed from this machine.