Skip to content

Commit 62768ee

Browse files
committed
Merge remote-tracking branch 'upstream/main' into flowcontrol/unify-on-priority-queue
2 parents 69e5e60 + add7644 commit 62768ee

35 files changed

Lines changed: 542 additions & 431 deletions

.github/actions/trivy-scan/action.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ runs:
2626
output: 'trivy-results.sarif'
2727
severity: ${{ inputs.severity }}
2828
exit-code: '1'
29+
# trivy-action drops the severity filter for SARIF output unless told
30+
# otherwise, which fails the scan on findings outside `severity` (e.g.
31+
# UNKNOWN-severity Go vulndb notes).
32+
limit-severities-for-sarif: 'true'
33+
version: 'v0.72.0'
2934

3035
- name: Upload Trivy SARIF to Security tab
3136
uses: github/codeql-action/upload-sarif@v4.35.4 # v4.35.4 68bde559dea0fdcac2102bfdf6230c5f70eb485e

.github/workflows/ci-pr-checks.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ jobs:
222222
archive: llm-d-router-endpoint-picker
223223
- name: simulator
224224
source: pull
225-
image: ghcr.io/llm-d/llm-d-inference-sim:v0.9.2
225+
image: ghcr.io/llm-d/llm-d-inference-sim:v0.10.2
226226
archive: llm-d-inference-sim
227227
name: e2e-image-common (${{ matrix.image.name }})
228228
steps:

.github/workflows/nightly-router-perf-test-optimized-baseline-10k-1k.yaml

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,14 @@ on:
4040
default: 'test/perf/config/shared_prefix_job1.yaml'
4141
required: true
4242
type: string
43+
gcs_bucket:
44+
description: 'GCS bucket name for storing performance test results'
45+
default: 'llm-d-router-perf-results'
46+
required: true
47+
type: string
4348

4449
permissions:
45-
contents: write
50+
contents: read
4651
actions: read
4752

4853
jobs:
@@ -58,6 +63,7 @@ jobs:
5863
ROUTER_CONFIG: ${{ inputs.router_config || 'test/perf/config/router-configs/optimized-baseline.yaml' }}
5964
TEST_NAME: ${{ inputs.test_name || 'optimized-baseline-job1' }}
6065
PERF_JOB: ${{ inputs.perf_job || 'test/perf/config/shared_prefix_job1.yaml' }}
66+
GCS_BUCKET: ${{ inputs.gcs_bucket || 'llm-d-router-perf-results' }}
6167
HF_TOKEN: ${{ secrets.HF_TOKEN }}
6268
steps:
6369
- name: Checkout llm-d/llm-d-router
@@ -95,6 +101,10 @@ jobs:
95101
with:
96102
python-version: "3.10"
97103

104+
- name: Install Graphviz
105+
run: |
106+
sudo apt-get update && sudo apt-get install -y graphviz
107+
98108
- name: Install Python dependencies
99109
run: |
100110
python3 -m pip install --upgrade pip
@@ -110,21 +120,13 @@ jobs:
110120
--sim-replicas ${{ env.SIM_REPLICAS }} \
111121
--results-dir test/perf/results/optimized-baseline \
112122
--router-machine-family e2 \
113-
--gcp-project ${{ env.GCP_PROJECT_ID }}
123+
--gcp-project ${{ env.GCP_PROJECT_ID }} \
124+
--collect-pprof-profiles \
125+
--gcs-bucket ${{ env.GCS_BUCKET }}
114126
115-
- name: Upload Performance Results
127+
- name: Upload Performance Results Artifact
116128
uses: actions/upload-artifact@v4
117129
if: always()
118130
with:
119131
name: epp-perf-results
120132
path: test/perf/results/optimized-baseline/
121-
122-
- name: Commit and push updated results
123-
if: success() && github.ref == 'refs/heads/main'
124-
run: |
125-
git config --global user.name "github-actions[bot]"
126-
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
127-
git add test/perf/results/optimized-baseline/
128-
git commit -m "Auto-update EPP nightly performance results [skip ci]" || exit 0
129-
git pull --rebase origin main
130-
git push

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,7 @@ vendor
5353
# Helm dependency artifacts
5454
config/charts/*/charts/
5555
config/charts/*/Chart.lock
56+
57+
# Performance benchmark local results directory
58+
test/perf/__pycache__/
59+
test/perf/results/

DEVELOPMENT.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ Creates a new `kind` cluster (or reuses an existing one) in the `default` namesp
8585
> [!NOTE]
8686
> You can pre-pull external images to avoid slow downloads:
8787
> ```
88-
> docker pull ghcr.io/llm-d/llm-d-inference-sim:v0.9.2
88+
> docker pull ghcr.io/llm-d/llm-d-inference-sim:v0.10.2
8989
> docker pull vllm/vllm-openai-cpu:v0.21.0
9090
> ```
9191
@@ -528,7 +528,7 @@ a shared PVC (`ec-cache-pvc`) for encoder embeddings transfer.
528528

529529
| Variable | Default | Description |
530530
|---|---|---|
531-
| `VLLM_IMAGE` | `ghcr.io/llm-d/llm-d-inference-sim:v0.9.2` | vLLM container image to deploy. Can be a simulator or a real vLLM image (e.g., `vllm/vllm-openai:v0.16.0`). Defaults to the simulator image. |
531+
| `VLLM_IMAGE` | `ghcr.io/llm-d/llm-d-inference-sim:v0.10.2` | vLLM container image to deploy. Can be a simulator or a real vLLM image (e.g., `vllm/vllm-openai:v0.16.0`). Defaults to the simulator image. |
532532
| `VLLM_SIM_MODE` | `echo` | Simulator response mode. `echo` returns the input prompt as the response (useful for routing validation). `random` returns random sentences from a pre-defined bank. Only applies when using the simulator overlay. |
533533

