MCPcopy Create free account
hub / github.com/ModelTC/LightX2V / __init__

Method __init__

lightx2v/disagg/services/encoder.py:34–90  ·  view source on GitHub ↗
(self, config: dict)

Source from the content-addressed store, hash-verified

32
33class EncoderService(BaseService):
34 def __init__(self, config: dict):
35 super().__init__()
36 self.config = config
37 self.encoder_engine_rank = int(self.config.get("encoder_engine_rank", "0"))
38 self.transformer_engine_rank = int(self.config.get("transformer_engine_rank", "1"))
39 self.decoder_engine_rank = int(self.config.get("decoder_engine_rank", "2"))
40 self._request_rdma_client: Optional[RDMAClient] = None
41 self._request_rdma_buffer: Optional[RDMABuffer] = None
42 self._centralized_request_mgr = ReqManager()
43 self._centralized_request_port = REQUEST_POLLING_PORT + self.encoder_engine_rank
44 self._phase1_rdma_client: Optional[RDMAClient] = None
45 self._phase1_rdma_buffer: Optional[RDMABuffer] = None
46 data_bootstrap_addr = str(self.config.get("data_bootstrap_addr", "127.0.0.1"))
47 monitor_bind_host = str(self.config.get("local_hostname", data_bootstrap_addr))
48 shared_slots = int(self.config.get("rdma_buffer_slots", "128"))
49 shared_slot_size = int(self.config.get("rdma_buffer_slot_size", "4096"))
50 self._request_server_ip = str(self.config.get("rdma_request_host", data_bootstrap_addr))
51 self._request_handshake_port = int(self.config.get("rdma_request_handshake_port", "5566"))
52 self._request_slots = shared_slots
53 self._request_slot_size = shared_slot_size
54 self._phase1_server_ip = str(self.config.get("rdma_phase1_host", data_bootstrap_addr))
55 self._phase1_handshake_port = int(self.config.get("rdma_phase1_handshake_port", "5567"))
56 self._phase1_slots = shared_slots
57 self._phase1_slot_size = shared_slot_size
58 self._last_request_connect_retry_ts = 0.0
59 self._last_phase1_connect_retry_ts = 0.0
60 self._centralized_request_mode = str(os.getenv("IS_CENTRALIZED", "0")).strip().lower() in {"1", "true", "yes", "on"}
61 self.text_encoder = None
62 self.image_encoder = None
63 self.vae_encoder = None
64 self.data_mgr = DataManager(
65 DisaggregationPhase.PHASE1,
66 DisaggregationMode.ENCODE,
67 )
68 self.data_sender: Dict[int, DataSender] = {}
69 self._rdma_buffers: Dict[int, List[torch.Tensor]] = {}
70 self.reporter = Reporter(
71 service_type="encoder",
72 gpu_id=self.encoder_engine_rank,
73 bind_address=f"tcp://{monitor_bind_host}:{MONITOR_POLLING_PORT + self.encoder_engine_rank}",
74 )
75 self._queue_metrics_lock = threading.Lock()
76 self._queue_metrics: dict[str, Any] = {
77 "queue_sizes": {},
78 "queue_total_pending": 0,
79 "all_queues_empty": True,
80 }
81 self.reporter.set_extra_metrics_provider(self._get_queue_metrics)
82 self._reporter_thread: Optional[threading.Thread] = threading.Thread(
83 target=self.reporter.serve_forever,
84 name="encoder-reporter",
85 daemon=True,
86 )
87 self._reporter_thread.start()
88 self._data_mgr_sidecar = DataMgrSidecar()
89 self.sync_comm = str(os.getenv("SYNC_COMM", "")).strip().lower() not in ("", "0", "false", "no", "off")
90 self.load_models()
91

Callers

nothing calls this directly

Calls 8

load_modelsMethod · 0.95
ReqManagerClass · 0.90
DataManagerClass · 0.90
ReporterClass · 0.90
DataMgrSidecarClass · 0.90
getMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected