diff --git a/vllm/distributed/eplb/eplb_communicator.py b/vllm/distributed/eplb/eplb_communicator.py index ffd0406f76f5..95a5ae5ff45d 100644 --- a/vllm/distributed/eplb/eplb_communicator.py +++ b/vllm/distributed/eplb/eplb_communicator.py @@ -23,10 +23,6 @@ from vllm.distributed.device_communicators.pynccl_wrapper import ( ncclDataTypeEnum, ) -from vllm.distributed.nixl_utils import ( - NixlWrapper, - nixl_agent_config, -) from vllm.distributed.parallel_state import ( GroupCoordinator, get_pp_group, @@ -41,6 +37,8 @@ def has_nixl() -> bool: """Whether the optional NIXL / RIXL package is available.""" + from vllm.distributed.nixl_utils import NixlWrapper + return NixlWrapper is not None @@ -235,6 +233,8 @@ def __init__( expert_weights: Sequence[torch.Tensor], cuda_stream: torch.cuda.Stream | None = None, ) -> None: + from vllm.distributed.nixl_utils import NixlWrapper, nixl_agent_config + assert expert_weights, "NixlEplbCommunicator requires non-empty expert_weights." if NixlWrapper is None: raise RuntimeError("NIXL/ RIXL is unavailable.")