top of page

vLLM Push-Based KV Transfer Targets the Wait Between Prefill and Decode

2 hours ago
11 min read

vLLM push-based KV transfer shifts cache handoff work earlier, with AWS reporting up to 3x better first-token latency than its pull-based benchmark. Time to first token, or TTFT, measures how long a request waits before generation begins producing output. The change targets the coordination between processing a prompt and generating its answer.

In its October 19 post, AWS also reports up to 30% better time per output token, or TPOT, which measures generation time per subsequent token. Those results concern Qwen3-32B on Amazon EC2 P5en instances using AWS Elastic Fabric Adapter, the company’s low-latency server interconnect. They describe a particular comparison, rather than a general acceleration promise for every vLLM deployment.

The central contest is push versus pull coordination. Push prepares the receiving engine earlier; pull preserves a later decision about where generation should run. For operators separating prompt processing from generation, the news raises a concrete question: how much routing flexibility should they exchange for a shorter handoff?

vLLM push-based KV transfer changes when the handoff begins

The change moves preparation ahead of the handoff, reducing work that must happen after prompt processing finishes.

Prefill, the inference stage that processes input tokens, produces a key-value cache containing intermediate attention state needed for subsequent generation. Decode, the stage that generates output tokens, consumes that state. Disaggregated inference places these stages on separate engine instances, creating a transfer boundary between them.

AWS’s KV transfer benchmarks compare push and pull using one prefill instance and one decode instance. The test disables prefix caching, which otherwise allows requests to reuse previously computed state. It uses 128 output tokens, input lengths from 1,000 to 16,000 tokens, and request rates from one to eight queries per second.

At the demanding end, AWS reports approximately 1,744 milliseconds of TTFT for pull, compared with approximately 540 milliseconds for push. Its reported TPOT comparison reaches approximately 10.4 milliseconds for pull and approximately 7 milliseconds for push. At light load and shorter inputs, the modes perform similarly.

Those boundaries matter more than the headline multiplier. The result identifies a workload where handoff coordination becomes consequential. It does not establish that lightly used services, different models, or larger deployments receive the same benefit.

The practical implication is a change in what operators should investigate when responsiveness deteriorates. A slow first response does not automatically mean prompt computation needs more accelerator capacity. Time spent organizing the next stage deserves separate scrutiny.

That distinction also changes how product teams interpret a performance incident. If users report delayed answers, teams need to distinguish waiting for computation from waiting for coordination. Adding resources addresses those causes differently, and an aggregate latency chart can hide their separation.

The benchmark therefore supports a focused conclusion: the sequence surrounding cache transfer can materially affect the measured experience. The appropriate next step is identifying whether that sequence occupies a meaningful portion of a particular service’s delay.

It would overstate the evidence to call this a universal replacement for pull. A more useful reading is that vLLM now exposes another scheduling choice. Operators can evaluate that choice against the workload and routing behavior they actually need.

The timing is relevant because this is an implementation-level serving improvement, rather than a model announcement. Teams can investigate it without assuming a change in model quality. The potential benefit sits in how an existing request moves through infrastructure.

Serving teams face a coordination problem alongside a compute problem

The pressure falls on operators whose latency targets depend on separating prompt processing from token generation.

vLLM’s disaggregated prefilling documentation frames separation around independently tuning first-token and between-token latency. It also identifies interference when prompt processing enters an engine already generating answers. The documentation labels the feature experimental and explicitly cautions against treating disaggregation itself as a throughput improvement.

That is an important counterweight to broad architectural claims. Separating work creates opportunities for independent tuning, but it also introduces responsibilities. The system must coordinate state, select destinations, and keep requests progressing across an additional boundary.

For a hypothetical document assistant, these responsibilities map to recognizable user behavior. A user submits a lengthy document and waits for an answer to start. Meanwhile, other users expect their existing responses to continue arriving steadily.

These are related expectations, but they are not interchangeable. A service can start answers promptly and then deliver them unevenly. It can also generate smoothly once started while making users wait too long before anything appears.

The push proposal matters because operators must evaluate both experiences. A connector decision should be judged against response startup and ongoing generation, rather than a single favorable average. Otherwise, a team risks improving the metric it watches while overlooking the experience users notice.

This creates pressure on infrastructure owners to improve their measurement model. They need visibility into the request’s stages, along with its total duration. Without that separation, coordination overhead can be mistaken for model execution time.

It also creates pressure on buyers evaluating hosted inference. A reported acceleration ratio needs a baseline, a workload, and an operational boundary. Buyers should ask what changed underneath the result before using it to compare services.

The distinction is especially relevant when an application mixes long and short requests. An average prompt length conceals the requests that create the greatest scheduling demands. A convincing evaluation should preserve that variation instead of replacing it with a uniform input.

None of this establishes that disaggregation is necessary for every application. The decision still begins with a service’s observed constraints. If the current architecture meets its response targets, adding a transfer boundary needs its own justification.

For teams already operating separate stages, however, the connector becomes part of performance planning. Its behavior affects what the router must know and when resources become committed. That makes the change relevant beyond the engineer maintaining transfer code.

