Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions .github/workflows/benchmark-multinode-tmpl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ on:
runner:
required: true
type: string
runner-node:
description: "Optional concrete self-hosted runner label used only for scheduling"
required: false
type: string
default: ''
priority:
description: "Higher-is-sooner CI priority score"
required: true
Expand Down Expand Up @@ -269,19 +274,19 @@ jobs:
inputs.skip-queue-pr != '' &&
format(
'["self-hosted",{0},{1},{2},{3}]',
toJSON(inputs.runner),
toJSON(inputs.runner-node != '' && inputs.runner-node || inputs.runner),
toJSON(format('ci-job-{0}-{1}', inputs.priority, inputs.queue-token)),
toJSON(format('ci-attempt-{0}', github.run_attempt)),
toJSON(format('ci-skip-queue-pr-{0}', inputs.skip-queue-pr))
) ||
format(
'["self-hosted",{0},{1},{2}]',
toJSON(inputs.runner),
toJSON(inputs.runner-node != '' && inputs.runner-node || inputs.runner),
toJSON(format('ci-job-{0}-{1}', inputs.priority, inputs.queue-token)),
toJSON(format('ci-attempt-{0}', github.run_attempt))
)
) ||
format('[{0}]', toJSON(inputs.runner))
format('[{0}]', toJSON(inputs.runner-node != '' && inputs.runner-node || inputs.runner))
) }}
# Full-context AgentX warmup can legitimately exceed the fixed-sequence
# eight-hour envelope at high concurrency. Keep one hour beyond the
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/e2e-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -478,6 +478,7 @@ jobs:
osl: '0'
max-model-len: '0'
runner: ${{ matrix.config.runner }}
runner-node: ${{ matrix.config['runner-node'] || '' }}
priority: ${{ matrix.config.priority }}
queue-token: ${{ matrix.config['queue-token'] }}
image: ${{ matrix.config.image }}
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/run-sweep.yml
Original file line number Diff line number Diff line change
Expand Up @@ -652,6 +652,7 @@ jobs:
osl: '0'
max-model-len: '0'
runner: ${{ matrix.config.runner }}
runner-node: ${{ matrix.config['runner-node'] || '' }}
priority: ${{ matrix.config.priority }}
queue-token: ${{ matrix.config['queue-token'] }}
skip-queue-pr: ${{ matrix.config['skip-queue-pr'] || '' }}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: "svf-vllm-agg-gb300-tp4-mtp-agentic"

# GB300 AgentX aggregate topology: one TP4 worker occupies one four-GPU node
# and serves both prefill and decode at concurrency 4. Scheduler, CUDA-graph,
# and serves both prefill and decode at concurrency 8. Scheduler, CUDA-graph,
# and memory settings match the B300 vLLM TP4 MTP agentic configuration.

model:
Expand Down Expand Up @@ -114,7 +114,7 @@ backend:
attention-config: '{"backend":"FLASHINFER_MLA_SPARSE_DSV4","use_prefill_query_quantization":true,"use_fp4_indexer_cache":true}'
max-model-len: 1048576
max-num-seqs: 16
max-num-batched-tokens: 8192
max-num-batched-tokens: 32768
trust-remote-code: true
no-enable-flashinfer-autotune: true
block-size: 256
Expand All @@ -127,6 +127,7 @@ backend:

sbatch_directives:
cpus-per-task: "72"
exclude: "im-gb300-r01-c002,im-gb300-r01-c003"
mem: "0"

srun_options:
Expand All @@ -141,6 +142,8 @@ benchmark:
PORT: "8000"
IS_MULTINODE: "true"
AIPERF_USE_DYNAMO_CONV_AWARE_ROUTING: "0"
# Avoid concurrent readers observing a mismatched mmap data/index pair.
AIPERF_DATASET_MMAP_CACHE_ENABLED: "false"
AIPERF_DATASET_MMAP_CACHE_DIR: "/aiperf_mmap_cache"
HF_HUB_CACHE: "/hf_hub_cache"
WEKA_LOADER_OVERRIDE: "semianalysis_cc_traces_weka_062126"
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: "svf-vllm-agg-gb300-tp8-mtp-agentic"

# Validated GB300 AgentX aggregate topology: one TP8 worker spans two
# four-GPU nodes and serves both prefill and decode at concurrency 1.
# GB300 AgentX aggregate topology: one TP8 worker spans two four-GPU
# nodes and serves both prefill and decode at concurrency 1 and 4.

model:
path: "deepseek-v4-pro"
Expand Down Expand Up @@ -114,7 +114,7 @@ backend:
attention-config: '{"backend":"FLASHINFER_MLA_SPARSE_DSV4","use_prefill_query_quantization":true,"use_fp4_indexer_cache":true}'
max-model-len: 1048576
max-num-seqs: 32
max-num-batched-tokens: 8192
max-num-batched-tokens: 32768
trust-remote-code: true
no-enable-flashinfer-autotune: true
block-size: 256
Expand All @@ -128,6 +128,7 @@ backend:

