Repository navigation
feat(agentx): add Muse Spark Open GB200 SGLang DFlash2 AgentX config #4140
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 2 commits
9ef3ff3
a107f97
6cc71db
5efcd73
5b07087
d6f64a6
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,141 @@ | ||
| base: | ||
| schema: 2 | ||
| name: musespark-fp4-gb200-sglang-agentic | ||
| resources: | ||
| gpu_type: gb200 | ||
| gpus_per_node: 4 | ||
| frontend: | ||
| type: sglang | ||
| enable_multiple_frontends: false | ||
| observability: | ||
| enabled: false | ||
| tachometer: | ||
| enabled: false | ||
| engine: sglang | ||
| roles: | ||
| agg: | ||
| nodes: 1 | ||
| workers: 1 | ||
| gpus: 4 | ||
| args: | ||
| served-model-name: meta-models/Muse-Spark-Open-816B-A42B-NVFP4 | ||
| trust-remote-code: true | ||
| tensor-parallel-size: 4 | ||
| expert-parallel-size: 4 | ||
| quantization: modelopt_fp4 | ||
| moe-runner-backend: flashinfer_trtllm | ||
| kv-cache-dtype: fp8_e4m3 | ||
| enable-layernorm-sp: true | ||
| enable-megamoe-for-layernorm-sp: true | ||
| # 133 GB of weights per GPU leave the KV pool what prefill graphs would take. | ||
| mem-fraction-static: 0.88 | ||
| disable-prefill-cuda-graph: true | ||
| swa-full-tokens-ratio: 0.1 | ||
| # DFlash2 verifies 8 tokens per step: the current token plus 7 drafts. | ||
| speculative-algorithm: DFLASH | ||
| speculative-draft-model-path: RadixArk/Muse-Spark-Open-DFlash2 | ||
| speculative-draft-attention-backend: fa4 | ||
| speculative-num-draft-tokens: 8 | ||
| mm-feature-transport: cpu | ||
| reasoning-parser: muse | ||
| tool-call-parser: muse | ||
| watchdog-timeout: 3600 | ||
| enable-metrics: true | ||
| env: | ||
| PYTHONNOUSERSITE: '1' | ||
| PYTHONUNBUFFERED: '1' | ||
| # Outlast AIPerf's pooled connections past Uvicorn's keep-alive. | ||
| SGLANG_TIMEOUT_KEEP_ALIVE: '900' | ||
| # 533 GB of weights load from Lustre before graph capture. | ||
| health_check: | ||
| max_attempts: 1440 | ||
| interval_seconds: 5 | ||
| benchmark: | ||
| env: | ||
| # The gated Hub repo is unreadable to the client; use the staged checkpoint. | ||
| TOKENIZER: /model | ||
| # Warmup can leave bytes unacknowledged past AIPerf's 30 s default. | ||
| AIPERF_HTTP_TCP_USER_TIMEOUT: '900000' | ||
| AIPERF_REQUIRED_SERVER_METRIC_PREFIX: 'sglang:' | ||
| AGENTIC_WARMUP_GRACE_PERIOD: '3600' | ||
|
|
||
|
|
||
| override_tp4_c1: | ||
| roles: | ||
| agg: | ||
| args: | ||
| max-running-requests: 2 | ||
| cuda-graph-max-bs-decode: 2 | ||
| benchmark: | ||
| env: | ||
| CONC: '1' | ||
|
|
||
| override_tp4_c2: | ||
| roles: | ||
| agg: | ||
| args: | ||
| max-running-requests: 4 | ||
| cuda-graph-max-bs-decode: 4 | ||
| benchmark: | ||
| env: | ||
| CONC: '2' | ||
|
|
||
| override_tp4_c4: | ||
| roles: | ||
| agg: | ||
| args: | ||
| max-running-requests: 8 | ||
| cuda-graph-max-bs-decode: 8 | ||
| benchmark: | ||
| env: | ||
| CONC: '4' | ||
|
|
||
| override_tp4_c8: | ||
| roles: | ||
| agg: | ||
| args: | ||
| max-running-requests: 16 | ||
| cuda-graph-max-bs-decode: 16 | ||
| benchmark: | ||
| env: | ||
| CONC: '8' | ||
|
|
||
| override_tp4_c12: | ||
| roles: | ||
| agg: | ||
| args: | ||
| max-running-requests: 24 | ||
| cuda-graph-max-bs-decode: 24 | ||
| benchmark: | ||
| env: | ||
| CONC: '12' | ||
|
|
||
| override_tp4_c16: | ||
| roles: | ||
| agg: | ||
| args: | ||
| max-running-requests: 32 | ||
| cuda-graph-max-bs-decode: 32 | ||
| benchmark: | ||
| env: | ||
| CONC: '16' | ||
|
|
||
| override_tp4_c24: | ||
| roles: | ||
| agg: | ||
| args: | ||
| max-running-requests: 48 | ||
| cuda-graph-max-bs-decode: 48 | ||
| benchmark: | ||
| env: | ||
| CONC: '24' | ||
|
|
||
| override_tp4_c32: | ||
| roles: | ||
| agg: | ||
| args: | ||
| max-running-requests: 64 | ||
| cuda-graph-max-bs-decode: 64 | ||
| benchmark: | ||
| env: | ||
| CONC: '32' |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -5595,7 +5595,7 @@ | |||||
| - "Image ghcr.io/tile-ai/tilert:0.1.5 (tilert 0.1.5.post2 installed at container start); commands aligned to TileRT README Topology A -- NIXL KV transfer, --kv-cache-dtype fp8_ds_mla (prefill) <-> fp8 (decode), max-seq-len 202752; MTP speculative-config wired via spec-decoding=mtp" | ||||||
| - "Topology: 1 prefill node (TP8) + 1 decode node (TP8), each 8xB200 exclusive; TileRT decode is bs=1 only so conc-list is a single point [1], ISL 1k/8k OSL 1k" | ||||||
| - "Runner: launch_b200-dgxc.sh tilert early-return branch (zero impact on the dynamo path); tilert_utils/submit.sh issues two srun --ntasks=1, one per role, because prefill and decode need different container images; roles are dispatched by the TILERT_ROLE it exports, and torn down across nodes via a sentinel file on the shared /workspace" | ||||||
| pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/XXX | ||||||
| pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/4140 | ||||||
|
|
||||||
| - config-keys: | ||||||
| - qwen3.5-fp8-b200-sglang-agentic-mtp | ||||||
|
|
@@ -9724,7 +9724,7 @@ | |||||
| - "Replace the TP4/EP1 and TP2/EP1 C1-C128 sweeps with TP4/EP4 points at concurrency 1, 4, 8 and 16, plus aggregated TP4/EP4 points with DP attention (DP4) at concurrency 32, 64, 128 and 192 behind sglang-router 0.3.2." | ||||||
| - "Apply the point-specific prefill-decode interval, prefill chunking, admission, memory and SWA prefix-tail settings from the single-node recipe; all points use the default fcfs schedule policy." | ||||||
| - "No data-type or precision change to the DSpark draft: the bundled draft of deepseek-ai/DeepSeek-V4.1-Flash runs as shipped with block size 5." | ||||||
| pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/XXX | ||||||
| pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/4140 | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟡 WARNING: Same problem as the TileRT entry. This is the
Suggested change
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔴 Changelog validation in CI will fail for this PR, and two older entries would point at #4140 although it did not make those changes. Lines 5598 and 9727 change historical Why this was flaggedThe diff appends a new entry at the end of inferencex-e2e/perf-changelog.yaml. It also changes two existing entries' pr-link from Verification: At inferencex-e2e/perf-changelog.yaml lines 5598 and 9727 the diff changes |
||||||
|
|
||||||
| - config-keys: | ||||||
| - kimik3-fp4-mi355x-vllm-disagg-agentic | ||||||
|
|
@@ -9892,3 +9892,14 @@ | |||||
| - "The new image brings Kimi-K3 ROCm changes vllm-project/vllm#59591 (latent MoE up-proj stores only the local rank's shards), #59069 (AttnRes output fused with per-token FP8 input quantization), #60717 (vLLM's FP8 max in that fused quantization), #60446 (KDA autotune keys), #59523 (cuMem CUDA-graph pool offload on ROCm) and #59880 (speculative block reservations across KV cache groups with a KV connector)." | ||||||
| - "No change to the Inferact/Kimi-K3-DSpark draft's precision: K3DSparkModel and get_draft_quant_config() are unchanged between the two images, so the draft keeps BF16 weights and an fp8 KV cache." | ||||||
| pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/3951 | ||||||
|
|
||||||
| - config-keys: | ||||||
| - musespark-fp4-gb200-sglang-agentic-dflash | ||||||
| scenario-type: | ||||||
| - agentic-coding | ||||||
| description: | ||||||
| - "Add Muse Spark Open (meta-models/Muse-Spark-Open-816B-A42B-NVFP4) agentic coding on one GB200 node via SGLang (lmsysorg/sglang:dev-muse-spark-open, multiarch digest sha256:8cfc5a72cb296771f5f8a4a4688cb6d05685610a830cbb616fa4ab0eb7bb2b0a) at TP4/EP4, concurrency 1, 2, 4, 8, 12, 16, 24 and 32, GPU-resident KV." | ||||||
| - "Serve flags follow the SGLang cookbook's NVFP4 cell: modelopt_fp4, flashinfer_trtllm MoE, fp8_e4m3 KV, layernorm SP with MegaMoE prefill, DFlash2 draft RadixArk/Muse-Spark-Open-DFlash2 with fa4 draft attention and 8 verify tokens (7 drafts), muse reasoning and tool-call parsers. Prefill CUDA graphs are off and mem-fraction-static is 0.88 to leave room for the KV pool; admission and the decode graph batch are 2x concurrency." | ||||||
| - "Synthetic acceptance follows the committed musespark_dflash golden curve: AL 4.05 at 7 draft tokens, thinking_on." | ||||||
| - "The checkpoint is served from the staged Lustre copy; the AgentX client reads its tokenizer from it." | ||||||
| pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/4140 | ||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🟡 WARNING: This entry's
XXXplaceholder now points to #4140. The entry is the TileRTglm5.1-fp8-b200-tilertentry from #2533 (commit 077d483), not Muse Spark. It looks like a blanketXXX→4140replace in commit a107f97 caught it.Why it matters: The changelog is the historical record, and ingest/recovery tooling uses
pr-linkto attribute results. These TileRT results would be credited to this PR.Fix: Revert this line, or correct it to the real PR: