Reports whether the local machine has a CUDA-capable GPU and which
tidylearn backends (xgboost, keras, tensorflow) are positioned
to use it. Detection is intentionally cheap: it parses nvidia-smi
output, giving up with a warning if nvidia-smi has not answered
within 10 seconds, and reads which R packages are installed from the
library without loading them, so it neither starts Python nor fits a
model. A backend reported as gpu_likely_works = TRUE may still fall
back to CPU if it was not compiled or configured with CUDA support —
confirm with a small real fit before relying on it for production
workloads.
Value
An object of class tidylearn_gpu_check: a list with components
any_gpu (logical), cuda (driver info list with driver_present,
device_count, device_names, driver_version), backends (per-backend
status list each containing installed, gpu_likely_works, notes),
and messages (character vector). A print() method is provided.
Details
Apple MPS (Metal Performance Shaders) is intentionally not detected in this iteration; see the issue tracker for the MPS feature request.
Examples
# Safe to call anywhere: probes for nvidia-smi on the PATH and checks
# which backend packages are installed. Reports no GPU rather than
# failing when there isn't one.
gpu <- tl_check_gpu()
gpu$any_gpu
#> [1] FALSE
if (gpu$any_gpu && gpu$backends$xgboost$gpu_likely_works) {
# xgboost with GPU is worth trying for this workload
}