sbatch_directives:
cpus-per-task: "144"
exclude: "im-gb300-r01-c002,im-gb300-r01-c003"
mem: "0"

srun_options:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: "svf-vllm-disagg-gb300-1p1d-dep4-dep8-c128-mtp-agentic"
name: "svf-vllm-disagg-gb300-1p1d-dep4-dep12-c256-mtp-agentic"

# Validated GB300 AgentX MTP3 low-latency topology: one DEP4 prefill worker
# feeds one DEP8 decode worker at concurrency 128.
# GB300 AgentX MTP3 topology: one DEP4 prefill worker feeds one
# DEP12 decode worker at concurrency 256.

model:
path: "deepseek-v4-pro"
Expand All @@ -17,7 +17,7 @@ identity:
dynamo: "1.3.0.dev20260720"

dynamo:
version: "1.3.0.dev20260720"
wheel: "1.3.0.dev20260720"
install: true

setup_script: vllm-container-deps.sh
Expand All @@ -35,11 +35,11 @@ resources:
het_jobs: false
spread_workers: false
prefill_nodes: 1
decode_nodes: 2
decode_nodes: 3
prefill_workers: 1
decode_workers: 1
gpus_per_prefill: 4
gpus_per_decode: 8
gpus_per_decode: 12

infra:
etcd_nats_dedicated_node: false
Expand All @@ -57,6 +57,8 @@ frontend:
router-session-affinity-ttl-secs: 900
env:
DYN_ROUTER_ACTIVE_REQUEST_EXPIRY_SECS: "3600"
DYN_TCP_CHANNEL_BUFFER: "128"
DYN_TCP_REQUEST_TIMEOUT: "60"

backend:
type: vllm
Expand All @@ -65,7 +67,7 @@ backend:
mooncake_kv_store:
store_config:
metadata_server: "P2PHANDSHAKE"
global_segment_size: "150GB"
global_segment_size: "180GB"
local_buffer_size: "4GB"
protocol: "rdma"
device_name: "mlx5_0,mlx5_1,mlx5_2,mlx5_3"
Expand Down Expand Up @@ -104,7 +106,7 @@ backend:
kv-cache-dtype: "fp8"
tensor-parallel-size: 1
pipeline-parallel-size: 1
data-parallel-size: 8
data-parallel-size: 12
data-parallel-rpc-port: 13345
enable-cumem-allocator: true
enable-expert-parallel: true
Expand Down Expand Up @@ -149,7 +151,7 @@ backend:
VLLM_USE_BREAKABLE_CUDAGRAPH: "0"
VLLM_CONNECTOR_PREFETCH_DEPTH: "8"
VLLM_DSV4_MEGA_FP8_COMBINE: "1"
DG_JIT_CACHE_DIR: "/tmp/dg-cache-dsv4-gb300-1p1d-c128-mtp-{job_id}"
DG_JIT_CACHE_DIR: "/tmp/dg-cache-dsv4-gb300-1p1d-dep4-dep12-c256-{job_id}"
MC_ENABLE_DEST_DEVICE_AFFINITY: "1"
MC_STORE_CLIENT_METRIC: "1"
MC_STORE_CLIENT_METRIC_INTERVAL: "5"
Expand All @@ -176,14 +178,15 @@ backend:
VLLM_RANDOMIZE_DP_DUMMY_INPUTS: "1"
VLLM_PREFIX_CACHE_RETENTION_INTERVAL: "32768"
VLLM_DSV4_MEGA_FP8_COMBINE: "1"
DG_JIT_CACHE_DIR: "/tmp/dg-cache-dsv4-gb300-1p1d-c128-mtp-{job_id}"
DG_JIT_CACHE_DIR: "/tmp/dg-cache-dsv4-gb300-1p1d-dep4-dep12-c256-{job_id}"
MC_ENABLE_DEST_DEVICE_AFFINITY: "1"
MC_STORE_CLIENT_METRIC: "1"
MC_STORE_CLIENT_METRIC_INTERVAL: "5"
MC_TE_METRIC: "0"

sbatch_directives:
cpus-per-task: "72"
exclude: "im-gb300-r01-c002,im-gb300-r01-c003"

srun_options:
container-remap-root: ""
Expand All @@ -198,6 +201,8 @@ benchmark:
IS_MULTINODE: "true"
AIPERF_USE_DYNAMO_CONV_AWARE_ROUTING: "0"
AIPERF_HTTP_X_DYNAMO_SESSION_ID_FROM_CORRELATION_ID: "true"
# Avoid concurrent readers observing a mismatched mmap data/index pair.
AIPERF_DATASET_MMAP_CACHE_ENABLED: "false"
AIPERF_DATASET_MMAP_CACHE_DIR: "/aiperf_mmap_cache"
HF_HUB_CACHE: "/hf_hub_cache"
WEKA_LOADER_OVERRIDE: "semianalysis_cc_traces_weka_062126"
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: "svf-vllm-disagg-gb300-1p1d-dep8-dep8-c384-mtp-agentic"
name: "svf-vllm-disagg-gb300-1p1d-dep8-dep12-c576-mtp-agentic"

