@@ -87,7 +87,7 @@ def signal_handler(sig, frame):
8787 return
8888
8989
90- def check_and_set_args (args ):
90+ def normal_or_p_d_start (args , only_prepare = False ):
9191 from lightllm .server .core .objs .start_args_type import StartArgs
9292
9393 args : StartArgs = args
@@ -219,20 +219,18 @@ def check_and_set_args(args):
219219 if args .batch_max_tokens is None :
220220 args .batch_max_tokens = args .max_req_total_len
221221 else :
222- assert args .batch_max_tokens >= args .max_req_total_len , (
223- f"batch_max_tokens must >= max_req_total_len"
224- f"but got { args .batch_max_tokens } , { args .max_req_total_len } "
225- )
222+ assert args .batch_max_tokens >= args .max_req_total_len , f"batch_max_tokens must >= max_req_total_len"
223+ f"but got { args .batch_max_tokens } , { args .max_req_total_len } "
226224 else :
227225 # chunked 模式下
228226 if args .batch_max_tokens is None :
229227 args .batch_max_tokens = 16384 // args .dp
230228 if args .chunked_prefill_size is None :
231229 args .chunked_prefill_size = args .batch_max_tokens // 2
232- assert args . batch_max_tokens >= args . chunked_prefill_size , (
233- "chunked prefill mode, batch_max_tokens must >= chunked_prefill_size, "
234- f"but got { args . batch_max_tokens } , { args . chunked_prefill_size } "
235- )
230+ assert (
231+ args . batch_max_tokens >= args . chunked_prefill_size
232+ ), "chunked prefill mode, batch_max_tokens must >= chunked_prefill_size, "
233+ f"but got { args . batch_max_tokens } , { args . chunked_prefill_size } "
236234
237235 # help to manage data stored on Ceph
238236 if "s3://" in args .model_dir :
@@ -252,9 +250,8 @@ def check_and_set_args(args):
252250 args .data_type = get_dtype (args .model_dir )
253251 assert args .data_type in ["fp16" , "float16" , "bf16" , "bfloat16" , "fp32" , "float32" ]
254252
255-
256- def normal_or_p_d_start (args ):
257- check_and_set_args (args )
253+ if only_prepare :
254+ return
258255
259256 already_uesd_ports = [args .port ]
260257 if args .nccl_port is not None :
@@ -291,17 +288,19 @@ def normal_or_p_d_start(args):
291288 can_use_ports = can_use_ports [10 :]
292289
293290 visual_model_tp_ports = []
291+ visual_nccl_ports = []
294292 for _ in range (args .visual_dp ):
295293 tp_ports_for_dp = can_use_ports [0 : args .visual_tp ]
296294 visual_model_tp_ports .append (tp_ports_for_dp )
297295 can_use_ports = can_use_ports [args .visual_tp :]
296+ if args .visual_nccl_ports is None :
297+ visual_nccl_ports .append (can_use_ports [0 ])
298+ can_use_ports = can_use_ports [1 :]
298299
299- if args .visual_nccl_ports is None :
300- visual_nccl_ports = can_use_ports [0 : args .visual_dp ]
301- can_use_ports = can_use_ports [args .visual_dp :]
302- else :
303- visual_nccl_ports = args .visual_nccl_ports [: args .visual_dp ]
300+ if args .visual_nccl_ports is not None :
301+ args .visual_nccl_ports = args .visual_nccl_ports [: args .visual_dp ]
304302
303+ # 将申请好的端口放入args参数中
305304 if args .nccl_port is None :
306305 args .nccl_port = nccl_port
307306 if args .pd_decode_rpyc_port is None :
@@ -328,6 +327,7 @@ def normal_or_p_d_start(args):
328327 args .router_max_wait_tokens = 0
329328
330329 send_and_receive_node_ip (args ) # 多机用于收发node ip
330+ # dp 必须 > 1
331331 if args .enable_dp_prompt_cache_fetch and args .dp <= 1 :
332332 args .enable_dp_prompt_cache_fetch = False
333333 logger .warning (
@@ -491,7 +491,7 @@ def pd_master_start(args):
491491
492492
493493def visual_start (args ):
494- check_and_set_args (args )
494+ normal_or_p_d_start (args , only_prepare = True )
495495
496496 already_uesd_ports = [args .remote_vit_port ]
497497 if args .nccl_port is not None :
@@ -515,23 +515,23 @@ def visual_start(args):
515515 can_use_ports = can_use_ports [5 :]
516516
517517 visual_model_tp_ports = []
518+ visual_nccl_ports = []
518519 for _ in range (args .visual_dp ):
519520 tp_ports_for_dp = can_use_ports [0 : args .visual_tp ]
520- can_use_ports = can_use_ports [args .visual_tp :]
521521 visual_model_tp_ports .append (tp_ports_for_dp )
522+ can_use_ports = can_use_ports [args .visual_tp :]
523+ if args .visual_nccl_ports is None :
524+ visual_nccl_ports .append (can_use_ports [0 ])
525+ can_use_ports = can_use_ports [1 :]
522526
523- if args .visual_nccl_ports is None :
524- args .visual_nccl_ports = can_use_ports [0 : args .visual_dp ]
525- can_use_ports = can_use_ports [args .visual_dp :]
526- else :
527+ if args .visual_nccl_ports is not None :
527528 args .visual_nccl_ports = args .visual_nccl_ports [: args .visual_dp ]
528529
529530 args .router_port = router_port
530531 args .visual_port = visual_port
531532 args .audio_port = audio_port
532533 args .cache_port = cache_port
533534 args .metric_port = metric_port
534- args .visual_model_rpc_ports = visual_model_tp_ports
535535 args .visual_node_id = uuid .uuid4 ().int
536536
537537 logger .info (f"all start args:{ args } " )
@@ -586,9 +586,9 @@ def config_server_start(args):
586586 "--log-level" ,
587587 "info" ,
588588 "--access-logfile" ,
589- "/dev/stdout " ,
589+ "- " ,
590590 "--error-logfile" ,
591- "/dev/stderr " ,
591+ "- " ,
592592 "lightllm.server.config_server.api_http:app" ,
593593 "--keep-alive" ,
594594 f"{ get_lightllm_gunicorn_keep_alive ()} " ,
0 commit comments