deprecate prefill-round-robin-balance (#16195)

Signed-off-by: Chang Huaixin (OpenAnolis) <changhuaixin@linux.alibaba.com>
Co-authored-by: Liangsheng Yin <lsyincs@gmail.com>
This commit is contained in:
Huaixin Chang
2025-12-31 22:25:33 +08:00
committed by GitHub
co-authored by Liangsheng Yin
parent 3b3c5a05c1
commit c1dfbc777b
6 changed files with 10 additions and 24 deletions
+1 -1
View File
@@ -207,7 +207,6 @@ Please consult the documentation below and [server_args.py](https://github.com/s
| `--data-parallel-size`<br>`--dp-size` | The data parallelism size. | `1` | Type: int | | `--data-parallel-size`<br>`--dp-size` | The data parallelism size. | `1` | Type: int |
| `--load-balance-method` | The load balancing strategy for data parallelism. The Minimum Token algorithm can only be used when DP attention is applied. This algorithm performs load balancing based on the real-time token load of the DP workers. | `auto` | `auto`, `round_robin`, `follow_bootstrap_room`, `shortest_queue`, `minimum_tokens` | | `--load-balance-method` | The load balancing strategy for data parallelism. The Minimum Token algorithm can only be used when DP attention is applied. This algorithm performs load balancing based on the real-time token load of the DP workers. | `auto` | `auto`, `round_robin`, `follow_bootstrap_room`, `shortest_queue`, `minimum_tokens` |
| `--load-watch-interval` | The interval of load watching in seconds. | `0.1` | Type: float | | `--load-watch-interval` | The interval of load watching in seconds. | `0.1` | Type: float |
| `--prefill-round-robin-balance` | Prefill is round robin balanced. This is used to promise decode server can get the correct dp rank. | `False` | bool flag (set to enable) |
## Multi-node distributed serving ## Multi-node distributed serving
| Argument | Description | Defaults | Options | | Argument | Description | Defaults | Options |
@@ -461,6 +460,7 @@ Please consult the documentation below and [server_args.py](https://github.com/s
| --- | --- | --- | --- | | --- | --- | --- | --- |
| `--enable-ep-moe` | NOTE: --enable-ep-moe is deprecated. Please set `--ep-size` to the same value as `--tp-size` instead. | `None` | N/A | | `--enable-ep-moe` | NOTE: --enable-ep-moe is deprecated. Please set `--ep-size` to the same value as `--tp-size` instead. | `None` | N/A |
| `--enable-deepep-moe` | NOTE: --enable-deepep-moe is deprecated. Please set `--moe-a2a-backend` to 'deepep' instead. | `None` | N/A | | `--enable-deepep-moe` | NOTE: --enable-deepep-moe is deprecated. Please set `--moe-a2a-backend` to 'deepep' instead. | `None` | N/A |
| `--prefill-round-robin-balance` | Note: Note: --prefill-round-robin-balance is deprecated now. | `None` | N/A |
| `--enable-flashinfer-cutlass-moe` | NOTE: --enable-flashinfer-cutlass-moe is deprecated. Please set `--moe-runner-backend` to 'flashinfer_cutlass' instead. | `None` | N/A | | `--enable-flashinfer-cutlass-moe` | NOTE: --enable-flashinfer-cutlass-moe is deprecated. Please set `--moe-runner-backend` to 'flashinfer_cutlass' instead. | `None` | N/A |
| `--enable-flashinfer-cutedsl-moe` | NOTE: --enable-flashinfer-cutedsl-moe is deprecated. Please set `--moe-runner-backend` to 'flashinfer_cutedsl' instead. | `None` | N/A | | `--enable-flashinfer-cutedsl-moe` | NOTE: --enable-flashinfer-cutedsl-moe is deprecated. Please set `--moe-runner-backend` to 'flashinfer_cutedsl' instead. | `None` | N/A |
| `--enable-flashinfer-trtllm-moe` | NOTE: --enable-flashinfer-trtllm-moe is deprecated. Please set `--moe-runner-backend` to 'flashinfer_trtllm' instead. | `None` | N/A | | `--enable-flashinfer-trtllm-moe` | NOTE: --enable-flashinfer-trtllm-moe is deprecated. Please set `--moe-runner-backend` to 'flashinfer_trtllm' instead. | `None` | N/A |
@@ -157,7 +157,6 @@ python -m sglang.launch_server \
--speculative-num-steps 3 \ --speculative-num-steps 3 \
--speculative-eagle-topk 1 \ --speculative-eagle-topk 1 \
--speculative-num-draft-tokens 4 \ --speculative-num-draft-tokens 4 \
--prefill-round-robin-balance \
--disable-shared-experts-fusion \ --disable-shared-experts-fusion \
--dtype bfloat16 \ --dtype bfloat16 \
--tokenizer-worker-num 4 --tokenizer-worker-num 4
@@ -293,7 +292,6 @@ do
--speculative-eagle-topk 1 \ --speculative-eagle-topk 1 \
--speculative-num-draft-tokens 3 \ --speculative-num-draft-tokens 3 \
--tokenizer-worker-num 4 \ --tokenizer-worker-num 4 \
--prefill-round-robin-balance \
--disable-shared-experts-fusion \ --disable-shared-experts-fusion \
--dtype bfloat16 --dtype bfloat16
done done
@@ -132,7 +132,6 @@ If you want to know the meaning and usage of each parameter, click [Service Argu
|----------------------------------------|---------------|-------------------------------------------------------------|:----------------------------------------:|:----------------------------------------:| |----------------------------------------|---------------|-------------------------------------------------------------|:----------------------------------------:|:----------------------------------------:|
| `--data-parallel-size`<br/>`--dp-size` | `1` | Type: int | **<span style="color: green;">√</span>** | **<span style="color: green;">√</span>** | | `--data-parallel-size`<br/>`--dp-size` | `1` | Type: int | **<span style="color: green;">√</span>** | **<span style="color: green;">√</span>** |
| `--load-balance-method` | `round_robin` | `round_robin`,<br/> `shortest_queue`,<br/> `minimum_tokens` | **<span style="color: green;">√</span>** | **<span style="color: green;">√</span>** | | `--load-balance-method` | `round_robin` | `round_robin`,<br/> `shortest_queue`,<br/> `minimum_tokens` | **<span style="color: green;">√</span>** | **<span style="color: green;">√</span>** |
| `--prefill-round-robin-balance` | `False` | bool flag<br/> (set to enable) | **<span style="color: green;">√</span>** | **<span style="color: green;">√</span>** |
## Multi-node distributed serving ## Multi-node distributed serving
@@ -260,7 +260,6 @@ spec:
- mlx5_0,mlx5_1,mlx5_2,mlx5_3,mlx5_4,mlx5_5,mlx5_6,mlx5_7 - mlx5_0,mlx5_1,mlx5_2,mlx5_3,mlx5_4,mlx5_5,mlx5_6,mlx5_7
- --chunked-prefill-size - --chunked-prefill-size
- "131072" - "131072"
- --prefill-round-robin-balance
- --eplb-rebalance-layers-per-chunk - --eplb-rebalance-layers-per-chunk
- "29" - "29"
- --page-size - --page-size
@@ -332,7 +331,6 @@ spec:
- /log - /log
- --chunked-prefill-size - --chunked-prefill-size
- "262144" - "262144"
- --prefill-round-robin-balance
- --eplb-rebalance-layers-per-chunk - --eplb-rebalance-layers-per-chunk
- "29" - "29"
- --page-size - --page-size
+9 -17
View File
@@ -377,8 +377,6 @@ class ServerArgs:
# Data parallelism # Data parallelism
dp_size: int = 1 dp_size: int = 1
load_balance_method: str = "auto" load_balance_method: str = "auto"
# FIXME: remove this after dp rank scheduling is fully supported with PD-Disaggregation
prefill_round_robin_balance: bool = False
# Multi-node distributed serving # Multi-node distributed serving
dist_init_addr: Optional[str] = None dist_init_addr: Optional[str] = None
@@ -2221,13 +2219,6 @@ class ServerArgs:
self.disable_radix_cache = True self.disable_radix_cache = True
logger.warning("KV cache is forced as chunk cache for decode server") logger.warning("KV cache is forced as chunk cache for decode server")
if self.dp_size > 1 and not is_in_ci():
assert self.prefill_round_robin_balance, (
"Prefill round robin balance is required when dp size > 1. "
"Please make sure that the prefill instance is launched with `--load-balance-method auto` "
"or `--load-balance-method follow_bootstrap_room` "
"and `--prefill-round-robin-balance` is set for decode server."
)
elif self.disaggregation_mode == "prefill": elif self.disaggregation_mode == "prefill":
if self.disaggregation_decode_tp is None: if self.disaggregation_decode_tp is None:
self.disaggregation_decode_tp = self.tp_size self.disaggregation_decode_tp = self.tp_size
@@ -3224,9 +3215,8 @@ class ServerArgs:
) )
parser.add_argument( parser.add_argument(
"--prefill-round-robin-balance", "--prefill-round-robin-balance",
default=ServerArgs.prefill_round_robin_balance, action=DeprecatedAction,
action="store_true", help="Note: --prefill-round-robin-balance is deprecated now.",
help="Prefill is round robin balanced. This is used to promise decode server can get the correct dp rank.",
) )
# Multi-node distributed serving # Multi-node distributed serving
@@ -5173,6 +5163,10 @@ class LoRAPathAction(argparse.Action):
setattr(namespace, self.dest, lora_paths) setattr(namespace, self.dest, lora_paths)
def print_deprecated_warning(message: str):
logger.warning(f"\033[1;33m{message}\033[0m")
class DeprecatedAction(argparse.Action): class DeprecatedAction(argparse.Action):
def __init__(self, option_strings, dest, nargs=0, **kwargs): def __init__(self, option_strings, dest, nargs=0, **kwargs):
super(DeprecatedAction, self).__init__( super(DeprecatedAction, self).__init__(
@@ -5180,11 +5174,9 @@ class DeprecatedAction(argparse.Action):
) )
def __call__(self, parser, namespace, values, option_string=None): def __call__(self, parser, namespace, values, option_string=None):
raise ValueError(self.help) print_deprecated_warning(
f"The command line argument '{option_string}' is deprecated and will be removed in future versions."
)
def print_deprecated_warning(message: str):
logger.warning(f"\033[33m{message}\033[0m")
def auto_choose_speculative_params(self: ServerArgs): def auto_choose_speculative_params(self: ServerArgs):
@@ -69,7 +69,6 @@ class TestDisaggregationDPAttention(PDDisaggregationServerBase):
"--enable-dp-attention", "--enable-dp-attention",
"--base-gpu-id", "--base-gpu-id",
str(cls.PREFILL_DP_SIZE), str(cls.PREFILL_DP_SIZE),
"--prefill-round-robin-balance",
] ]
decode_args += cls.transfer_backend + cls.rdma_devices decode_args += cls.transfer_backend + cls.rdma_devices
cls.process_decode = popen_launch_pd_server( cls.process_decode = popen_launch_pd_server(