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
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
name: "disagg-h200-1p1d-pcp8-tp8-dp8-hisparse"

# HiSparse decode keeps full KV in pinned host memory while a fixed sparse
# working set remains in HBM.

model:
path: "hf:zai-org/GLM-5.2-FP8"
container: "lmsysorg/sglang:nightly-dev-cu13-20260711-7de33ce8"
precision: "fp8"

dynamo:
install: true
wheel: "1.3.0.dev1"

slurm:
time_limit: "8:00:00"

resources:
gpu_type: h200
gpus_per_node: 8
prefill_nodes: 1
decode_nodes: 1
prefill_workers: 1
decode_workers: 1
gpus_per_prefill: 8
gpus_per_decode: 8

infra:
etcd_nats_dedicated_node: true
nats_max_payload_mb: 32

frontend:
type: dynamo
nginx_session_affinity: true
nginx_session_affinity_header: X-Correlation-ID
env:
DYN_ROUTER_TEMPERATURE: "10000000"
PIP_BREAK_SYSTEM_PACKAGES: "1"
args:
router-mode: "kv"
router-reset-states: true
active-decode-blocks-threshold: "None"
active-prefill-tokens-threshold: "None"
active-prefill-tokens-threshold-frac: "None"

backend:
type: sglang
prefill_environment: &worker_environment
HF_HOME: "/hf_hub_cache"
HF_HUB_CACHE: "/hf_hub_cache"
PIP_BREAK_SYSTEM_PACKAGES: "1"
PYTHONUNBUFFERED: "1"
SGLANG_DISAGGREGATION_WAITING_TIMEOUT: "900"
SGLANG_MOONCAKE_CUSTOM_MEM_POOL: "True"
SGLANG_OPT_USE_TOPK_V2: "1"
SGLANG_TIMEOUT_KEEP_ALIVE: "900"
decode_environment: *worker_environment

sglang_config:
prefill:
host: 0.0.0.0
model-path: /model/
served-model-name: zai-org/GLM-5.2-FP8
trust-remote-code: true
tool-call-parser: glm47
reasoning-parser: glm45
tp-size: 8
ep-size: 1
attn-cp-size: 8
enable-prefill-cp: true
cp-strategy: interleave
enable-dsa-cache-layer-split: true
disaggregation-transfer-backend: mooncake
disaggregation-mode: prefill
kv-cache-dtype: fp8_e4m3
context-length: 1048576
max-total-tokens: 1048576
chunked-prefill-size: 32768
mem-fraction-static: 0.85
max-running-requests: 32
watchdog-timeout: 86400
stream-interval: 60
enable-metrics: true

decode:
host: 0.0.0.0
model-path: /model/
served-model-name: zai-org/GLM-5.2-FP8
trust-remote-code: true
tool-call-parser: glm47
reasoning-parser: glm45
tp-size: 8
dp-size: 8
ep-size: 1
enable-dp-attention: true
disaggregation-transfer-backend: mooncake
disaggregation-mode: decode
kv-cache-dtype: fp8_e4m3
dsa-decode-backend: flashmla_kv
context-length: 1048576
max-total-tokens: 1048576
mem-fraction-static: 0.85
max-running-requests: 200
page-size: 64
disable-radix-cache: true
enable-hisparse: true
hisparse-config: '{"top_k":2048,"device_buffer_size":4096,"host_to_device_ratio":5}'
watchdog-timeout: 86400
stream-interval: 60
enable-metrics: true

sbatch_directives:
mem: "0"

srun_options:
mem: "0"
container-remap-root: ""

benchmark:
type: custom
command: bash /infmax-workspace/benchmarks/multi_node/agentic_srt.sh
env:
INFMAX_CONTAINER_WORKSPACE: /infmax-workspace
RESULT_DIR: /logs/agentic
PORT: "8000"
IS_MULTINODE: "true"
AIPERF_USE_DYNAMO_CONV_AWARE_ROUTING: "1"
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
@@ -0,0 +1,130 @@
name: "disagg-h200-1p2d-pcp8-tp8-dp8-hisparse"

