vllm-project/vllm · error · ValueError

The Proton profiler currently supports NVIDIA CUDA only

Error message

The Proton profiler currently supports NVIDIA CUDA only

What it means

The Proton profiler integration in vLLM is implemented only for NVIDIA CUDA platforms. When `profiler_config.profiler == 'proton'` and `current_platform.is_cuda()` is False (ROCm, XPU, CPU, etc.), config validation raises immediately.

Source

Thrown at vllm/config/vllm.py:1293

            and current_platform.get_device_capability() == (7, 5)
        ):
            logger.warning_once(
                "Turing devices tensor cores do not support float32 matmul. "
                "To workaround this limitation, vLLM will set 'ieee' input "
                "precision for chunked prefill triton kernels."
            )

        if self.model_config is not None and self.model_config.enforce_eager:
            logger.warning_once(
                "Enforce eager set, disabling torch.compile and CUDAGraphs. "
                "This is equivalent to setting -cc.mode=none -cc.cudagraph_mode=none"
            )
            self.compilation_config.mode = CompilationMode.NONE
            self.compilation_config.cudagraph_mode = CUDAGraphMode.NONE

        if self.profiler_config.profiler == "proton":
            if not current_platform.is_cuda():
                raise ValueError(
                    "The Proton profiler currently supports NVIDIA CUDA only"
                )
            if self.compilation_config.cudagraph_mode != CUDAGraphMode.NONE:
                raise ValueError(
                    "The Proton profiler requires CUDA graphs to be disabled. "
                    "Use --enforce-eager or set "
                    "--compilation-config.cudagraph_mode=none."
                )

        if os.environ.get("TORCH_COMPILE_DISABLE") == "1":
            logger.warning_once(
                "TORCH_COMPILE_DISABLE is set, disabling torch.compile. "
                "This is equivalent to setting -cc.mode=none"
            )
            self.compilation_config.mode = CompilationMode.NONE

        # For model classes don't carry @support_torch_compile —
        # the breakable cudagraph is the supported PIECEWISE path. Auto-enable

View on GitHub (pinned to c794754062)

Solutions

  1. Remove `--profiler proton` (or set profiler to None) on non-CUDA platforms.
  2. Or run the workload on an NVIDIA CUDA machine if Proton profiling is required.
  3. Use a platform-supported profiler (e.g. ROCm's tools) on non-CUDA hardware.

Example fix

# before
vllm serve model --profiler proton   # on ROCm/XPU/CPU

# after
vllm serve model                     # profiler omitted
Defensive patterns

Strategy: validation

Validate before calling

from vllm.platforms import current_platform
profiler = "proton" if (want_proton and current_platform.is_cuda()) else None

Try / catch

try:
    LLM(profiler_config=...)
except ValueError as e:
    if "Proton profiler currently supports" in str(e):
        profiler_config.profiler = None
    else:
        raise

Prevention

When it happens

Trigger: Setting `--profiler proton` (or profiler config with profiler='proton') on any non-CUDA platform.

Common situations: Running the same profiling-enabled launch script on an AMD/Intel machine or CPU-only container; enabling Proton for kernel profiling without checking hardware support.

Related errors


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