mirror of
https://github.com/jamiepine/voicebox.git
synced 2026-09-19 14:50:38 -07:00
feat(health): warn when GPU arch isn't supported by PyTorch build
Applies the compatibility-checker portion of #367. Adds a check_cuda_compatibility() helper that compares the current device's compute capability against torch.cuda._get_arch_list() and returns a human-readable warning if the PyTorch build doesn't support it. Wired into three places: • HealthResponse gains a gpu_compatibility_warning field so clients can surface the issue in the UI • Startup logs the warning as WARN level • _get_gpu_status() appends "[UNSUPPORTED - see logs]" to the GPU label shown in settings Skipped #367's other half — the switch from stable to nightly cu128 wheels across release.yml, build_binary.py, and justfile. That's redundant with #401's TORCH_CUDA_ARCH_LIST=...12.0+PTX approach and would introduce non-deterministic builds from shifting nightly releases. Co-Authored-By: nyzxor <[email protected]> Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
This commit is contained in:
co-authored by
nyzxor
Claude Opus 4.6
parent
0317626677
commit
73170d0e92
+16
-2
@@ -146,11 +146,18 @@ def _get_gpu_status() -> str:
|
||||
"""Return a human-readable string describing GPU availability."""
|
||||
backend_type = get_backend_type()
|
||||
if torch.cuda.is_available():
|
||||
from .backends.base import check_cuda_compatibility
|
||||
|
||||
device_name = torch.cuda.get_device_name(0)
|
||||
compatible, _warning = check_cuda_compatibility()
|
||||
is_rocm = hasattr(torch.version, "hip") and torch.version.hip is not None
|
||||
if is_rocm:
|
||||
return f"ROCm ({device_name})"
|
||||
return f"CUDA ({device_name})"
|
||||
label = f"ROCm ({device_name})"
|
||||
else:
|
||||
label = f"CUDA ({device_name})"
|
||||
if not compatible:
|
||||
label += " [UNSUPPORTED - see logs]"
|
||||
return label
|
||||
elif hasattr(torch.backends, "mps") and torch.backends.mps.is_available():
|
||||
return "MPS (Apple Silicon)"
|
||||
elif backend_type == "mlx":
|
||||
@@ -230,6 +237,13 @@ def _register_lifecycle(application: FastAPI) -> None:
|
||||
logger.info("Backend: %s", backend_type.upper())
|
||||
logger.info("GPU: %s", _get_gpu_status())
|
||||
|
||||
# Warn if GPU architecture is not supported by this PyTorch build
|
||||
from .backends.base import check_cuda_compatibility
|
||||
|
||||
_compatible, _cuda_warning = check_cuda_compatibility()
|
||||
if not _compatible:
|
||||
logger.warning("GPU COMPATIBILITY: %s", _cuda_warning)
|
||||
|
||||
from .services.cuda import check_and_update_cuda_binary
|
||||
|
||||
create_background_task(check_and_update_cuda_binary())
|
||||
|
||||
Reference in New Issue
Block a user