Product and platform teams consequently need a shared description of success. A useful description connects user-visible waiting with infrastructure measurements and deployment conditions. It avoids treating a connector’s benchmark as a complete forecast for the application.

Teams maintaining these evaluations can organize their findings in a searchable knowledge base. Keeping configurations beside conclusions helps later reviewers understand why an earlier result did or did not apply.

Early destination setup gives push its advantage over pull

Push changes the dependency order around transfer, rather than eliminating the need to move cached state.

The push connector design documents NixlPushConnector, an alternative using the NVIDIA Inference Xfer Library, or NIXL, to coordinate transfers. The receiving decode engine allocates destination memory and communicates its location. The prefill engine then writes completed state into that prepared destination.

Registration and completed prompt state can arrive in either order. The connector matches them before issuing the write. A background writer thread handles push-specific operations, while completion accounting tells the engine when received state is ready.

This is the essential vLLM push transfer explained: arrange the destination while useful computation continues, then complete the handoff when its prerequisites exist. That sequencing reduces the need to begin all coordination after prefill finishes.

The distinction is easier to assess as a dependency problem. If preparation cannot start until computation finishes, the request waits for both in sequence. If preparation overlaps computation, some waiting disappears from the path that determines when generation can begin.

The overlap still has conditions. The receiver must exist, its destination must be suitable, and the transfer must complete correctly. Preparing early changes when these responsibilities occur; it does not make them optional.

This is why simply describing push as a faster network operation misses the mechanism. The architectural question concerns which work blocks progress. A transfer can use capable hardware while surrounding software still makes a request wait unnecessarily.

Background execution introduces another useful distinction. Work that no longer blocks an engine loop still consumes resources somewhere. Operators should therefore ask where the work moved and whether that location remains healthy under sustained demand.

The same reasoning applies to interpreting TPOT. A transfer-related change can affect ongoing generation if coordination competes with the execution path serving existing requests. Evaluating only the incoming request would miss that interaction.

For vLLM push versus pull, the decisive comparison is consequently broader than write versus read. It includes destination selection, preparation timing, execution ownership, and readiness signaling. These details explain why changing a connector can alter application behavior without changing the model.

The implementation also illustrates why correctness belongs beside performance in any deployment decision. Receiving some state is insufficient if generation requires the complete expected state. A successful handoff needs an unambiguous readiness condition, especially when work spans multiple participants.

NVIDIA provides a useful industry reference through Dynamo’s disaggregated serving architecture. Its documentation describes separate prefill and decode pools, router orchestration, and topology-aware transfer considerations. This establishes a comparable coordination problem, rather than evidence of a performance ranking against the vLLM connector.

Dynamo is also an integration context for serving engines, so framing this as a simple company-versus-company race would be misleading. The relevant competition is between ways of organizing requests. Each approach must reconcile placement, state movement, and generation readiness.

That comparison puts the AWS result in perspective. The contribution concerns a specific point in a larger serving workflow. Its value depends on whether improving that point advances the service’s actual response targets.

Earlier decoder selection trades flexibility for overlap

The strongest reason to retain pull is the value of choosing a destination later.

The push sequence requires a prepared receiver before the handoff. That commitment enables overlap, but it also creates the article’s central tradeoff. An operator cannot evaluate reduced coordination delay independently from the timing of destination selection.

Consider a hypothetical service where requests arrive unevenly across a decoder pool. Selecting a destination early reserves a path before prompt processing completes. Selecting later gives the routing decision more recent information about the system.

Neither choice is automatically superior. If conditions remain predictable during prefill, early selection can be a reasonable exchange. If conditions shift substantially, later selection can have operational value that a transfer-focused benchmark does not capture.

The relevant question is how often that flexibility changes an outcome. An operator should examine whether delayed selection meaningfully reduces queues, avoids overloaded workers, or improves service consistency. Without those observations, flexibility remains an abstract benefit rather than a measured requirement.

This is also why a paired deployment cannot settle every routing question. It provides a controlled setting for examining a handoff. It offers less evidence about choices among many destinations, particularly when those destinations have different workloads.

The cache-reuse story adds another boundary. In an October 12 post, vLLM describes bidirectional KV transfer, which returns reusable state from decode to prefill on later conversation turns. That work addresses repeated computation as conversation history grows, using NIXL reads in both directions.

This represents a different optimization objective. A shorter forward handoff and less repeated prompt computation can both help responsiveness. Their benefits should not be assumed to combine automatically, and they should not be compared as though they measure identical work.

A conversational assistant illustrates the distinction. Its first request and a later request containing accumulated history can place different demands on the infrastructure. Improving one transition does not establish the best policy for the entire conversation.

For vLLM push versus pull, this means evaluations should include session behavior when the product depends on it. A uniform stream of unrelated prompts answers a narrower question. It cannot substitute for testing the application’s repeated interactions.

The disabled-cache benchmark deserves the same careful treatment. Removing reuse helps isolate transfer behavior, but production reuse changes how often that behavior matters. An application that frequently avoids a full transfer has a different opportunity profile.

