dynamo-prime-rl-integration - #1
Conversation
|
👋 Hi! Thank you for contributing to the vLLM project. 💬 Join our developer Slack at https://slack.vllm.ai to discuss your PR in #pr-reviews, coordinate on features in #feat- channels, or join special interest groups in #sig- channels. Just a reminder: PRs would not trigger full CI run by default. Instead, it would only run You ask your reviewers to trigger select CI tests on top of Once the PR is approved and ready to go, your PR reviewer(s) can run CI to test the changes comprehensively before merging. To run CI, PR reviewers can either: Add If you have any questions, please reach out to us on Slack at https://slack.vllm.ai. 🚀 |
2d2bfbe to
a0d13bb
Compare
…n state via AppState
a0d13bb to
e74fc3f
Compare
Purpose
Extend vLLM's existing native Rust gRPC and token-in/token-out surfaces so an out-of-process Dynamo sidecar can drive aggregated and disaggregated inference without introducing a separate OpenEngine schema.
Companion PRs:
Exact tested heads:
e74fc3f1b06258e25519a5d5ed4d9a1b05d9a1cbfc556d992cd2525eaf6ae0f612f31a46db2e5a7b7a8f90b2495e344f5b9198e20f418c472018b1adNative protocol and server
openengine.v1.The branch is restacked on the native control/inference split already present in upstream vLLM. It removes fork duplicates, shares drain state through
AppState, reconciles current protocol output types, and retains the post-review native gRPC fixes needed by the Dynamo sidecar.Prime-RL boundary
Prime-RL main now pins vLLM 0.26.0 and imports
vllm.entrypoints.scale_out.token_in_token_outdirectly. The Prime companion branch contains no import-layout probing orcompat.pyshim. Prime delegates validation, rendering, sampling, multimodal preprocessing, streaming, usage, logprobs, cancellation, and response construction to this canonical vLLM package, retaining only KV handoff and routed-expert compaction.Prime reaches vLLM's existing HTTP administration surface through endpoints discovered from Dynamo. This PR owns no Prime configuration, trainer logic, Dynamo discovery, Helm, DGD, Slurm,
prime_rl.engine.v2, oropenengine.v1schema.Validation
The exact final ARM64 stack passed its DIND build/import gates and 35 focused Prime-side configuration, discovery, broadcaster, serving-adapter, and topology-rank tests. Explicit compatibility gates confirmed that ordinary non-Dynamo clients retain the legacy broadcaster payload and rank calculation.
The stack was deployed as
q06v4i-0803inbis-rl-3with one aggregated inference GPU running this vLLM-rs/Python EngineCore plus a separate Dynamo sidecar and one external Prime trainer GPU. Qwen3-0.6B Math completed three trainer and orchestrator steps, three policy reloads, and a post-update HTTP 200 generation gate. The worker generated 14,510 tokens at 172.21 tokens/s aggregate with zero restarts.Images:
The checkpoint reload path emitted a
RotaryEmbedding: Failed to load weightswarning, but every reload call completed, policy versions advanced, and post-update generation passed. This warning remains a follow-up item.Review map
rust/proto/vllm_grpc.protorust/src/server/src/grpc/rust/src/engine-core-client/vllm/v1/engine/core.pyand managed-DP transport initialization