GPUtil
GPUtil is a Python module for getting the GPU status from NVIDA GPUs using nvidia-smi.
Decision gist · record as of 2026-08-14
Yes, if you have NVIDIA hardware and need lightweight GPU availability detection. The package is stable, has no external dependencies, and works well for its narrow purpose. However, be cautious: it has not been updated since 2018, so compatibility with very recent NVIDIA drivers or Python versions is unverified. For production systems or modern deep learning frameworks, verify first that it works with your specific CUDA and driver versions.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires NVIDIA GPU with nvidia-smi installed and accessible in PATH; will fail on non-NVIDIA systems or without proper NVIDIA drivers.
- No runtime dependencies beyond Python standard library, but requires an NVIDIA GPU with nvidia-smi installed on the system.
- Package has been inactive since 2018 (latest release 2018-12-18) despite recent repository activity, which may indicate maintenance gaps for newer CUDA/driver versions.
License · maintenance · safety
MIT (permissive) — MIT license is permissive; you can use, modify, and distribute GPUtil with minimal restrictions, provided you retain the license notice.
last release 2018-12-18 (2796 days) · last repo commit 2026-07-18 · 1,214 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 742,526 downloads/mo, #5,180 on PyPI
Alternatives
Verify before relying
pip install gputil
import GPUtil
deviceIDs = GPUtil.getAvailable(order='first', limit=1, maxLoad=0.5, maxMemory=0.5)
print(deviceIDs)- Compatibility with modern CUDA versions and recent NVIDIA driver releases (last package release was 2018).
- Whether the package works reliably on current Python versions beyond 3.5 (tested version noted in description).
- Support status for multi-GPU selection patterns in contemporary deep learning frameworks.
What it is and what it does
GPUtil is a thin Python wrapper around nvidia-smi that detects available NVIDIA GPUs and ranks them by current load and memory consumption. It was designed to help deep learning frameworks automatically select idle GPUs, but works for any task needing GPU availability data. The module has no external dependencies beyond Python's standard library, making it lightweight to install—but it only works on systems with NVIDIA hardware and drivers installed.
The package provides two main functions: getAvailable() returns a filtered, ordered list of GPU device IDs based on load and memory thresholds, and getFirstAvailable() blocks until a GPU meeting those criteria becomes available, with configurable retry logic. It also includes utility functions to display current GPU status. Since its last release in 2018, the package has not been updated despite ongoing repository activity, which may affect compatibility with newer NVIDIA driver versions or Python releases.
Use it for
- Automatically select an idle GPU before launching a deep learning training job to avoid resource conflicts.
- Monitor GPU utilization in a separate thread and log or alert when specific GPUs exceed load or memory thresholds.
- Implement a queue system that waits for a GPU to become available before starting a compute task, with configurable retry intervals.
- Rank multiple GPUs by current memory usage to assign workloads to the least-loaded device.
- Exclude specific GPUs from selection (by ID or UUID) to reserve them for other processes or tasks.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you have NVIDIA hardware and need lightweight GPU availability detection.
The package is stable, has no external dependencies, and works well for its narrow purpose. However, be cautious: it has not been updated since 2018, so compatibility with very recent NVIDIA drivers or Python versions is unverified. For production systems or modern deep learning frameworks, verify first that it works with your specific CUDA and driver versions.
Install
gputil on PyPI
Before you install
No runtime dependencies beyond Python standard library, but requires an NVIDIA GPU with nvidia-smi installed on the system. Package has been inactive since 2018 (latest release 2018-12-18) despite recent repository activity, which may indicate maintenance gaps for newer CUDA/driver versions.
Requires NVIDIA GPU with nvidia-smi installed and accessible in PATH; will fail on non-NVIDIA systems or without proper NVIDIA drivers.
License in practice
MIT license is permissive; you can use, modify, and distribute GPUtil with minimal restrictions, provided you retain the license notice.
Quickstart
pip install gputil
import GPUtil
deviceIDs = GPUtil.getAvailable(order='first', limit=1, maxLoad=0.5, maxMemory=0.5)
print(deviceIDs)
Verify before relying
- Compatibility with modern CUDA versions and recent NVIDIA driver releases (last package release was 2018).
- Whether the package works reliably on current Python versions beyond 3.5 (tested version noted in description).
- Support status for multi-GPU selection patterns in contemporary deep learning frameworks.
Package facts
| License | MIT permissive |
| Python support | Not specified |
| Install friction | High. Source build required |
| Runtime dependencies | None |
| Maintenance | Actively maintained 2,796 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 742,526 / month, #5,180 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: GPUtil-1.4.0.tar.gz
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “gpu availability selection”
- GPUtilGPUtil queries NVIDIA GPU status and availability by wrapping…
- nvgpuQueries and monitors NVIDIA GPUs on a machine, providing a CLI and…
- pyversPyvers provides dynamic dispatch for Python functions based on…
Give your agent the search over MCP, or paste the wish link into any chat.
More Monitoring packages
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
Provides generated Python code for OpenTelemetry semantic conventions, enabling standardized attribute naming and constant definitions for instrumentation and telemetry collection.
Install it if you are using OpenTelemetry and want to follow semantic conventions correctly.
Provides the reference implementation of the OpenTelemetry API for collecting and exporting traces, metrics, and logs from Python applications.
Provides the abstract API and interfaces for OpenTelemetry instrumentation in Python, defining how to emit traces, metrics, and logs without tying code to a specific SDK implementation.
Exports OpenTelemetry observability data to an OpenTelemetry Collector using Protobuf-encoded messages over HTTP.
Install it if you are using OpenTelemetry in Python and need to send data to a Collector over HTTP.
Provides automatic instrumentation commands and programmatic APIs to inject distributed tracing into Python applications without code changes, detecting and instrumenting packages used by your program.
Install it if you need distributed tracing without code changes and have compatible instrumented packages in your environment.
See also gpustat · nvgpu · py3nvml · nvitop · egl-probe · pyrsmi · pynvml · nvidia-ml-py3 · nvidia-nvvm · cuvs-cu12