That does not invalidate a controlled comparison. It defines its purpose. Operators should preserve the isolated result while adding a workload evaluation that restores the application’s actual caching and routing decisions.

There is also an evidence boundary around the reported gains. The numbers come from the participating technical source, rather than an independent replication reviewed here. They warrant investigation, but they do not support claims of universal superiority or guaranteed fleet savings.

The skeptical conclusion is therefore specific: early preparation has an understandable mechanism, while its overall value remains deployment-dependent. A sound adoption decision must measure the coordination benefit alongside the flexibility it exchanges.

The pull baseline is changing too

Part of the reported advantage concerns where transfer preparation executes, a design choice that pull can also revisit.

A public reader-thread proposal targets NIXL pull submission. Its stated purpose is moving read submission to a dedicated background thread, reducing work on the engine’s forward execution thread. The proposal keeps completion polling on the forward thread.

The page reviewed for this article lists the proposal as open. That establishes ongoing development, not a delivered performance result. It provides no basis for claiming that a future pull implementation matches push or closes a particular percentage of the gap.

Its significance is conceptual. Transfer direction and execution placement are separate choices. Push can benefit from earlier destination preparation, while background execution addresses another source of interference.

This distinction changes the interpretation of a benchmark lead. A comparison captures the implementations being tested at that moment. It does not permanently assign every observed benefit to the architectural label attached to the winner.

For buyers and operators, the practical consequence is version awareness. “Push” and “pull” are insufficient descriptions of an evaluation environment. The relevant implementation and configuration determine which preparation steps run where.

That makes maintenance history part of performance evidence. A later connector update can alter the baseline without changing the model or hardware. Teams should revisit earlier conclusions when the execution behavior changes materially.

The reader-thread work also offers a useful test of the underlying explanation. If background submission improves pull under comparable conditions, that would support the importance of execution placement. It would not, by itself, erase the separate benefit of overlapping destination setup.

Conversely, a limited improvement would still need interpretation. The remaining delay might involve other dependencies, or the workload might expose different constraints. A disappointing result would not automatically prove that the proposal’s design has no value elsewhere.

This is where performance reporting needs restraint. A useful report separates what was measured, what mechanism explains it, and what remains hypothetical. Combining those categories produces confident headlines but weak operational guidance.

For vLLM push-based KV transfer, the durable lesson is to examine the work surrounding a handoff. Connector names summarize behavior, but they do not explain every delay. Profiling the actual execution path remains necessary.

The evolving baseline also discourages a premature standardization decision. Teams can adopt a configuration that serves current needs while retaining evidence for revisiting it. The objective is a reliable service, rather than permanent allegiance to a transfer direction.

Watch replication, pull-thread progress, and routing behavior

The next useful evidence will show whether the isolated coordination gains survive realistic deployment choices.

Over the next one to three months, the first signal to watch is independent replication across application-shaped workloads. The most informative results would retain the same comparison while varying prompt distributions, caching behavior, and deployment size. Consistent improvements would strengthen the case for broader adoption.

Replication should also distinguish response startup from ongoing generation. A service needs to know whether it becomes more responsive throughout an interaction. Favorable results confined to an unusually demanding benchmark point would support a narrower deployment decision.

The second signal is progress on background submission for pull. A reviewed and released implementation, followed by a comparable benchmark, would clarify how much execution placement contributes. A smaller gap would strengthen the mechanism explanation while reducing the case for treating push as categorically superior.

That signal needs an actual measured result. A merged change alone would establish availability, rather than performance parity. Operators should resist converting development activity into a numerical claim before the relevant workload has been tested.

The third signal is routing behavior beyond a fixed prefill-decode pair. Results should show what happens when early destination selection meets changing decoder demand. Stable user-facing latency would strengthen the case that overlap remains valuable under realistic placement pressure.

If early commitments instead produce longer queues elsewhere, the preferred deployment boundary would narrow. Push might still suit predictable workloads, while later selection remains valuable for others. That would refine the result rather than negate it.

These signals keep the discussion tied to the original event. The question is whether moving preparation earlier improves a complete service, under its own operating conditions. Broader claims about inference economics require broader evidence than this connector comparison supplies.

For teams deciding what to do now, begin with a representative request trace and a clearly defined response target. Preserve the model, caching policy, routing behavior, and implementation version when comparing connector results. Record where waiting occurs, then examine whether earlier preparation reduces that delay without creating a larger queue elsewhere. Keep the controlled benchmark separate from the production-shaped evaluation so each answers a clear question. Read the design and benchmark conditions before translating a reported ratio into a capacity decision. For vLLM push-based KV transfer, the useful action is a bounded evaluation of the handoff your application actually performs. Does earlier destination preparation improve the experience your users receive under the load your service must handle?

Give every agent the context to do better work

Connect your agents to the knowledge, decisions, and history already organized in remio.

remio currently supports Windows 10+ (x64) and Macs with Apple silicon.

Your AI Partner at Work
Get more done with remio

Plan. Create. Deliver.
All in one place.

bottom of page