# HiSparse decode keeps full KV in pinned host memory while a fixed sparse
# working set remains in HBM.

model:
path: "hf:zai-org/GLM-5.2-FP8"
container: "lmsysorg/sglang:nightly-dev-cu13-20260711-7de33ce8"
precision: "fp8"

dynamo:
install: true
wheel: "1.3.0.dev1"

slurm:
time_limit: "8:00:00"

resources:
gpu_type: h200
gpus_per_node: 8
prefill_nodes: 1
decode_nodes: 2
prefill_workers: 1
decode_workers: 2
gpus_per_prefill: 8
gpus_per_decode: 8

infra:
etcd_nats_dedicated_node: true
nats_max_payload_mb: 32

frontend:
type: dynamo
nginx_session_affinity: true
nginx_session_affinity_header: X-Correlation-ID
env:
DYN_ROUTER_TEMPERATURE: "10000000"
PIP_BREAK_SYSTEM_PACKAGES: "1"
args:
router-mode: "kv"
router-reset-states: true
active-decode-blocks-threshold: "None"
active-prefill-tokens-threshold: "None"
active-prefill-tokens-threshold-frac: "None"

backend:
type: sglang
prefill_environment: &worker_environment
HF_HOME: "/hf_hub_cache"
HF_HUB_CACHE: "/hf_hub_cache"
PIP_BREAK_SYSTEM_PACKAGES: "1"
PYTHONUNBUFFERED: "1"
SGLANG_DISAGGREGATION_WAITING_TIMEOUT: "900"
SGLANG_MOONCAKE_CUSTOM_MEM_POOL: "True"
SGLANG_OPT_USE_TOPK_V2: "1"
SGLANG_TIMEOUT_KEEP_ALIVE: "900"
decode_environment: *worker_environment

sglang_config:
prefill:
host: 0.0.0.0
model-path: /model/
served-model-name: zai-org/GLM-5.2-FP8
trust-remote-code: true
tool-call-parser: glm47
reasoning-parser: glm45
tp-size: 8
ep-size: 1
attn-cp-size: 8
enable-prefill-cp: true
cp-strategy: interleave
enable-dsa-cache-layer-split: true
disaggregation-transfer-backend: mooncake
disaggregation-mode: prefill
kv-cache-dtype: fp8_e4m3
context-length: 1048576
max-total-tokens: 1048576
chunked-prefill-size: 32768
mem-fraction-static: 0.85
max-running-requests: 32
watchdog-timeout: 86400
stream-interval: 60
enable-metrics: true

decode:
host: 0.0.0.0
model-path: /model/
served-model-name: zai-org/GLM-5.2-FP8
trust-remote-code: true
tool-call-parser: glm47
reasoning-parser: glm45
tp-size: 8
dp-size: 8
ep-size: 1
enable-dp-attention: true
disaggregation-transfer-backend: mooncake
disaggregation-mode: decode
kv-cache-dtype: fp8_e4m3
dsa-decode-backend: flashmla_kv
context-length: 1048576
max-total-tokens: 1048576
mem-fraction-static: 0.85
max-running-requests: 200
page-size: 64
disable-radix-cache: true
enable-hisparse: true
hisparse-config: '{"top_k":2048,"device_buffer_size":4096,"host_to_device_ratio":5}'
watchdog-timeout: 86400
stream-interval: 60
enable-metrics: true

sbatch_directives:
mem: "0"

srun_options:
mem: "0"
container-remap-root: ""

benchmark:
type: custom
command: bash /infmax-workspace/benchmarks/multi_node/agentic_srt.sh
env:
INFMAX_CONTAINER_WORKSPACE: /infmax-workspace
RESULT_DIR: /logs/agentic
PORT: "8000"
IS_MULTINODE: "true"
AIPERF_USE_DYNAMO_CONV_AWARE_ROUTING: "1"
AIPERF_DATASET_MMAP_CACHE_DIR: "/aiperf_mmap_cache"
HF_HUB_CACHE: "/hf_hub_cache"
WEKA_LOADER_OVERRIDE: "semianalysis_cc_traces_weka_062126"
52 changes: 52 additions & 0 deletions configs/nvidia-master.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8010,6 +8010,58 @@ dsv4-fp4-gb300-dynamo-sglang-agentic-disagg:
tp: 16
ep: 16
dp-attn: true

