-
Notifications
You must be signed in to change notification settings - Fork 253
[KimiK3][AgentX]: H200 KimiK3 Day 0 support #2353
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
Merged
Merged
Changes from all commits
Commits
Show all changes
92 commits
Select commit
Hold shift + click to select a range
9b1e9b2
feat(agentx): add Kimi K3 H200 day-0 support
cquil11 16d44ef
chore: link Kimi K3 H200 changelog to PR
cquil11 18a61bd
refactor(runners): add pluggable Slurm multi-node connector
cquil11 c31b634
refactor(runners): simplify native multi-node launch
cquil11 f4279ac
fix(kimik3): use default model context length
cquil11 902951a
docs(kimik3): trim benchmark changelog
cquil11 4be37db
refactor(kimik3): trust benchmark environment
cquil11 b12f1ae
fix(h200): set native vLLM port
cquil11 2d8d435
fix(kimik3): unblock H200 model loading
cquil11 ec0c20d
fix(kimik3): align rendezvous host with Slurm rank zero
cquil11 bbbbc3d
fix(kimik3): provision full-context H200 topology
cquil11 428e72d
fix(kimik3): stream H200 checkpoint loading
cquil11 2325df7
fix(kimik3): fit full context with pipeline parallelism
cquil11 e29e380
fix(kimik3): use supported model runner
cquil11 24fdf3f
fix(h200): preserve server logs on cancellation
cquil11 9baa292
fix(kimik3): preserve full context with DCP
cquil11 00acd46
fix(kimik3): fit H200 startup memory budget
cquil11 8e5f309
chore(h200): name the vLLM server log clearly
cquil11 8ddd1b9
test(kimik3): reproduce pipeline serving path
cquil11 a73f110
fix(kimik3): use two-node reference topologies
cquil11 8cd634a
fix(h200): reuse host git for agentic clients
cquil11 e1f7d83
test(kimik3): probe two-node DCP serving
cquil11 0335cd9
test(kimik3): probe two-node TEP serving
cquil11 08d7400
fix(kimik3): stream TEP and DEP weight loading
cquil11 ccb01fa
fix(h200): expose all local DP endpoints
cquil11 9609bca
test(kimik3): probe full-context TP16 serving
cquil11 e5cdcbb
fix(kimik3): leave room for distributed startup
cquil11 0fda2ca
fix(kimik3): stream all multi-node weight loads
cquil11 b92ce48
fix(h200): stop failed engines during readiness
cquil11 2b8c47f
test(kimik3): probe four-node DP16 serving
cquil11 18e2b3f
test(kimik3): run PP with the V1 model runner
cquil11 b7e58f3
fix(kimik3): allow distributed worker overhead
cquil11 b3b628d
perf(kimik3): use fast loading for PP
cquil11 f2d1243
fix(kimik3): use bf16 kv cache for PP
cquil11 83c9ca5
fix(kimik3): reserve PP runtime memory
cquil11 5fc99b0
perf(kimik3): add PP to EP strategies
cquil11 a65e0b9
fix(kimik3): reserve topology workspace
cquil11 f2090e7
fix(kimik3): reduce latency prefill chunk
cquil11 adc1109
fix(kimik3): align H200 overrides with official recipe
cquil11 d33f844
fix(kimik3): disable SM100-only tail fusion on H200
cquil11 a4c259b
fix(kimik3): use one shared API port per DP node
cquil11 deae74e
fix(kimik3): leave throughput prefill headroom
cquil11 d0eefab
perf(kimik3): restore Day 0 sweep ranges
cquil11 6e98eed
fix(kimik3): preserve throughput activation headroom
cquil11 7c2bcd4
fix(h200): guard cleanup before server startup
cquil11 f99af81
fix(h200): snapshot native server logs during runs
cquil11 724ad15
fix(kimik3): reduce throughput prefill workspace
cquil11 8abfa19
fix(kimik3): preserve throughput collective headroom
cquil11 2c2d6de
fix(kimik3): allow long throughput warmup drains
cquil11 572b85b
fix(kimik3): cap H200 throughput concurrency
cquil11 caa2e20
fix(kimik3): use KV-safe throughput concurrency
cquil11 3e27396
fix(kimik3): add throughput tensor parallel headroom
cquil11 2d0629d
refactor(kimik3): use srt-slurm direct vLLM
cquil11 8ee6ab3
fix(kimik3): disable SM100 tail fusion on H200
cquil11 7ccb00e
perf(kimik3): add high-concurrency KV offload
cquil11 ec22d4b
perf(kimik3): densify H200 concurrency sweep
cquil11 4c9dcdf
Update perf-changelog.yaml
cquil11 1737359
perf(kimik3): enable DSpark on H200
cquil11 5c03d8f
fix(kimik3): replace PP with pure H200 topologies
cquil11 735784f
Merge origin/main into H200 Kimi K3 branch
cquil11 631fa8a
perf(kimik3): use fit-safe H200 hybrid topologies
cquil11 d451287
perf(kimik3): remove duplicate H200 throughput arm
cquil11 9c8643c
perf(kimik3): enable Model Runner V2 on H200
cquil11 d2827ca
chore: merge origin/main into Kimi K3 H200 support
cquil11 174fa1f
fix(kimik3): use FlashMLA for H200 DSpark
cquil11 d4d6a47
Merge main into H200 Kimi-K3 AgentX branch
cquil11 bd4b520
fix(kimik3): auto-select H200 DSpark draft attention
cquil11 87b21b2
perf(kimik3): align H200 runtime limits
cquil11 3ac5e57
fix(kimik3): preserve native H200 capacity
cquil11 03cb89e
fix(kimik3): bypass unstable Hopper router batches
cquil11 94f6d36
perf(kimik3): report prompt cache reads
cquil11 0aac694
Merge main into H200 Kimi-K3 AgentX branch
cquil11 40d6f02
fix(agentx): align H200 AIPerf replay
cquil11 ea11e1c
fix(agentx): let Dynamo report cached prompt tokens
cquil11 6915490
Merge main into H200 Kimi-K3 AgentX branch
cquil11 fdc5a8f
fix(agentx): stabilize Kimi K3 DSpark on H200
cquil11 14d70db
fix(agentx): retain Kimi K3 RMS fusion guard
cquil11 492a396
fix(vllm): stabilize Kimi K3 TP8 DSpark
cquil11 8cedb3d
docs(config): clarify H200 DSpark levels
cquil11 1e68b47
fix(vllm): stabilize Kimi K3 TP16 DSpark
cquil11 4e60581
fix(agentx): pin Kimi K3 golden acceptance
cquil11 e2554a5
fix(vllm): serialize H200 Kimi K3 TP8 scheduling
cquil11 38c9093
Merge origin/main into H200 Kimi K3 AgentX branch
cquil11 0b3325c
perf(kimik3): restore direct vLLM cache metrics
cquil11 0d9bbb0
fix(vllm): serialize Kimi K3 TP8 CUDA launches
cquil11 e953279
fix(vllm): serialize Kimi K3 offload launches
cquil11 432c601
fix(kimik3): serialize TP16 CUDA launches
cquil11 d58f2e9
chore(agentx): bump AIPerf harness
cquil11 894719a
chore(agentx): bump AIPerf barrier fixes
cquil11 ad5ee95
chore: merge origin/main into H200 Kimi K3 branch
cquil11 114c1bd
fix(agentx): remove duplicate trace idle cap flag
cquil11 d45431f
merge(main): resolve PR conflicts
cquil11 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
94 changes: 94 additions & 0 deletions
94
...lti_node/srt-slurm-recipes/vllm/kimi-k3/agentic/agg-h200-tp16dp2ep32-latency-agentic.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,94 @@ | ||
| name: "kimik3-vllm-agg-h200-tp16dp2ep32-latency-agentic" | ||
|
|
||
| model: | ||
| path: "kimik3" | ||
| container: "vllm/vllm-openai:kimi-k3" | ||
| precision: "fp4" | ||
|
|
||
| identity: | ||
| model: | ||
| repo: "moonshotai/Kimi-K3" | ||
| revision: "9f62e4e9fffbd0a83ddd60e1c209d828994b3569" | ||
| container: | ||
| image: "vllm/vllm-openai:kimi-k3" | ||
| frameworks: | ||
| vllm: "0.1.dev19262+gb6bbf29dd.d20260727" | ||
|
|
||
| dynamo: | ||
| install: false | ||
|
|
||
| slurm: | ||
| time_limit: "8:00:00" | ||
|
|
||
| health_check: | ||
| max_attempts: 720 | ||
| interval_seconds: 10 | ||
|
|
||
| resources: | ||
| gpu_type: "h200" | ||
| gpus_per_node: 8 | ||
| agg_nodes: 4 | ||
| agg_workers: 1 | ||
| gpus_per_agg: 32 | ||
|
|
||
| frontend: | ||
| type: vllm | ||
| enable_multiple_frontends: false | ||
|
|
||
| backend: | ||
| type: vllm | ||
| connector: null | ||
| aggregated_environment: | ||
| CUDA_LAUNCH_BLOCKING: "1" | ||
| GLOO_SOCKET_IFNAME: "eth0" | ||
| HF_HUB_CACHE: "/hf_hub_cache" | ||
| HUGGINGFACE_HUB_CACHE: "/hf_hub_cache" | ||
| NCCL_SOCKET_IFNAME: "eth0" | ||
| NCCL_CUMEM_ENABLE: "1" | ||
| PYTORCH_CUDA_ALLOC_CONF: "expandable_segments:True" | ||
| PYTHONNOUSERSITE: "1" | ||
| TRANSFORMERS_CACHE: "/hf_hub_cache" | ||
| VLLM_ENGINE_READY_TIMEOUT_S: "7200" | ||
| VLLM_EXECUTE_MODEL_TIMEOUT_SECONDS: "1800" | ||
| VLLM_ROUTED_DOWN_PROJ_STREAM_TOKEN_THRESHOLD: "0" | ||
| VLLM_USE_V2_MODEL_RUNNER: "1" | ||
| vllm_config: | ||
| aggregated: | ||
| served-model-name: "moonshotai/Kimi-K3" | ||
| tensor-parallel-size: 16 | ||
| data-parallel-size: 2 | ||
| enable-expert-parallel: true | ||
| trust-remote-code: true | ||
| load-format: fastsafetensors | ||
| moe-backend: marlin | ||
| attention-backend: FLASHMLA | ||
| gpu-memory-utilization: 0.975 | ||
| max-num-seqs: 5 | ||
| max-num-batched-tokens: 4096 | ||
| speculative-config: '{"method":"dspark","model":"Inferact/Kimi-K3-DSpark","num_speculative_tokens":2,"draft_sample_method":"probabilistic","rejection_sample_method":"synthetic","synthetic_acceptance_length":2.51}' | ||
| enforce-eager: true | ||
| compilation-config: '{"pass_config":{"fuse_allreduce_rms":false}}' | ||
| enable-prefix-caching: true | ||
| enable-prompt-tokens-details: true | ||
| no-enable-flashinfer-autotune: true | ||
| disable-custom-all-reduce: true | ||
| enable-auto-tool-choice: true | ||
| tool-call-parser: kimi_k3 | ||
| reasoning-parser: kimi_k3 | ||
| language-model-only: true | ||
|
|
||
| srun_options: | ||
| 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_DATASET_MMAP_CACHE_DIR: "/aiperf_mmap_cache" | ||
| AIPERF_TRACE_IDLE_GAP_CAP_SECONDS: "300" | ||
| HF_HUB_CACHE: "/hf_hub_cache" | ||
| WEKA_LOADER_OVERRIDE: "semianalysis_cc_traces_weka_062126" | ||
95 changes: 95 additions & 0 deletions
95
...lti_node/srt-slurm-recipes/vllm/kimi-k3/agentic/agg-h200-tp8dp4ep32-balanced-agentic.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,95 @@ | ||
| name: "kimik3-vllm-agg-h200-tp8dp4ep32-balanced-agentic" | ||
|
|
||
| model: | ||
| path: "kimik3" | ||
| container: "vllm/vllm-openai:kimi-k3" | ||
| precision: "fp4" | ||
|
|
||
| identity: | ||
| model: | ||
| repo: "moonshotai/Kimi-K3" | ||
| revision: "9f62e4e9fffbd0a83ddd60e1c209d828994b3569" | ||
| container: | ||
| image: "vllm/vllm-openai:kimi-k3" | ||
| frameworks: | ||
| vllm: "0.1.dev19262+gb6bbf29dd.d20260727" | ||
|
|
||
| dynamo: | ||
| install: false | ||
|
|
||
| slurm: | ||
| time_limit: "8:00:00" | ||
|
|
||
| health_check: | ||
| max_attempts: 720 | ||
| interval_seconds: 10 | ||
|
|
||
| resources: | ||
| gpu_type: "h200" | ||
| gpus_per_node: 8 | ||
| agg_nodes: 4 | ||
| agg_workers: 1 | ||
| gpus_per_agg: 32 | ||
|
|
||
| frontend: | ||
| type: vllm | ||
| enable_multiple_frontends: false | ||
|
|
||
| backend: | ||
| type: vllm | ||
| connector: null | ||
| aggregated_environment: | ||
| CUDA_LAUNCH_BLOCKING: "1" | ||
| GLOO_SOCKET_IFNAME: "eth0" | ||
| HF_HUB_CACHE: "/hf_hub_cache" | ||
| HUGGINGFACE_HUB_CACHE: "/hf_hub_cache" | ||
| NCCL_SOCKET_IFNAME: "eth0" | ||
| NCCL_CUMEM_ENABLE: "1" | ||
| PYTORCH_CUDA_ALLOC_CONF: "expandable_segments:True" | ||
| PYTHONNOUSERSITE: "1" | ||
| TRANSFORMERS_CACHE: "/hf_hub_cache" | ||
| VLLM_ENGINE_READY_TIMEOUT_S: "7200" | ||
| VLLM_EXECUTE_MODEL_TIMEOUT_SECONDS: "1800" | ||
| VLLM_ROUTED_DOWN_PROJ_STREAM_TOKEN_THRESHOLD: "0" | ||
| VLLM_USE_V2_MODEL_RUNNER: "1" | ||
| vllm_config: | ||
| aggregated: | ||
| served-model-name: "moonshotai/Kimi-K3" | ||
| tensor-parallel-size: 8 | ||
| data-parallel-size: 4 | ||
| enable-expert-parallel: true | ||
| trust-remote-code: true | ||
| load-format: fastsafetensors | ||
| moe-backend: marlin | ||
| attention-backend: FLASHMLA | ||
| gpu-memory-utilization: 0.95 | ||
| max-num-seqs: 8 | ||
| max-num-batched-tokens: 4096 | ||
| speculative-config: '{"method":"dspark","model":"Inferact/Kimi-K3-DSpark","num_speculative_tokens":2,"draft_sample_method":"probabilistic","rejection_sample_method":"synthetic","synthetic_acceptance_length":2.51}' | ||
| enforce-eager: true | ||
| no-async-scheduling: true | ||
| compilation-config: '{"pass_config":{"fuse_allreduce_rms":false}}' | ||
| enable-prefix-caching: true | ||
| enable-prompt-tokens-details: true | ||
| no-enable-flashinfer-autotune: true | ||
| disable-custom-all-reduce: true | ||
| enable-auto-tool-choice: true | ||
| tool-call-parser: kimi_k3 | ||
| reasoning-parser: kimi_k3 | ||
| language-model-only: true | ||
|
|
||
| srun_options: | ||
| 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_DATASET_MMAP_CACHE_DIR: "/aiperf_mmap_cache" | ||
| AIPERF_TRACE_IDLE_GAP_CAP_SECONDS: "300" | ||
| HF_HUB_CACHE: "/hf_hub_cache" | ||
| WEKA_LOADER_OVERRIDE: "semianalysis_cc_traces_weka_062126" |
96 changes: 96 additions & 0 deletions
96
..._node/srt-slurm-recipes/vllm/kimi-k3/agentic/agg-h200-tp8dp4ep32-vllm-simple-agentic.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,96 @@ | ||
| name: "kimik3-vllm-agg-h200-tp8dp4ep32-vllm-simple-agentic" | ||
|
|
||
| model: | ||
| path: "kimik3" | ||
| container: "vllm/vllm-openai:kimi-k3" | ||
| precision: "fp4" | ||
|
|
||
| identity: | ||
| model: | ||
| repo: "moonshotai/Kimi-K3" | ||
| revision: "9f62e4e9fffbd0a83ddd60e1c209d828994b3569" | ||
| container: | ||
| image: "vllm/vllm-openai:kimi-k3" | ||
| frameworks: | ||
| vllm: "0.1.dev19262+gb6bbf29dd.d20260727" | ||
|
|
||
| dynamo: | ||
| install: false | ||
|
|
||
| slurm: | ||
| time_limit: "8:00:00" | ||
|
|
||
| health_check: | ||
| max_attempts: 720 | ||
| interval_seconds: 10 | ||
|
|
||
| resources: | ||
| gpu_type: "h200" | ||
| gpus_per_node: 8 | ||
| agg_nodes: 4 | ||
| agg_workers: 1 | ||
| gpus_per_agg: 32 | ||
|
|
||
| frontend: | ||
| type: vllm | ||
| enable_multiple_frontends: false | ||
|
|
||
| backend: | ||
| type: vllm | ||
| connector: null | ||
| aggregated_environment: | ||
| CUDA_LAUNCH_BLOCKING: "1" | ||
| GLOO_SOCKET_IFNAME: "eth0" | ||
| HF_HUB_CACHE: "/hf_hub_cache" | ||
| HUGGINGFACE_HUB_CACHE: "/hf_hub_cache" | ||
| NCCL_SOCKET_IFNAME: "eth0" | ||
| NCCL_CUMEM_ENABLE: "1" | ||
| PYTHONHASHSEED: "42" | ||
| PYTHONNOUSERSITE: "1" | ||
| TRANSFORMERS_CACHE: "/hf_hub_cache" | ||
| VLLM_ENGINE_READY_TIMEOUT_S: "7200" | ||
| VLLM_EXECUTE_MODEL_TIMEOUT_SECONDS: "1800" | ||
| VLLM_ROUTED_DOWN_PROJ_STREAM_TOKEN_THRESHOLD: "0" | ||
| VLLM_USE_V2_MODEL_RUNNER: "1" | ||
| vllm_config: | ||
| aggregated: | ||
| served-model-name: "moonshotai/Kimi-K3" | ||
| tensor-parallel-size: 8 | ||
| data-parallel-size: 4 | ||
| enable-expert-parallel: true | ||
| trust-remote-code: true | ||
| load-format: fastsafetensors | ||
| moe-backend: marlin | ||
| attention-backend: FLASHMLA | ||
| gpu-memory-utilization: 0.95 | ||
| max-num-seqs: 16 | ||
| max-num-batched-tokens: 4096 | ||
| speculative-config: '{"method":"dspark","model":"Inferact/Kimi-K3-DSpark","num_speculative_tokens":2,"draft_sample_method":"probabilistic","rejection_sample_method":"synthetic","synthetic_acceptance_length":2.51}' | ||
| enforce-eager: true | ||
| no-async-scheduling: true | ||
| compilation-config: '{"pass_config":{"fuse_allreduce_rms":false}}' | ||
| enable-prefix-caching: true | ||
| enable-prompt-tokens-details: true | ||
| kv-transfer-config: '{"kv_connector":"SimpleCPUOffloadConnector","kv_role":"kv_both","kv_connector_extra_config":{"cpu_bytes_to_use_per_rank":154250000000,"lazy_offload":false}}' | ||
| no-enable-flashinfer-autotune: true | ||
| disable-custom-all-reduce: true | ||
| enable-auto-tool-choice: true | ||
| tool-call-parser: kimi_k3 | ||
| reasoning-parser: kimi_k3 | ||
| language-model-only: true | ||
|
|
||
| srun_options: | ||
| 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_DATASET_MMAP_CACHE_DIR: "/aiperf_mmap_cache" | ||
| AIPERF_TRACE_IDLE_GAP_CAP_SECONDS: "300" | ||
| HF_HUB_CACHE: "/hf_hub_cache" | ||
| WEKA_LOADER_OVERRIDE: "semianalysis_cc_traces_weka_062126" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Why using enforce eager?