{"record":{"id":"a28c414199a6d4bd","repo":"opendatalab/MinerU","slug":"cuda-is-not-available","errorCode":null,"errorMessage":"CUDA is not available.","messagePattern":"CUDA is not available\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"mineru/backend/vlm/utils.py","lineNumber":66,"sourceCode":"    elif version.parse(compute_capability) < version.parse(\"8.0\"):\n        if version.parse(vllm_version) >= version.parse(\"0.10.2\"):\n            logger.info(f\"compute_capability: {compute_capability} < 8.0, but vllm version: {vllm_version} >= 0.10.2, enable custom_logits_processors\")\n            return True\n        else:\n            logger.info(f\"compute_capability: {compute_capability} < 8.0 and vllm version: {vllm_version} < 0.10.2, disable custom_logits_processors\")\n            return False\n    else:\n        logger.info(f\"compute_capability: {compute_capability} >= 8.0 and vllm version: {vllm_version} >= 0.10.1, enable custom_logits_processors\")\n        return True\n\n\ndef set_lmdeploy_backend(device_type: str) -> str:\n    if device_type.lower() in [\"ascend\", \"maca\", \"camb\"]:\n        lmdeploy_backend = \"pytorch\"\n    elif device_type.lower() in [\"cuda\"]:\n        import torch\n        if not torch.cuda.is_available():\n            raise ValueError(\"CUDA is not available.\")\n        if is_windows_environment():\n            lmdeploy_backend = \"turbomind\"\n        elif is_linux_environment():\n            major, minor = torch.cuda.get_device_capability()\n            compute_capability = f\"{major}.{minor}\"\n            if version.parse(compute_capability) >= version.parse(\"8.0\"):\n                lmdeploy_backend = \"pytorch\"\n            else:\n                lmdeploy_backend = \"turbomind\"\n        else:\n            raise ValueError(\"Unsupported operating system.\")\n    else:\n        raise ValueError(f\"Unsupported lmdeploy device type: {device_type}\")\n    return lmdeploy_backend\n\n\ndef set_default_gpu_memory_utilization() -> float:\n    from vllm import __version__ as vllm_version","sourceCodeStart":48,"sourceCodeEnd":84,"githubUrl":"https://github.com/opendatalab/MinerU/blob/4fe4bde114a23ee5dd637eae99b767f4669bf58c/mineru/backend/vlm/utils.py#L48-L84","documentation":"Raised by set_lmdeploy_backend() in the VLM backend when device_type is 'cuda' but torch.cuda.is_available() is False. The function needs a working CUDA runtime to then choose turbomind vs pytorch backend by OS and compute capability, so a CUDA-less environment fails fast here.","triggerScenarios":"device_type='cuda' passed to (or defaulted for) lmdeploy engine setup on a machine with no NVIDIA GPU, nvidia drivers, or a CPU-only torch build; CUDA_VISIBLE_DEVICES set to an empty/invalid value.","commonSituations":"CPU-only torch wheel installed in a GPU container; driver/library mismatch so torch cannot initialize CUDA; remote device hidden by CUDA_VISIBLE_DEVICES=\"\".","solutions":["Check torch.cuda.is_available() and torch.version.cuda in your environment.","If GPU exists: install a CUDA-enabled torch build matching your driver, and verify nvidia-smi works.","If no GPU: use a different backend (e.g. transformers on CPU/MPS, mlx-engine on Apple Silicon, or an http-client backend pointed at a GPU server).","Unset or fix CUDA_VISIBLE_DEVICES."],"exampleFix":"# before\nbackend = set_lmdeploy_backend(\"cuda\")  # ValueError: CUDA is not available.\n\n# after\nimport torch\nassert torch.cuda.is_available(), \"need CUDA-enabled torch + driver\"\nbackend = set_lmdeploy_backend(\"cuda\")","handlingStrategy":"validation","validationCode":"import torch\n\ndef cuda_ready() -> bool:\n    return torch.cuda.is_available()\n\nif not cuda_ready():\n    choose_non_lmdeploy_backend()  # transformers / http-client","typeGuard":"def can_use_lmdeploy_cuda() -> bool:\n    import torch\n    return torch.cuda.is_available()","tryCatchPattern":"try:\n    backend = set_lmdeploy_backend(\"cuda\")\nexcept ValueError as e:\n    if \"CUDA is not available\" in str(e):\n        raise RuntimeError(\"install CUDA-enabled torch or pick another backend\") from e\n    raise","preventionTips":["Install torch with the right CUDA index URL (e.g. --index-url https://download.pytorch.org/whl/cu121).","Smoke-test torch.cuda.is_available() in CI before GPU jobs.","Check CUDA_VISIBLE_DEVICES is not empty in service environments."],"tags":["cuda","lmdeploy","vlm","environment","device"],"backgroundTag":null,"analyzedSha":"4fe4bde114a23ee5dd637eae99b767f4669bf58c","analyzedAt":"2026-08-14T21:29:18.456Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}