Drastically improve prompt processing speed for –n-cpu-moe partially offloaded models

“`html Drastically improve prompt processing speed for –n-cpu-moe partially offloaded models Drastically improve prompt processing speed for –n-cpu-moe partially offloaded models I…

By AI Maestro May 12, 2026 2 min read
Drastically improve prompt processing speed for –n-cpu-moe partially offloaded models

“`html




Drastically improve prompt processing speed for –n-cpu-moe partially offloaded models

Drastically improve prompt processing speed for –n-cpu-moe partially offloaded models

I was tuning gpt-oss-120b-F16.gguf with llama.cpp on a 24 GB RTX 3090 and found that increasing the physical micro-batch size (-ub) can significantly improve prompt processing throughput, provided you also raise --n-cpu-moe enough to keep the run within VRAM.

The llama.cpp defaults are -b 2048 and -ub 512; I included that default run as its own point in the chart. Here are the informal llama-bench results I charted:

ubatchn-cpu-moeprefillgeneration
25625240.03 tok/s33.14 tok/s
512 (default)26380.27 tok/s32.29 tok/s
2048251112.54 tok/s32.96 tok/s
4096261682.47 tok/s32.38 tok/s
8192282090.68 tok/s30.05 tok/s

Compared with the llama.cpp default -ub 512, prompt processing went from about 380 tok/s to approximately 2091 tok/s, representing a roughly 5.5x gain. Compared with the smaller -ub 256 run, it was about an 8.7x gain. Token generation dropped from around 32.3 tok/s at default settings to 30.1 tok/s at -ub 8192, representing a modest reduction of about 7%.

The catch is that the larger ubatch needs more GPU compute workspace. On my machine, -ub 4096 needed --n-cpu-moe 26, and -ub 8192 needed --n-cpu-moe 28. So this is a throughput trade: moving more MoE layers to CPU to make enough room for the bigger batch, while prompt-heavy workloads get dramatically faster. Generation performance improves only slightly.

Note: The first four prefill points are pp4096; the 8192 ubatch point is from a pp8192 run, so treat this as an informal tuning result rather than a perfectly controlled benchmark.

This trick can save you from needing to upgrade your hardware. If I had known about this trick in retrospect, I might not have bought the DGX Spark in the first place, even though it is a very nice machine and still gets slightly better prompt processing performance while doubling the token generation speed for gpt-oss-120b. Higher ubatch drastically closes the gap.

Key Takeaways

  • Increasing the physical micro-batch size (-ub) can significantly improve prompt processing throughput, provided you also raise --n-cpu-moe.
  • The trade-off is a slight reduction in token generation speed.
  • This trick can save you from needing to upgrade your hardware if you have an RTX 3090 like me.

“`

Scroll to Top