The efficient frontier of LLM inference

The efficient frontier of LLM inference

Inference engineering has its own efficient frontier, balancing latency, throughput, and quality. This article distinguishes between techniques that move a deployment along the frontier—such as batch sizing, parallelism, and quantization—and those that push the entire frontier outward, like kernel optimization, speculative decoding, and disaggregation. It explains how each works and when to use them, using examples like GLM-5.3 and Kimi K3 for agentic coding. The author also notes that the frontier is jagged, requiring empirical sweeps to find optimal configurations.

While token-level continuous batching means that there isn’t any latency from waiting for batches to start, the configured batch size determines the per-user latency and the overall throughput.
  1. amelius

    How do you know for sure that you stay on an efficient frontier when you change a parameter?

    I think this presentation says more about what knobs you can turn and in what direction the outcome will move (it may be worse than a competitor) than it says about frontiers.

  2. copperwire

    Quantization and speculative decoding unlocked major savings for our smaller models. Still chasing that ideal cost/performance ratio.

  3. jumploops

    > Speculative decoding is the process of guessing which tokens a model might generate, then validating those guesses.

    As a computer engineer, it’s always interesting to see optimizations applied at different levels of the stack.

    Speculative execution became pretty popular in the 90s, eventually used in basically every x86 design.

    Then in the mid-2000s the Speculator[0] paper brought that concept to distributed systems, which we’re still seeing work on[1][2].

    Everything old is new again (:

    [0]https://www.cs.princeton.edu/courses/archive/fall07/cos518/p...

    [1]https://www.usenix.org/system/files/osdi25-shen-weihai.pdf

    [2] https://www.microsoft.com/en-us/research/publication/distrib...

  4. armcat

    I think we can soon include "recursive depth" strategy that Astra is employing, which (I suspect) is using recursive internal state changes in the transformer as opposed to full forward-pass + sampling which has traditionally been the case with thinking/CoT. Similar method was used here (but different context - encoding tools inside the transformer weights for fast execution): https://www.percepta.ai/blog/can-llms-be-computers

  5. kgeist

    I'm currently trying to write an inference engine that combines the benefits of llama.cpp (one binary deployment, good support for heterogenous non-datacenter compute, wide quantization support) with the benefits of vLLM/SGlang (things like proper paged attention for better VRAM utilization and high concurrency).

    Datacenter hardware is expensive and there's shortage of it but llama.cpp is slow/unoptimized for concurrent use, while vLLM/SGLang easily crash on non-common setups (things like, if you do pipeline parallelism for RTX5090+RTX4090, they will randomly crash with RAM caching enabled or select wrong kernels because they usually assume that every rank is the same device type; they also don't support Q5-Q6).

    For me what's most interesting is to optimize inference for lack of good datacenter hardware and how to optimize for it best. I've been running an AI server in the office, and so far I've find these techniques most important for concurrent use on cheap hardware: pipeline parallelism (to accomodate for PCie), RAM caching (to quickly restore contexts into VRAM), speculative decoding (including domain-specific ngrams, they already can speed up code generation considerably without the overhead of a draft model), good kernels highly optimized for a specific device, support for Q5-Q6 (almost as good as Q8), FP8 contexts (more context to fit), paged attention (for better VRAM utilization), prefix caching, continuous batching (this is the default everywhere).

    So far the main […]

More from this day

2026-09-02