-
Notifications
You must be signed in to change notification settings - Fork 275
feat(dsv4): add B200 DeepSeek-V4-Pro dynamo-trt 8k1k disagg throughput recipes / 新增 B200 DeepSeek-V4-Pro dynamo-trt 8k1k 分离式吞吐量配置 #2721
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
base: main
Are you sure you want to change the base?
Changes from 12 commits
eab149a
4604d43
bef13cc
807a2c6
6d2fcd9
73f08a9
04895a4
14289a7
1e80df9
d0026a9
577442f
0aafb03
b31bf0e
ba30f69
e15f64d
09804dc
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,125 @@ | ||
| name: disagg-b200-8k1k-1p2d-dep8-dep8-b4-eplb384-mtp3 | ||
| model: | ||
| path: deepseek-v4-pro | ||
| container: dynamo-trtllm | ||
| precision: fp4 | ||
| dynamo: | ||
| install: true | ||
| wheel: "1.4.0.dev20260807" | ||
| request_plane: tcp | ||
| resources: | ||
| gpu_type: b200 | ||
| prefill_nodes: 1 | ||
| prefill_workers: 1 | ||
| gpus_per_prefill: 8 | ||
| decode_nodes: 2 | ||
| decode_workers: 2 | ||
| gpus_per_decode: 8 | ||
| gpus_per_node: 8 | ||
| backend: | ||
| type: trtllm | ||
| prefill_environment: | ||
| TLLM_LOG_LEVEL: INFO | ||
| TRTLLM_SERVER_DISABLE_GC: '1' | ||
| TRTLLM_WORKER_DISABLE_GC: '1' | ||
| TRTLLM_ENABLE_PDL: '1' | ||
| ENROOT_ALLOW_DEV: 'yes' | ||
| NCCL_GRAPH_MIXING_SUPPORT: '0' | ||
| MIMALLOC_PURGE_DELAY: '0' | ||
| PYTORCH_CUDA_ALLOC_CONF: expandable_segments:True | ||
| TLLM_PROFILE_LOG_RANKS: all | ||
| TLLM_SPEC_DECODE_FORCE_NUM_ACCEPTED_TOKENS: '1.82' | ||
| UCX_TLS: rc,cuda_ipc,cuda_copy,sm,self,tcp | ||
| NIXL_PLUGIN_DIR: /opt/nvidia/nvda_nixl/lib/x86_64-linux-gnu/plugins | ||
| decode_environment: | ||
| TLLM_LOG_LEVEL: INFO | ||
| TRTLLM_SERVER_DISABLE_GC: '1' | ||
| TRTLLM_WORKER_DISABLE_GC: '1' | ||
| TRTLLM_ENABLE_PDL: '1' | ||
| ENROOT_ALLOW_DEV: 'yes' | ||
| NCCL_GRAPH_MIXING_SUPPORT: '0' | ||
| MIMALLOC_PURGE_DELAY: '0' | ||
| TLLM_PROFILE_LOG_RANKS: all | ||
| TLLM_SPEC_DECODE_FORCE_NUM_ACCEPTED_TOKENS: '1.82' | ||
| UCX_TLS: rc,cuda_ipc,cuda_copy,sm,self,tcp | ||
| NIXL_PLUGIN_DIR: /opt/nvidia/nvda_nixl/lib/x86_64-linux-gnu/plugins | ||
| trtllm_config: | ||
| prefill: | ||
| cache_transceiver_config: | ||
| backend: NIXL | ||
| kv_transfer_timeout_ms: 600000 | ||
| transceiver_runtime: PYTHON | ||
| cuda_graph_config: | ||
| disable_overlap_scheduler: true | ||
| enable_attention_dp: true | ||
| kv_cache_config: | ||
| dtype: fp8 | ||
| enable_block_reuse: false | ||
| free_gpu_memory_fraction: 0.5 | ||
| tokens_per_block: 128 | ||
| max_batch_size: 2 | ||
| max_num_tokens: 8192 | ||
| max_seq_len: 8232 | ||
| moe_config: | ||
| backend: TRTLLM | ||
| load_balancer: /configs/moe_load_balancer_ctx_ep4_384.yaml | ||
| moe_expert_parallel_size: 8 | ||
| pipeline_parallel_size: 1 | ||
| print_iter_log: true | ||
| speculative_config: | ||
| decoding_type: MTP | ||
| max_draft_len: 3 | ||
| tensor_parallel_size: 8 | ||
| decode: | ||
| cache_transceiver_config: | ||
| backend: NIXL | ||
| kv_transfer_timeout_ms: 600000 | ||
| transceiver_runtime: PYTHON | ||
| cuda_graph_config: | ||
| batch_sizes: | ||
| - 1 | ||
| - 2 | ||
| - 4 | ||
| enable_padding: true | ||
| enable_attention_dp: true | ||
| enable_lm_head_tp_in_adp: true | ||
| kv_cache_config: | ||
| dtype: fp8 | ||
| enable_block_reuse: false | ||
| free_gpu_memory_fraction: 0.8 | ||
| tokens_per_block: 128 | ||
| max_batch_size: 4 | ||
| max_num_tokens: 16 | ||
| max_seq_len: 9256 | ||
| moe_config: | ||
| backend: TRTLLM | ||
| load_balancer: /configs/moe_load_balancer_gen_ep8_slots384.yaml | ||
| use_low_precision_moe_combine: true | ||
| moe_expert_parallel_size: 8 | ||
| num_postprocess_workers: 4 | ||
| pipeline_parallel_size: 1 | ||
| print_iter_log: true | ||
| speculative_config: | ||
| decoding_type: MTP | ||
| max_draft_len: 3 | ||
| stream_interval: 100 | ||
| tensor_parallel_size: 8 | ||
| benchmark: | ||
| type: sa-bench | ||
| isl: 8192 | ||
| osl: 1024 | ||
| concurrencies: "64" | ||
| req_rate: inf | ||
| random_range_ratio: 0.8 | ||
| use_chat_template: true | ||
| custom_tokenizer: "sa_bench_tokenizers.sglang_deepseek_v4.SGLangDeepseekV4Tokenizer" | ||
| frontend: | ||
| type: dynamo | ||
| enable_multiple_frontends: false | ||
| slurm: | ||
| time_limit: '3:00:00' | ||
| health_check: | ||
| max_attempts: 540 | ||
| interval_seconds: 10 | ||
| environment: | ||
| TRTLLM_SERVER_DISABLE_GC: '1' | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,125 @@ | ||
| name: disagg-b200-8k1k-1p4d-dep8-dep8-b2-eplb384-mtp3 | ||
| model: | ||
| path: deepseek-v4-pro | ||
| container: dynamo-trtllm | ||
| precision: fp4 | ||
| dynamo: | ||
| install: true | ||
| wheel: "1.4.0.dev20260807" | ||
| request_plane: tcp | ||
| resources: | ||
| gpu_type: b200 | ||
| prefill_nodes: 1 | ||
| prefill_workers: 1 | ||
| gpus_per_prefill: 8 | ||
| decode_nodes: 4 | ||
| decode_workers: 4 | ||
| gpus_per_decode: 8 | ||
| gpus_per_node: 8 | ||
| backend: | ||
| type: trtllm | ||
| prefill_environment: | ||
| TLLM_LOG_LEVEL: INFO | ||
| TRTLLM_SERVER_DISABLE_GC: '1' | ||
| TRTLLM_WORKER_DISABLE_GC: '1' | ||
| TRTLLM_ENABLE_PDL: '1' | ||
| ENROOT_ALLOW_DEV: 'yes' | ||
| NCCL_GRAPH_MIXING_SUPPORT: '0' | ||
| MIMALLOC_PURGE_DELAY: '0' | ||
| PYTORCH_CUDA_ALLOC_CONF: expandable_segments:True | ||
| TLLM_PROFILE_LOG_RANKS: all | ||
| TLLM_SPEC_DECODE_FORCE_NUM_ACCEPTED_TOKENS: '1.82' | ||
| UCX_TLS: rc,cuda_ipc,cuda_copy,sm,self,tcp | ||
| NIXL_PLUGIN_DIR: /opt/nvidia/nvda_nixl/lib/x86_64-linux-gnu/plugins | ||
| decode_environment: | ||
| TLLM_LOG_LEVEL: INFO | ||
| TRTLLM_SERVER_DISABLE_GC: '1' | ||
| TRTLLM_WORKER_DISABLE_GC: '1' | ||
| TRTLLM_ENABLE_PDL: '1' | ||
| ENROOT_ALLOW_DEV: 'yes' | ||
| NCCL_GRAPH_MIXING_SUPPORT: '0' | ||
| MIMALLOC_PURGE_DELAY: '0' | ||
| TLLM_PROFILE_LOG_RANKS: all | ||
| TLLM_SPEC_DECODE_FORCE_NUM_ACCEPTED_TOKENS: '1.82' | ||
| UCX_TLS: rc,cuda_ipc,cuda_copy,sm,self,tcp | ||
| NIXL_PLUGIN_DIR: /opt/nvidia/nvda_nixl/lib/x86_64-linux-gnu/plugins | ||
| trtllm_config: | ||
| prefill: | ||
| cache_transceiver_config: | ||
| backend: NIXL | ||
| kv_transfer_timeout_ms: 600000 | ||
| transceiver_runtime: PYTHON | ||
| cuda_graph_config: | ||
| disable_overlap_scheduler: true | ||
| enable_attention_dp: true | ||
| kv_cache_config: | ||
| dtype: fp8 | ||
| enable_block_reuse: false | ||
| free_gpu_memory_fraction: 0.5 | ||
| tokens_per_block: 128 | ||
| max_batch_size: 2 | ||
| max_num_tokens: 8192 | ||
| max_seq_len: 8232 | ||
| moe_config: | ||
| backend: TRTLLM | ||
| load_balancer: /configs/moe_load_balancer_ctx_ep4_384.yaml | ||
| moe_expert_parallel_size: 8 | ||
| pipeline_parallel_size: 1 | ||
| print_iter_log: true | ||
| speculative_config: | ||
| decoding_type: MTP | ||
| max_draft_len: 3 | ||
| tensor_parallel_size: 8 | ||
| decode: | ||
| cache_transceiver_config: | ||
| backend: NIXL | ||
| kv_transfer_timeout_ms: 600000 | ||
| transceiver_runtime: PYTHON | ||
| cuda_graph_config: | ||
| batch_sizes: | ||
| - 1 | ||
| - 2 | ||
| - 4 | ||
| enable_padding: true | ||
| enable_attention_dp: true | ||
| enable_lm_head_tp_in_adp: true | ||
| kv_cache_config: | ||
| dtype: fp8 | ||
| enable_block_reuse: false | ||
| free_gpu_memory_fraction: 0.8 | ||
| tokens_per_block: 128 | ||
| max_batch_size: 2 | ||
|
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. CUDA graph batch exceeds max batchMedium Severity Decode Reviewed by Cursor Bugbot for commit 14289a7. Configure here. |
||
| max_num_tokens: 8 | ||
| max_seq_len: 9256 | ||
| moe_config: | ||
| backend: TRTLLM | ||
| load_balancer: /configs/moe_load_balancer_gen_ep8_slots384.yaml | ||
| use_low_precision_moe_combine: true | ||
| moe_expert_parallel_size: 8 | ||
| num_postprocess_workers: 4 | ||
| pipeline_parallel_size: 1 | ||
| print_iter_log: true | ||
| speculative_config: | ||
| decoding_type: MTP | ||
| max_draft_len: 3 | ||
| stream_interval: 100 | ||
| tensor_parallel_size: 8 | ||
| benchmark: | ||
| type: sa-bench | ||
| isl: 8192 | ||
| osl: 1024 | ||
| concurrencies: "64" | ||
| req_rate: inf | ||
| random_range_ratio: 0.8 | ||
| use_chat_template: true | ||
| custom_tokenizer: "sa_bench_tokenizers.sglang_deepseek_v4.SGLangDeepseekV4Tokenizer" | ||
| frontend: | ||
| type: dynamo | ||
| enable_multiple_frontends: false | ||
| slurm: | ||
| time_limit: '3:00:00' | ||
| health_check: | ||
| max_attempts: 540 | ||
| interval_seconds: 10 | ||
| environment: | ||
| TRTLLM_SERVER_DISABLE_GC: '1' | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,123 @@ | ||
| name: disagg-b200-8k1k-1p4d-dep8-tep8-b4-mtp3 | ||
| model: | ||
| path: deepseek-v4-pro | ||
| container: dynamo-trtllm | ||
| precision: fp4 | ||
| dynamo: | ||
| install: true | ||
| wheel: "1.4.0.dev20260807" | ||
| request_plane: tcp | ||
| resources: | ||
| gpu_type: b200 | ||
| prefill_nodes: 1 | ||
| prefill_workers: 1 | ||
| gpus_per_prefill: 8 | ||
| decode_nodes: 4 | ||
| decode_workers: 4 | ||
| gpus_per_decode: 8 | ||
| gpus_per_node: 8 | ||
| backend: | ||
| type: trtllm | ||
| prefill_environment: | ||
| TLLM_LOG_LEVEL: INFO | ||
| TRTLLM_SERVER_DISABLE_GC: '1' | ||
| TRTLLM_WORKER_DISABLE_GC: '1' | ||
| TRTLLM_ENABLE_PDL: '1' | ||
| ENROOT_ALLOW_DEV: 'yes' | ||
| NCCL_GRAPH_MIXING_SUPPORT: '0' | ||
| MIMALLOC_PURGE_DELAY: '0' | ||
| PYTORCH_CUDA_ALLOC_CONF: expandable_segments:True | ||
| TLLM_PROFILE_LOG_RANKS: all | ||
| TLLM_SPEC_DECODE_FORCE_NUM_ACCEPTED_TOKENS: '1.82' | ||
| UCX_TLS: rc,cuda_ipc,cuda_copy,sm,self,tcp | ||
| NIXL_PLUGIN_DIR: /opt/nvidia/nvda_nixl/lib/x86_64-linux-gnu/plugins | ||
| decode_environment: | ||
| TLLM_LOG_LEVEL: INFO | ||
| TRTLLM_SERVER_DISABLE_GC: '1' | ||
| TRTLLM_WORKER_DISABLE_GC: '1' | ||
| TRTLLM_ENABLE_PDL: '1' | ||
| ENROOT_ALLOW_DEV: 'yes' | ||
| NCCL_GRAPH_MIXING_SUPPORT: '0' | ||
| MIMALLOC_PURGE_DELAY: '0' | ||
| TLLM_PROFILE_LOG_RANKS: all | ||
| TLLM_SPEC_DECODE_FORCE_NUM_ACCEPTED_TOKENS: '1.82' | ||
| UCX_TLS: rc,cuda_ipc,cuda_copy,sm,self,tcp | ||
| NIXL_PLUGIN_DIR: /opt/nvidia/nvda_nixl/lib/x86_64-linux-gnu/plugins | ||
| trtllm_config: | ||
| prefill: | ||
| cache_transceiver_config: | ||
| backend: NIXL | ||
| kv_transfer_timeout_ms: 600000 | ||
| transceiver_runtime: PYTHON | ||
| cuda_graph_config: | ||
| disable_overlap_scheduler: true | ||
| enable_attention_dp: true | ||
| kv_cache_config: | ||
| dtype: fp8 | ||
| enable_block_reuse: false | ||
| free_gpu_memory_fraction: 0.5 | ||
| tokens_per_block: 128 | ||
| max_batch_size: 2 | ||
| max_num_tokens: 8192 | ||
| max_seq_len: 8232 | ||
| moe_config: | ||
| backend: TRTLLM | ||
| moe_expert_parallel_size: 8 | ||
| pipeline_parallel_size: 1 | ||
| print_iter_log: true | ||
| speculative_config: | ||
| decoding_type: MTP | ||
| max_draft_len: 3 | ||
| tensor_parallel_size: 8 | ||
| decode: | ||
| cache_transceiver_config: | ||
| backend: NIXL | ||
| kv_transfer_timeout_ms: 600000 | ||
| transceiver_runtime: PYTHON | ||
| cuda_graph_config: | ||
| batch_sizes: | ||
| - 1 | ||
| - 2 | ||
| - 4 | ||
| enable_padding: true | ||
| enable_attention_dp: false | ||
| enable_lm_head_tp_in_adp: false | ||
| kv_cache_config: | ||
| dtype: fp8 | ||
| enable_block_reuse: false | ||
| free_gpu_memory_fraction: 0.9 | ||
| tokens_per_block: 128 | ||
| max_batch_size: 4 | ||
| max_num_tokens: 16 | ||
| max_seq_len: 9256 | ||
| moe_config: | ||
| backend: TRTLLM | ||
| use_low_precision_moe_combine: true | ||
| moe_expert_parallel_size: 8 | ||
| num_postprocess_workers: 4 | ||
| pipeline_parallel_size: 1 | ||
| print_iter_log: true | ||
| speculative_config: | ||
| decoding_type: MTP | ||
| max_draft_len: 3 | ||
| stream_interval: 100 | ||
| tensor_parallel_size: 8 | ||
| benchmark: | ||
| type: sa-bench | ||
| isl: 8192 | ||
| osl: 1024 | ||
| concurrencies: "16" | ||
| req_rate: inf | ||
| random_range_ratio: 0.8 | ||
| use_chat_template: true | ||
| custom_tokenizer: "sa_bench_tokenizers.sglang_deepseek_v4.SGLangDeepseekV4Tokenizer" | ||
| frontend: | ||
| type: dynamo | ||
| enable_multiple_frontends: false | ||
| slurm: | ||
| time_limit: '3:00:00' | ||
| health_check: | ||
| max_attempts: 540 | ||
| interval_seconds: 10 | ||
| environment: | ||
| TRTLLM_SERVER_DISABLE_GC: '1' |


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.
Prefill EPLB config EP mismatch
Medium Severity
Prefill
moe_config.load_balancerpoints atmoe_load_balancer_ctx_ep4_384.yamlwhilemoe_expert_parallel_sizeis8. That EPLB table is built for EP4 slot sharding, so DEP8 prefill places experts with the wrong rank mapping and can unbalance MoE load or OOM a subset of ranks.Additional Locations (1)
benchmarks/multi_node/srt-slurm-recipes/trtllm/deepseek-v4/8k1k/b200/mtp/disagg-b200-8k1k-1p4d-dep8-dep8-b2-eplb384-mtp3.yaml#L64-L66Reviewed by Cursor Bugbot for commit 0aafb03. Configure here.