Repository navigation
feat(frontends): add the llm-d router - #588
Conversation
This reverts commit 5d13899.
feat: add official vLLM Router frontend
…r-frontends Revert "feat: add official vLLM Router frontend"
feat: record realized slurm launch plans for reproducibility
…ative feat: add official vLLM Router frontend
Signed-off-by: Cam Quilici <cjquilici@gmail.com>
Signed-off-by: Cam Quilici <cjquilici@gmail.com>
389d2dd to
01947da
Compare
| ) | ||
| return dp_size, model_parallel_size | ||
|
|
||
| def _get_int_flag(self, mode: WorkerMode, name: str, default: int = 1) -> int: |
There was a problem hiding this comment.
this isn't necessarily relevant to this pr (ie llm-d enablement)
this was redundant code that I am removing as part of this pr
There was a problem hiding this comment.
it is redundant because it can be handled by the existing _get_model_parallel_size method
Signed-off-by: Cam Quilici <cjquilici@gmail.com>
|
Review summary for #588 (llm-d router) The llm-d frontend itself looks solid. It rides existing machinery ( Blocking
Nits (inline): the carve-out in the port-arithmetic design-rule test, the private |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #588 +/- ##
=======================================
Coverage ? 84.99%
=======================================
Files ? 161
Lines ? 23106
Branches ? 0
=======================================
Hits ? 19639
Misses ? 3467
Partials ? 0 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Signed-off-by: Cam Quilici <cjquilici@gmail.com>
The validated image ships the v0.10.0 EPP and P/D sidecar. Every flag, plugin type, metric and endpoint srtctl relies on exists at v0.10.0. Signed-off-by: Cam Quilici <cjquilici@gmail.com>
Signed-off-by: Cam Quilici <cjquilici@gmail.com>
frontend.type: llm-d: Envoy and the Endpoint Picker (EPP) for aggregated and prefill/decode vLLM jobs.pd-sidecarper decode worker, with allocated proxy ports and NIXL KV transfer.frontend.epp_config,docs/llm-d.md, and aggregated/disaggregated/DP-rank examples.data-parallel-external-lb: truelaunches every rank as its ownvllm serve --data-parallel-rankon its own port, one EPP endpoint (and decode sidecar) per rank, on one or several nodes.roles.<role>.kv_eventsconnects every worker's (or rank's) vLLM publisher to the EPP'sprecise-prefix-cache-produceron one socket srtctl owns, with topics naming each endpoint, and points thetoken-producerat a worker's render endpoint.frontend.epp_config, run the scorers of llm-d's no-Kubernetes guide (prefill and decode profiles for P/D); the EPP's own default never applied, since srtctl's file always carries discovery.MultiConnector(NIXL next toOffloadingConnectorCPU offloading) to thenixlv2sidecar protocol.rankIndex, so per-pod subscription and vLLM's multi-port DP supervisor are not used.flowchart TD Client --> Envoy Envoy <-->|Endpoint selection<br/>over gRPC| EPP Envoy -->|Aggregated request| Agg["vLLM aggregate worker"] Envoy -->|Disaggregated request| Sidecar["Decode P/D sidecar"] Sidecar -->|Run prefill| Prefill["vLLM prefill worker"] Sidecar -->|Decode with<br/>transfer parameters| Decode["vLLM decode worker"] Prefill -.->|KV cache via NIXL| DecodeValidation
AgentX through InferenceX #3741, with image
quay.io/rh-ee-imarkov/llm-d-nokube-vllm:dspark-0814-nightly(EPP and sidecar v0.10.0). MiniMax-M3 NVFP4 at concurrency 8 unless noted. The first four rows rancd129c2e; the rest ran0c209710, the same commits before the rebase onto upstream main.OffloadingConnectorin aMultiConnectorepp_config(guide scorers), aggregated 2x TP4