# Validated GB300 AgentX MTP3 efficiency topology: one DEP8 prefill worker and
# one DEP8 decode worker at concurrency 384.
# GB300 AgentX MTP3 topology: one DEP8 prefill worker feeds one
# DEP12 decode worker at concurrency 576.

model:
path: "deepseek-v4-pro"
Expand All @@ -17,7 +17,7 @@ identity:
dynamo: "1.3.0.dev20260720"

dynamo:
version: "1.3.0.dev20260720"
wheel: "1.3.0.dev20260720"
install: true

setup_script: vllm-container-deps.sh
Expand All @@ -35,11 +35,11 @@ resources:
het_jobs: false
spread_workers: false
prefill_nodes: 2
decode_nodes: 2
decode_nodes: 3
prefill_workers: 1
decode_workers: 1
gpus_per_prefill: 8
gpus_per_decode: 8
gpus_per_decode: 12

infra:
etcd_nats_dedicated_node: false
Expand All @@ -57,6 +57,8 @@ frontend:
router-session-affinity-ttl-secs: 900
env:
DYN_ROUTER_ACTIVE_REQUEST_EXPIRY_SECS: "3600"
DYN_TCP_CHANNEL_BUFFER: "128"
DYN_TCP_REQUEST_TIMEOUT: "60"

backend:
type: vllm
Expand All @@ -65,7 +67,7 @@ backend:
mooncake_kv_store:
store_config:
metadata_server: "P2PHANDSHAKE"
global_segment_size: "150GB"
global_segment_size: "180GB"
local_buffer_size: "4GB"
protocol: "rdma"
device_name: "mlx5_0,mlx5_1,mlx5_2,mlx5_3"
Expand Down Expand Up @@ -104,7 +106,7 @@ backend:
kv-cache-dtype: "fp8"
tensor-parallel-size: 1
pipeline-parallel-size: 1
data-parallel-size: 8
data-parallel-size: 12
data-parallel-rpc-port: 13345
enable-cumem-allocator: true
enable-expert-parallel: true
Expand Down Expand Up @@ -149,7 +151,7 @@ backend:
VLLM_USE_BREAKABLE_CUDAGRAPH: "0"
VLLM_CONNECTOR_PREFETCH_DEPTH: "8"
VLLM_DSV4_MEGA_FP8_COMBINE: "1"
DG_JIT_CACHE_DIR: "/tmp/dg-cache-dsv4-gb300-1p1d-mtp-{job_id}"
DG_JIT_CACHE_DIR: "/tmp/dg-cache-dsv4-gb300-1p1d-dep8-dep12-c576-{job_id}"
MC_ENABLE_DEST_DEVICE_AFFINITY: "1"
MC_STORE_CLIENT_METRIC: "1"
MC_STORE_CLIENT_METRIC_INTERVAL: "5"
Expand All @@ -176,14 +178,15 @@ backend:
VLLM_RANDOMIZE_DP_DUMMY_INPUTS: "1"
VLLM_PREFIX_CACHE_RETENTION_INTERVAL: "32768"
VLLM_DSV4_MEGA_FP8_COMBINE: "1"
DG_JIT_CACHE_DIR: "/tmp/dg-cache-dsv4-gb300-1p1d-mtp-{job_id}"
DG_JIT_CACHE_DIR: "/tmp/dg-cache-dsv4-gb300-1p1d-dep8-dep12-c576-{job_id}"
MC_ENABLE_DEST_DEVICE_AFFINITY: "1"
MC_STORE_CLIENT_METRIC: "1"
MC_STORE_CLIENT_METRIC_INTERVAL: "5"
MC_TE_METRIC: "0"

sbatch_directives:
cpus-per-task: "72"
exclude: "im-gb300-r01-c002,im-gb300-r01-c003"
mem: "0"

srun_options:
Expand All @@ -199,6 +202,8 @@ benchmark:
IS_MULTINODE: "true"
AIPERF_USE_DYNAMO_CONV_AWARE_ROUTING: "0"
AIPERF_HTTP_X_DYNAMO_SESSION_ID_FROM_CORRELATION_ID: "true"
# Avoid concurrent readers observing a mismatched mmap data/index pair.
AIPERF_DATASET_MMAP_CACHE_ENABLED: "false"
AIPERF_DATASET_MMAP_CACHE_DIR: "/aiperf_mmap_cache"
HF_HUB_CACHE: "/hf_hub_cache"
WEKA_LOADER_OVERRIDE: "semianalysis_cc_traces_weka_062126"
Loading
Loading