Changes proposed
Summary
This RFC proposes connecting the existing Mooncake transfer paths into one end-to-end disaggregated vLLM-Omni pipeline and validating it on a physical multi-node InfiniBand cluster.
The initial target is Qwen3-Omni:
Multimodal Encoder
│ encoder embeddings
▼
Thinker Prefill
│ KV cache
▼
Thinker Decode
│ hidden states / embeddings
▼
Talker
│ codec tensors
▼
Code2Wav
The proposal reuses existing infrastructure:
- Encoder → Prefill: Mooncake-backed vLLM EC connector
- Prefill → Decode: existing vLLM
MooncakeConnector
- Thinker → Talker / Talker → Code2Wav: vLLM-Omni
MooncakeTransferEngineConnector
The main work is to complete the missing integration, use tensor-native payloads for Qwen3-Omni stage outputs, and provide reproducible validation over real InfiniBand verbs/RDMA rather than only local or simulated deployment.
Motivation
Mooncake and vLLM-Omni already provide most of the required building blocks, but the complete EPD + Omni pipeline has not yet been integrated and validated as one system.
Related work includes:
- the broader Mooncake and vLLM-Omni collaboration roadmap:
vllm-project/vllm-omni#2904
- the Qwen3-Omni tensor-native stage-transfer design:
vllm-project/vllm-omni#3635
- the Mooncake-backed vLLM encoder-cache connector:
vllm-project/vllm#40695
- the existing Qwen3-Omni Prefill–Decode disaggregation path
- Mooncake roadmap:
#1883
The remaining gaps are:
- integrate Encoder → Prefill transfer into the vLLM-Omni pipeline;
- implement the Qwen3-Omni tensor-native payload contract from
vllm-project/vllm-omni#3635;
- keep large embeddings, hidden states, and codec tensors out of generic Python object serialization;
- validate the complete pipeline on real multi-node RDMA hardware;
- identify and upstream any generic Mooncake Transfer Engine issues exposed by the deployment.
Our team has access to a physical InfiniBand cluster and can test actual RDMA transport across machines. The team also includes @xiaohajiayou, an active vLLM-Omni contributor, which allows the model-specific integration to be developed directly against the existing vLLM-Omni execution and configuration paths.
Proposed Design
Encoder ── embeddings ──► Prefill ── KV cache ──► Decode
Mooncake EC MooncakeConnector
Decode ── hidden states ──► Talker ── codec tensors ──► Code2Wav
MooncakeTransferEngineConnector
The ownership boundary remains unchanged:
vLLM / vLLM-Omni owns
- model-stage scheduling and request lifecycle;
- Qwen3-Omni tensor selection, validation, packing, and reconstruction;
- fallback behavior and model-level correctness;
- destination buffer lifecycle at the execution layer.
Mooncake owns
- registered CPU/GPU memory transfer;
- TCP and RDMA transport;
- transfer completion and error reporting;
- transport and memory-pool observability.
Large tensors must use tensor-native connector entries. Only compact, versioned metadata should travel through the control path.
A downstream stage must not resume until every required tensor transfer has completed successfully.
Scope
The initial phase contains three integration tasks.
1. Encoder → Thinker Prefill
Use the Mooncake-backed EC connector from vllm-project/vllm#40695 to run the multimodal Encoder and Thinker Prefill on different workers.
The first implementation may use pinned CPU staging. We will validate that the selected transport is actual InfiniBand verbs/RDMA and separately evaluate a GPUDirect path where the GPU–NIC topology supports it.
2. Thinker Prefill → Thinker Decode
Reuse the existing vLLM Mooncake KV-transfer path.
This RFC does not introduce another PD or KV-transfer protocol.
3. Qwen3-Omni inter-stage transfer
Implement the non-async tensor-native payload path proposed in
vllm-project/vllm-omni#3635 for:
- Thinker → Talker
- Talker → Code2Wav
Full-payload transfer is the first milestone. Async codec-chunk streaming remains a follow-up because it requires additional ordering, backpressure, and terminal-event semantics.
Real RDMA Validation
The integration will be tested on at least two physical machines connected through an InfiniBand switch.
The validation must distinguish:
- TCP;
- IP over InfiniBand;
- InfiniBand verbs/RDMA with pinned host memory;
- GPUDirect RDMA, when supported by the actual PCIe topology.
Published test results will include:
- HCA model and link rate;
- selected Mooncake protocol and RDMA device;
ibv_devinfo / link-state evidence;
- an
ib_write_bw or equivalent hardware baseline;
- GPU–NIC topology;
- Mooncake runtime logs confirming the selected transport;
- payload sizes, latency, and effective bandwidth.
The end-to-end benchmark will compare the current communication path with Mooncake RDMA for:
- Encoder → Prefill;
- Thinker → Talker;
- Talker → Code2Wav;
- complete request latency and throughput under concurrency.
This validation is intended to complement existing connector work for which public physical multi-node RDMA results are still limited.
Expected Changes
vLLM / vLLM-Omni
- connect the Mooncake EC path to the vLLM-Omni Encoder/Prefill deployment;
- add Qwen3-Omni tensor-native packing and reconstruction;
- avoid opaque Python-object transfer for large stage tensors;
- add multi-worker configuration and end-to-end tests.
Mooncake
The integration should reuse current Transfer Engine APIs where possible.
Mooncake changes should be limited to generic issues discovered during real deployment, such as:
- multi-buffer completion or fencing;
- registered-memory correctness;
- cleanup after timeout or failure;
- transport selection and observability;
- reproducible integration documentation.
Qwen3-Omni-specific payload semantics must not be added to Mooncake core.
Non-Goals
This RFC does not propose:
- a new scheduler or serving framework;
- replacing the existing Prefill–Decode connector;
- Agent State Cloning;
- Hidden State Prefix Caching;
- approximate KV reuse;
- a new Mooncake metadata service;
- automatic topology-aware placement;
- async codec streaming in the first phase.
Deliverables
- Encoder → Prefill transfer over physical InfiniBand RDMA.
- Reuse of the existing Mooncake PD/KV path.
- Tensor-native Thinker → Talker full-payload transfer.
- Tensor-native Talker → Code2Wav full-payload transfer.
- End-to-end Qwen3-Omni multi-node demo.
- Reproducible correctness and RDMA benchmark report.
- Separate upstream PRs for generic Mooncake fixes and vLLM-Omni integration.
Open Questions
- Is the current EC connector contract sufficient for Qwen3-Omni Encoder outputs?
- Should destination buffers be connector-owned or model-runner-owned?
- Are existing Mooncake completion APIs sufficient for publishing stage-ready metadata safely?
- Should the first implementation PR cover only Encoder → Prefill, or Encoder → Prefill plus Thinker → Talker?
Authors
Before submitting a new issue...
Changes proposed
Summary
This RFC proposes connecting the existing Mooncake transfer paths into one end-to-end disaggregated vLLM-Omni pipeline and validating it on a physical multi-node InfiniBand cluster.
The initial target is Qwen3-Omni:
The proposal reuses existing infrastructure:
MooncakeConnectorMooncakeTransferEngineConnectorThe main work is to complete the missing integration, use tensor-native payloads for Qwen3-Omni stage outputs, and provide reproducible validation over real InfiniBand verbs/RDMA rather than only local or simulated deployment.
Motivation
Mooncake and vLLM-Omni already provide most of the required building blocks, but the complete EPD + Omni pipeline has not yet been integrated and validated as one system.
Related work includes:
vllm-project/vllm-omni#2904vllm-project/vllm-omni#3635vllm-project/vllm#40695#1883The remaining gaps are:
vllm-project/vllm-omni#3635;Our team has access to a physical InfiniBand cluster and can test actual RDMA transport across machines. The team also includes @xiaohajiayou, an active vLLM-Omni contributor, which allows the model-specific integration to be developed directly against the existing vLLM-Omni execution and configuration paths.
Proposed Design
The ownership boundary remains unchanged:
vLLM / vLLM-Omni owns
Mooncake owns
Large tensors must use tensor-native connector entries. Only compact, versioned metadata should travel through the control path.
A downstream stage must not resume until every required tensor transfer has completed successfully.
Scope
The initial phase contains three integration tasks.
1. Encoder → Thinker Prefill
Use the Mooncake-backed EC connector from
vllm-project/vllm#40695to run the multimodal Encoder and Thinker Prefill on different workers.The first implementation may use pinned CPU staging. We will validate that the selected transport is actual InfiniBand verbs/RDMA and separately evaluate a GPUDirect path where the GPU–NIC topology supports it.
2. Thinker Prefill → Thinker Decode
Reuse the existing vLLM Mooncake KV-transfer path.
This RFC does not introduce another PD or KV-transfer protocol.
3. Qwen3-Omni inter-stage transfer
Implement the non-async tensor-native payload path proposed in
vllm-project/vllm-omni#3635for:Full-payload transfer is the first milestone. Async codec-chunk streaming remains a follow-up because it requires additional ordering, backpressure, and terminal-event semantics.
Real RDMA Validation
The integration will be tested on at least two physical machines connected through an InfiniBand switch.
The validation must distinguish:
Published test results will include:
ibv_devinfo/ link-state evidence;ib_write_bwor equivalent hardware baseline;The end-to-end benchmark will compare the current communication path with Mooncake RDMA for:
This validation is intended to complement existing connector work for which public physical multi-node RDMA results are still limited.
Expected Changes
vLLM / vLLM-Omni
Mooncake
The integration should reuse current Transfer Engine APIs where possible.
Mooncake changes should be limited to generic issues discovered during real deployment, such as:
Qwen3-Omni-specific payload semantics must not be added to Mooncake core.
Non-Goals
This RFC does not propose:
Deliverables
Open Questions
Authors
Before submitting a new issue...