(name: str, ports: list, num_total_ports: int)
| 617 | def post_init_all_ports(self): |
| 618 | |
| 619 | def post_init_ports(name: str, ports: list, num_total_ports: int): |
| 620 | ports = parse_ports(ports) |
| 621 | num_cur_dp_ports = num_total_ports |
| 622 | if envs.FD_ENABLE_MULTI_API_SERVER: |
| 623 | num_cur_dp_ports //= self.data_parallel_size |
| 624 | if ports is None: |
| 625 | ports = find_free_ports(num_ports=num_cur_dp_ports) |
| 626 | console_logger.info( |
| 627 | f"Parameter `{name}` is not specified, found available ports for possible use: {ports}" |
| 628 | ) |
| 629 | else: |
| 630 | num_input_ports = len(ports) |
| 631 | if num_input_ports != num_total_ports: |
| 632 | ports = find_free_ports(num_ports=num_cur_dp_ports) |
| 633 | console_logger.warn( |
| 634 | f"Parameter `{name}` expects {num_total_ports} ports, but got {num_input_ports}. Ignore them and assign new ones: {ports}" |
| 635 | ) |
| 636 | else: |
| 637 | console_logger.info(f"Using `{name}`: {ports}") |
| 638 | |
| 639 | if not self.skip_port_check: |
| 640 | cur_dp_ports = ports[ |
| 641 | num_cur_dp_ports |
| 642 | * self.local_data_parallel_id : num_cur_dp_ports |
| 643 | * (self.local_data_parallel_id + 1) |
| 644 | ] |
| 645 | for port in cur_dp_ports: |
| 646 | assert is_port_available("0.0.0.0", port), f"Parameter `{name}`:{port} is already in use." |
| 647 | |
| 648 | return ports |
| 649 | |
| 650 | num_nodes = len(self.ips) if self.ips else 1 |
| 651 | if self.data_parallel_size % num_nodes != 0: |
nothing calls this directly
no test coverage detected