main
yaml 151 lines 5.63 KB
Raw
1 group: Disaggregated Mooncake
2 depends_on:
3 - image-build
4 steps:
5 - label: ":nvidia: (B200) Distributed MooncakeConnector PD accuracy"
6 key: distributed-mooncakeconnector-pd-accuracy-4-gpus
7 timeout_in_minutes: 10
8 working_dir: "/vllm-workspace/tests"
9 # Runs on b200-k8s because it is the only NVIDIA pool that can carry mooncake
10 # transfers: its pods are the only ones granted IPC_LOCK, which RDMA needs to
11 # pin memory, and the only ones using host networking. Elsewhere topology
12 # discovery finds no usable HCA and the tcp fallback then advertises the
13 # docker bridge address, so every transfer fails to connect.
14 device: b200-k8s
15 num_devices: 4
16 source_file_dependencies:
17 - vllm/distributed/kv_transfer/kv_connector/v1/mooncake/
18 - tests/v1/kv_connector/mooncake_integration/
19 commands:
20 - bash /vllm-workspace/.buildkite/scripts/install-kv-connectors.sh
21 - bash v1/kv_connector/mooncake_integration/config_sweep_accuracy_test.sh
22 mirror:
23 amd:
24 label: ":amd: (MI355) Distributed MooncakeConnector HIP PD accuracy"
25 dind: false
26 device: mi355_4
27 num_devices: 4
28 timeout_in_minutes: 30
29 working_dir: "/vllm-workspace/tests"
30 depends_on:
31 - image-build-amd
32 source_file_dependencies:
33 - vllm/distributed/kv_transfer/kv_connector/v1/mooncake/
34 - tests/v1/kv_connector/mooncake_integration/
35 - tests/v1/kv_connector/rocm_pd_accuracy_utils.py
36 - tests/utils.py
37 - examples/disaggregated/mooncake_connector/
38 - vllm/v1/attention/backends/rocm_aiter_unified_attn.py
39 - vllm/platforms/rocm.py
40 - requirements/common.txt
41 - requirements/kv_connectors_rocm.txt
42 commands:
43 - uv pip install --system -r /vllm-workspace/requirements/kv_connectors_rocm.txt
44 # Same full accuracy/TP sweep, using same-host HIP GPU transport.
45 - pytest -v -s v1/kv_connector/mooncake_integration/test_accuracy_rocm.py
46
47 - label: ":nvidia: (L4) Mooncake EC TCP E2E"
48 key: mooncake-ec-tcp-e2e-2-gpus
49 timeout_in_minutes: 30
50 working_dir: "/vllm-workspace"
51 device: l4
52 num_devices: 2
53 source_file_dependencies:
54 - vllm/distributed/ec_transfer/
55 - vllm/config/ec_transfer.py
56 - vllm/config/multimodal.py
57 - vllm/config/vllm.py
58 - vllm/multimodal/
59 - vllm/v1/core/encoder_cache_manager.py
60 - vllm/v1/core/sched/
61 - vllm/v1/engine/
62 - vllm/v1/worker/ec_connector_model_runner_mixin.py
63 - vllm/v1/worker/gpu_model_runner.py
64 - vllm/v1/worker/gpu_worker.py
65 - vllm/v1/worker/gpu/ec_connector.py
66 - vllm/v1/worker/gpu/model_runner.py
67 - vllm/v1/worker/mm_encoder_model_runner.py
68 - vllm/v1/worker/encoder_cudagraph.py
69 - vllm/v1/worker/encoder_cudagraph_defs.py
70 - vllm/v1/attention/ops/vit_attn_wrappers.py
71 - vllm/v1/worker/gpu/model_states/
72 - vllm/v1/worker/gpu/mm/
73 - tests/v1/cudagraph/test_encoder_cudagraph.py
74 - tests/models/multimodal/generation/test_vit_cudagraph.py
75 - examples/disaggregated/disaggregated_encoder/
76 - tests/v1/ec_connector/
77 - requirements/kv_connectors.txt
78 env:
79 PYTHON_BIN: "/vllm-workspace/.venv/bin/python"
80 PYTHONUNBUFFERED: "1"
81 VLLM_HOST_IP: "127.0.0.1"
82 VLLM_USE_V2_MODEL_RUNNER: "1"
83 E_CUDAGRAPH_MM_ENCODER: "1"
84 # FA padding NaNs are tracked separately in #57136.
85 E_MM_ENCODER_ATTN_BACKEND: "TRITON_ATTN"
86 MOONCAKE_EC_PROTOCOL: "tcp"
87 USE_MM_PROMPTS: "1"
88 SKIP_BASELINE: "0"
89 CONCURRENCY: "3"
90 REPEAT: "2"
91 LOG_PATH: "/tmp/mooncake-ec-e2e"
92 BASELINE_FILE: "/tmp/mooncake-ec-e2e/baseline.json"
93 commands:
94 - uv venv --system-site-packages --python 3.12 .venv
95 - |
96 uv pip install --python .venv/bin/python "$(.venv/bin/python - <<'PY'
97 from pathlib import Path
98 import torch
99
100 requirement = next(
101 line for line in Path("requirements/kv_connectors.txt").read_text().splitlines()
102 if line.startswith("mooncake-transfer-engine ")
103 )
104 if torch.version.cuda.split(".")[0] == "13":
105 requirement = requirement.replace("mooncake-transfer-engine", "mooncake-transfer-engine-cuda13")
106 print(requirement)
107 PY
108 )"
109 - bash tests/v1/ec_connector/integration/run_epd_mooncake_ec_full_pipeline.sh
110 mirror:
111 amd:
112 label: ":amd: (MI300) Mooncake EC TCP E2E"
113 dind: false
114 device: mi300_2
115 num_devices: 2
116 timeout_in_minutes: 60
117 working_dir: /vllm-workspace
118 depends_on:
119 - image-build-amd
120 source_file_dependencies:
121 - vllm/distributed/ec_transfer/
122 - vllm/config/ec_transfer.py
123 - vllm/config/multimodal.py
124 - vllm/config/vllm.py
125 - vllm/multimodal/
126 - vllm/v1/core/encoder_cache_manager.py
127 - vllm/v1/core/sched/
128 - vllm/v1/engine/
129 - vllm/v1/worker/ec_connector_model_runner_mixin.py
130 - vllm/v1/worker/gpu_model_runner.py
131 - vllm/v1/worker/gpu_worker.py
132 - vllm/v1/worker/gpu/ec_connector.py
133 - vllm/v1/worker/gpu/model_runner.py
134 - vllm/v1/worker/mm_encoder_model_runner.py
135 - vllm/v1/worker/encoder_cudagraph.py
136 - vllm/v1/worker/encoder_cudagraph_defs.py
137 - vllm/v1/attention/ops/vit_attn_wrappers.py
138 - vllm/v1/worker/gpu/model_states/
139 - vllm/v1/worker/gpu/mm/
140 - tests/v1/cudagraph/test_encoder_cudagraph.py
141 - tests/models/multimodal/generation/test_vit_cudagraph.py
142 - examples/disaggregated/disaggregated_encoder/
143 - tests/v1/ec_connector/
144 - requirements/kv_connectors.txt
145 - vllm/platforms/rocm.py
146 - requirements/rocm.txt
147 env:
148 VLLM_WORKER_MULTIPROC_METHOD: "spawn"
149 PYTHON_BIN: "python"
150 commands:
151 - bash tests/v1/ec_connector/integration/run_epd_mooncake_ec_full_pipeline.sh