{"record":{"id":"46c6a1d0e977f3a1","repo":"vllm-project/vllm","slug":"eplb-communicator-pynccl-supports-only-cuda-like","errorCode":null,"errorMessage":"EPLB communicator 'pynccl' supports only cuda-like devices (got {tensor_device_type}).","messagePattern":"EPLB communicator 'pynccl' supports only cuda-like devices \\(got (.+?)\\)\\.","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"vllm/distributed/eplb/eplb_communicator.py","lineNumber":695,"sourceCode":"            ``\"torch_nccl\"`` are used via the CPU process group.\n        expert_weights: Expert weight tensors for *all* MoE layers.\n            Shape ``(num_layers)(num_tensors_per_layer)``.\n            NixlEplbCommunicator registers all layers with NIXL for\n            zero-copy RDMA reads.\n        expert_buffer: Pre-allocated receive buffer tensors (one per\n            weight tensor in a single layer).\n    \"\"\"\n    first_layer = expert_weights[0] if expert_weights else []\n    tensor_device_type = first_layer[0].device.type if first_layer else \"cpu\"\n    torch_group = (\n        group_coordinator.cpu_group\n        if tensor_device_type == \"cpu\"\n        else group_coordinator.device_group\n    )\n\n    def _create_pynccl() -> EplbCommunicator:\n        if tensor_device_type == \"cpu\":\n            raise RuntimeError(\n                \"EPLB communicator 'pynccl' supports only cuda-like devices \"\n                f\"(got {tensor_device_type}).\"\n            )\n        unsupported_dtypes = sorted(\n            {\n                tensor.dtype\n                for tensor in first_layer\n                if not ncclDataTypeEnum.supports_torch_dtype(tensor.dtype)\n            },\n            key=str,\n        )\n        if unsupported_dtypes:\n            raise RuntimeError(\n                \"EPLB communicator 'pynccl' requested but expert weights contain \"\n                \"unsupported dtypes: \"\n                f\"({', '.join(str(dtype) for dtype in unsupported_dtypes)}).\"\n            )\n","sourceCodeStart":677,"sourceCodeEnd":713,"githubUrl":"https://github.com/vllm-project/vllm/blob/c794754062d49a8fdb63ab3c5215b488b865030c/vllm/distributed/eplb/eplb_communicator.py#L677-L713","documentation":"Error \"EPLB communicator 'pynccl' supports only cuda-like devices (got {tensor_device_type}).\" thrown in vllm-project/vllm.","triggerScenarios":"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.","commonSituations":"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.","solutions":["Use a cuda-like device with the 'pynccl' EPLB communicator.","Or choose a different EPLB communicator backend suitable for the device."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c794754062d49a8fdb63ab3c5215b488b865030c","analyzedAt":"2026-08-14T21:17:39.825Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}