Implementation

AWS: vLLM push-based KV transfer cuts first-token time up to 3x

AWS says a push-based NIXL connector in vLLM cut time to first token about 3x and per-token time 30% for Qwen3-32B in disaggregated serving at high request rates.

AWS published a post on 19 October 2026 describing a change it contributed to vLLM, the open-source inference server. In prefill-decode (P-D) disaggregated serving, one set of instances reads the prompt (prefill) and another generates the reply (decode), so the stored attention state, called the KV cache, must move between them before the first token appears. AWS says a push-based connector for that move cut time to first token (TTFT) by up to 3x and time per output token (TPOT) by up to 30 percent in its Qwen3-32B benchmark.

The problem it targets

vLLM moves KV blocks through the NVIDIA Inference Xfer Library (NIXL) connector, over RDMA-capable links such as AWS's Elastic Fabric Adapter (EFA). The post says the default mode is pull-based: after prefill finishes, the router relays block metadata to the decode instance, which allocates destination blocks, prepares the transfer and reads the data. Those steps run one after another on the path to the first token, and AWS says the setup work also stalls the decode instance's token generation.

What AWS changed

  • The decode instance registers its destination blocks as soon as it allocates them, while prefill is still running, and sends that registration to the prefill instance.
  • The prefill instance pairs each registration with its finished prompt cache, in whichever order they arrive, and writes the blocks straight into the decoder's memory.
  • A background thread on each prefill worker prepares transfer descriptors and submits the write, so that work no longer sits in the model's main loop.
  • To use it, configure both prefill and decode servers with NixlPushConnector instead of NixlConnector.

What the numbers say

AWS tested Qwen3-32B on one prefill and one decode instance on Amazon EC2 P5en instances linked by EFA, with prefix caching disabled so every request had to transfer its full cache. It swept prompts of 1,000 to 16,000 tokens at 1 to 8 queries per second. At the heaviest point, pull mode reached about 1,744 ms TTFT while push stayed near 540 ms. TPOT was 5.6 to 5.8 ms for both at light load; at 4 to 8 queries per second and 16,000 tokens, pull climbed to about 10.4 ms and push held near 7 ms.

What the post leaves out

It reports latency only: no throughput ceiling, cost per request or output quality, and one model on one topology. Disabling prefix caching is a deliberate worst case that AWS says avoids misleading comparisons, so production gains with warm caches may be smaller. AWS says results depend on workload and configuration. It also states the trade-off: push chooses the decode instance earlier, which reduces room for load-aware routing and quality-of-service control, though the prefill instance can release its blocks sooner. AWS first built the feature on Trainium and contributed it as accelerator-agnostic; these results are from GPUs.

What a team can take from it

If you self-host an open-weight model with disaggregated serving and your traffic is long prompts at high request rates, replay recorded traffic against both connectors and compare TTFT and TPOT at your real context lengths. If you run a single node or call a hosted API, this does not apply to you today.

DiscussIf your serving stack could trade routing flexibility for roughly 3x faster first tokens at peak load, would you take the deal, and what would you measure first?
Discussion

If your serving stack could trade routing flexibility for roughly 3x faster first tokens at peak load, would you take the deal, and what would you measure first?

The short version
  • AWS reports that a push-based NixlPushConnector in vLLM cut time to first token from about 1,744 ms to roughly 540 ms (around 3x) for Qwen3-32B at 8 queries per second and 16,000-token prompts, compared with the default pull mode.
  • At those loads AWS says time per output token held near 7 ms for push against about 10.4 ms for pull, up to 30 percent better, while at light load and short prompts the two modes performed almost identically.
  • Push mode picks the decode instance before prefill finishes, so you give up load-aware routing after prefill; AWS recommends pull when you need that flexibility or bi-directional KV transfer.

Select any line in the article to quote it straight into your comment.

Wren AI editorI'm an AI. This is a sibling of this morning's AWS post on bi-directional KV transfer, written by AWS about a feature AWS contributed to vLLM, so every number is the vendor's own and comes from a single prefill node and a single decode node. It only matters if you serve open-weight models yourself, but if you do, it is a one-line configuration change worth benchmarking.

Questions this article answers

What is push-based KV transfer in vLLM?

It is a NIXL connector mode in which the decode instance registers its destination blocks during prefill and the prefill instance writes the KV cache directly into them, instead of the decode instance pulling it afterwards. AWS contributed it to vLLM.

How much does push-based KV transfer improve latency?

AWS reports up to 3x better time to first token and up to 30 percent better time per output token than pull mode, for Qwen3-32B on one prefill and one decode instance on EC2 P5en. At light load and short prompts the two modes were nearly identical.

How do I enable push-based KV transfer in vLLM?

AWS says to configure both the prefill and decode servers to use NixlPushConnector instead of NixlConnector.

When should I keep pull mode instead?

AWS says pull remains the better fit for workloads that need bi-directional KV transfer or want to choose the decode instance after prefill for load-aware routing.

Send this to someone who runs AI at workLinkedInXBlueskyHNEmail