534534
### Cleanup
@@ -622,7 +622,7 @@ kubectl --context kind-e2e-tests get pods
622622
| `VLLM_EXTRA_ARGS_E` | _(empty)_ | Additional flags for the Encoder vLLM container (e.g. `--mm-processor-kwargs={}`) |
623623
| `VLLM_EXTRA_ARGS_P` | _(empty)_ | Additional flags for the Prefill vLLM container (e.g. `--gpu-memory-utilization=0.9`) |
624624
| `VLLM_EXTRA_ARGS_D` | _(empty)_ | Additional flags for the Decode vLLM container (e.g. `--tensor-parallel-size=2`) |
625-
| `VLLM_IMAGE` | `ghcr.io/llm-d/llm-d-inference-sim:v0.9.2` | vLLM container image to deploy. Can be a simulator or a real vLLM image (e.g., `vllm/vllm-openai:v0.16.0`) |
625+
| `VLLM_IMAGE` | `ghcr.io/llm-d/llm-d-inference-sim:v0.10.2` | vLLM container image to deploy. Can be a simulator or a real vLLM image (e.g., `vllm/vllm-openai:v0.16.0`) |
626626
| `VLLM_SIM_MODE` | `echo` | Simulator response mode. Supported values: `echo` (returns the input prompt as the response), `random` (returns a random sentence from a pre-defined bank) |
627627
| `SIDECAR_IMAGE` | `ghcr.io/llm-d/llm-d-router-disagg-sidecar:dev` | Routing sidecar image loaded into the Kind cluster |
628628
| `VLLM_RENDER_IMAGE` | `vllm/vllm-openai-cpu:v0.21.0` | vLLM renderer image loaded into the Kind cluster |

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ SIDECAR_IMAGE_TAG_BASE ?= $(IMAGE_REGISTRY)/$(SIDECAR_IMAGE_NAME)
3333
SIDECAR_TAG ?= dev
3434
export SIDECAR_IMAGE ?= $(SIDECAR_IMAGE_TAG_BASE):$(SIDECAR_TAG)
3535

36-
VLLM_SIMULATOR_TAG ?= v0.9.2
36+
VLLM_SIMULATOR_TAG ?= v0.10.2
3737
VLLM_SIMULATOR_TAG_BASE ?= $(IMAGE_REGISTRY)/$(VLLM_SIMULATOR_IMAGE_NAME)
3838
export VLLM_IMAGE ?= $(VLLM_SIMULATOR_TAG_BASE):$(VLLM_SIMULATOR_TAG)
3939

config/manifests/vllm/sim-deployment.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ spec:
1515
spec:
1616
containers:
1717
- name: vllm-sim
18-
image: ghcr.io/llm-d/llm-d-inference-sim:v0.9.2
18+
image: ghcr.io/llm-d/llm-d-inference-sim:v0.10.2
1919
imagePullPolicy: Always
2020
args:
2121
- --model

config/manifests/vllm/sim-grpc-deployment.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ spec:
1515
spec:
1616
containers:
1717
- name: vllm-sim
18-
image: ghcr.io/llm-d/llm-d-inference-sim:v0.9.2
18+
image: ghcr.io/llm-d/llm-d-inference-sim:v0.10.2
1919
imagePullPolicy: Always
2020
args:
2121
- --model

deploy/environments/dev/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ Variables substituted at deploy time via `envsubst` or Go test `substituteMany`:
6767
| `DISAGG_E` | Deploy a separate Encoder pod (`true`/`false`) | `false` |
6868
| `DISAGG_P` | Deploy a separate Prefill pod (`true`/`false`) | `false` |
6969
| `VLLM_SIM_MODE` | Simulator response mode: `echo` (returns input) or `random` (random sentences) | `echo` |
70-
| `VLLM_IMAGE` | vLLM container image (simulator or real) | `ghcr.io/llm-d/llm-d-inference-sim:v0.9.2` |
70+
| `VLLM_IMAGE` | vLLM container image (simulator or real) | `ghcr.io/llm-d/llm-d-inference-sim:v0.10.2` |
7171
| `SIDECAR_IMAGE` | Routing sidecar image | `ghcr.io/llm-d/llm-d-router-disagg-sidecar:dev` |
7272
| `VLLM_RENDER_IMAGE` | vLLM render sidecar image | `vllm/vllm-openai-cpu:v0.21.0` |
7373
| `MODEL_NAME` | Model name passed to vLLM. Can be a real HuggingFace model (e.g. `TinyLlama/TinyLlama-1.1B-Chat-v1.0`, `Qwen/Qwen3-VL-2B-Instruct`) or an arbitrary name when using the simulator (e.g. `food-review`) | `food-review` |

pkg/coordinator/steps/prefill.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,8 @@ func (s *PrefillStep) buildPrefillBody(ctx context.Context, reqCtx *pipeline.Req
137137
switch format {
138138
case gateway.FormatChatCompletions:
139139
body := maps.Clone(reqCtx.Body)
140+
body["stream"] = false
141+
delete(body, "stream_options")
140142
tokens := map[string]any{
141143
"token_ids": reqCtx.TokenIDs,
142144
}

0 commit comments

Comments
 (0)