| 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 |