vllm-project/vllm · error · RuntimeError

EPLB communicator 'pynccl' supports only cuda-like devices (

Error message

EPLB communicator 'pynccl' supports only cuda-like devices (got {tensor_device_type}).

What it means

Error "EPLB communicator 'pynccl' supports only cuda-like devices (got {tensor_device_type})." thrown in vllm-project/vllm.

Source

Thrown at vllm/distributed/eplb/eplb_communicator.py:695

            ``"torch_nccl"`` are used via the CPU process group.
        expert_weights: Expert weight tensors for *all* MoE layers.
            Shape ``(num_layers)(num_tensors_per_layer)``.
            NixlEplbCommunicator registers all layers with NIXL for
            zero-copy RDMA reads.
        expert_buffer: Pre-allocated receive buffer tensors (one per
            weight tensor in a single layer).
    """
    first_layer = expert_weights[0] if expert_weights else []
    tensor_device_type = first_layer[0].device.type if first_layer else "cpu"
    torch_group = (
        group_coordinator.cpu_group
        if tensor_device_type == "cpu"
        else group_coordinator.device_group
    )

    def _create_pynccl() -> EplbCommunicator:
        if tensor_device_type == "cpu":
            raise RuntimeError(
                "EPLB communicator 'pynccl' supports only cuda-like devices "
                f"(got {tensor_device_type})."
            )
        unsupported_dtypes = sorted(
            {
                tensor.dtype
                for tensor in first_layer
                if not ncclDataTypeEnum.supports_torch_dtype(tensor.dtype)
            },
            key=str,
        )
        if unsupported_dtypes:
            raise RuntimeError(
                "EPLB communicator 'pynccl' requested but expert weights contain "
                "unsupported dtypes: "
                f"({', '.join(str(dtype) for dtype in unsupported_dtypes)})."
            )

View on GitHub (pinned to c794754062)

Solutions

  1. Use a cuda-like device with the 'pynccl' EPLB communicator.
  2. Or choose a different EPLB communicator backend suitable for the device.

When it happens

Trigger: Raised at vllm/distributed/eplb/eplb_communicator.py:695 when validation fails: EPLB communicator 'pynccl' supports only cuda-like devices. Typically triggered by an incompatible or incomplete vLLM configuration, an unsupported platform/backend combination, or a runtime resource/dependency that is missing.

Common situations: Commonly encountered at vllm/distributed/eplb/eplb_communicator.py:695 during vLLM startup/config validation or runtime setup when: (1) conflicting CLI flags or config fields are combined, (2) the current platform (CUDA/ROCm/CPU/XPU) or installed optional packages do not support the requested feature, or (3) a required value is absent or out of range. Resolve by correcting the configuration as described in the message, or by selecting a supported alternative.


AI-assisted analysis of vllm-project/vllm@c794754062 (2026-08-14). Data as JSON: /api/errors/46c6a1d0e977f3a1. Report an issue: GitHub.