main
py 46 lines 1.3 KB
Raw
1 # SPDX-License-Identifier: Apache-2.0
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3 from typing import TYPE_CHECKING
4
5 from vllm.distributed.ec_transfer.ec_connector.base import (
6 ECConnectorBase,
7 ECConnectorRole,
8 )
9 from vllm.distributed.ec_transfer.ec_connector.factory import ECConnectorFactory
10
11 if TYPE_CHECKING:
12 from vllm.config import VllmConfig
13
14 _EC_CONNECTOR_AGENT: ECConnectorBase | None = None
15
16
17 def get_ec_transfer() -> ECConnectorBase:
18 assert _EC_CONNECTOR_AGENT is not None, "disaggregated EC cache is not initialized"
19 return _EC_CONNECTOR_AGENT
20
21
22 def has_ec_transfer() -> bool:
23 return _EC_CONNECTOR_AGENT is not None
24
25
26 def ensure_ec_transfer_initialized(vllm_config: "VllmConfig") -> None:
27 """Initialize EC cache connector."""
28 global _EC_CONNECTOR_AGENT
29
30 if vllm_config.ec_transfer_config is None:
31 return
32
33 if (
34 vllm_config.ec_transfer_config.is_ec_transfer_instance
35 and _EC_CONNECTOR_AGENT is None
36 ):
37 _EC_CONNECTOR_AGENT = ECConnectorFactory.create_connector(
38 config=vllm_config, role=ECConnectorRole.WORKER
39 )
40
41
42 def ensure_ec_transfer_shutdown() -> None:
43 global _EC_CONNECTOR_AGENT
44 if _EC_CONNECTOR_AGENT is not None:
45 _EC_CONNECTOR_AGENT.shutdown()
46 _EC_CONNECTOR_AGENT = None