# GLM-5.2 FP8 full-context AgentX on H200. PCP8 prefill processes
# the 1M context while TP8/DPA decode uses HiSparse-backed host DRAM.
glm5.2-fp8-h200-dynamo-sglang-agentic-hisparse-pareto:
image: lmsysorg/sglang:nightly-dev-cu13-20260711-7de33ce8
model: zai-org/GLM-5.2-FP8
model-prefix: glm5.2
runner: cluster:h200-dgxc
precision: fp8
framework: dynamo-sglang
router: { name: dynamo-router, version: "1.3.0.dev1" }
kv-p2p-transfer: mooncake
multinode: true
disagg: true
scenarios:
agentic-coding:
- dram-utilization: 0.80
search-space:
- spec-decoding: none
conc-list: [1, 2, 3, 4, 5, 6, 7, 8]
kv-offloading: dram
kv-offload-backend: { name: hisparse }
prefill:
num-worker: 1
tp: 1
pcp-size: 8
ep: 1
dp-attn: false
additional-settings:
- "CONFIG_FILE=recipes/sglang/glm5.2/agentic/disagg-h200-1p1d-pcp8-tp8-dp8-hisparse.yaml"
decode:
num-worker: 1
tp: 8
ep: 1
dp-attn: true
- spec-decoding: none
conc-list: [4]
kv-offloading: dram
kv-offload-backend: { name: hisparse }
prefill:
num-worker: 1
tp: 1
pcp-size: 8
ep: 1
dp-attn: false
additional-settings:
- "CONFIG_FILE=recipes/sglang/glm5.2/agentic/disagg-h200-1p2d-pcp8-tp8-dp8-hisparse.yaml"
decode:
num-worker: 2
tp: 8
ep: 1
dp-attn: true
qwen3.5-fp8-gb300-dynamo-sglang:
image: lmsysorg/sglang:nightly-dev-cu13-20260709-074bb928
model: Qwen/Qwen3.5-397B-A17B-FP8
Expand Down
12 changes: 12 additions & 0 deletions perf-changelog.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5060,3 +5060,15 @@
- "Re-pin VLLM_ROUTER_IMAGE to vllm/vllm-router:nightly-20260716-1fbcde7 (previous nightly-20260629-e667ebb was garbage-collected from Docker Hub)"
- "Exclude known-bad nodes mia1-p01-g09,g14 from the disagg node pool"
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2301

- config-keys:
- glm5.2-fp8-h200-dynamo-sglang-agentic-hisparse-pareto
scenario-type:
- agentic-coding
description:
- "Add GLM-5.2 FP8 full-context H200 AgentX with PCP8 prefill and TP8/DPA decode, covering the complete 1P1D concurrency curve [1, 2, 3, 4, 5, 6, 7, 8] plus the non-dominated 1P2D concurrency-4 scale point"
- "Use FP8 KV cache, flashmla_kv, 32K chunked prefill, and SGLang HiSparse top_k=2048/device_buffer_size=4096 to retain full KV in pinned host DRAM while a sparse decode working set remains in HBM"
- "Literal 1.04M-token canaries and GSM8K gates passed on the selected HiSparse configuration; TP8/DCP4 and TP8/DCP8 decode failed in SGLang attn_mqa_for_dcp_decode, while prefill-only HiCache, BF16 KV, 64K chunking, and alternate HiSparse buffers were slower or failed"
- "Unofficial full curves 29881640438 and 29882624421 completed with zero benchmark errors; the selected 1P1D c4 point reached 546.33 total tok/s/GPU at 11.05s mean TTFT, while scale run 30104463995 reached 567.82 total tok/s/GPU at 3.89s mean TTFT on 1P2D c4"
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2275

Loading
Loading