Repolode
XuehaiPan

XuehaiPan/nvitop

An interactive terminal monitor for NVIDIA GPUs that shows device and per-process status, with a CLI device selector and Python APIs.

Open-source alternative to:nvidia-smi

Stars
7,217
Forks
251
Open issues
19
Last commit
3 days ago

What is it?

nvitop is an interactive process viewer for NVIDIA GPUs. It shows per-device utilization, memory and temperature alongside the GPU processes running on each card, with the host-side details such as user, CPU and host memory. Its monitor mode refreshes continuously and supports sorting, filtering, a tree view of parent processes, environment variable inspection, and sending signals to processes from the keyboard or mouse.

Beyond the monitor, the package includes nvisel, a command-line tool that selects CUDA_VISIBLE_DEVICES based on free memory, utilization and device count, which is useful before launching deep learning jobs. It also provides a Python API for querying devices and processes, and a Prometheus exporter with a Grafana dashboard. It is written in pure Python on top of NVML bindings and runs on Linux and Windows.

Key features

  • 01Interactive monitor with bar charts, history graphs, sorting and process filtering.
  • 02Tree view showing GPU processes alongside their parent processes.
  • 03Sends SIGINT, SIGTERM or SIGKILL to processes from the interface.
  • 04Read-only mode disables process-changing shortcuts.
  • 05nvisel selects CUDA devices by free memory, utilization and count.
  • 06Python APIs for device and process status, plus a Prometheus exporter with a Grafana dashboard.

Use cases

  • Checking which users and processes occupy shared GPUs on a lab or cluster server over SSH.
  • Picking free GPUs for a training job via CUDA_VISIBLE_DEVICES before launching it.
  • Building a custom GPU monitoring script or dashboard with the Python API.
  • Feeding GPU metrics into Prometheus and Grafana for long-term tracking.

Quick start

  1. 1

    Install with uvx (no permanent install needed)

    uvx nvitop
  2. 2

    Or install from PyPI with pip

    pip3 install --upgrade nvitop
  3. 3

    Or run with pipx

    pipx run nvitop

Things to know

  • Requires an NVIDIA GPU with the NVML library (driver) installed.
  • Monitor mode needs a terminal that supports curses; Windows may lack mouse support in some terminals.

Topics

FAQ

What is nvitop?
An interactive terminal monitor for NVIDIA GPUs that shows device and per-process status, with a CLI device selector and Python APIs. nvitop is an interactive process viewer for NVIDIA GPUs. It shows per-device utilization, memory and temperature alongside the GPU processes running on each card, with the host-side details such as user, CPU and host memory. Its monitor mode refreshes continuously and supports sorting, filtering, a tree view of parent processes, environment variable inspection, and sending signals to processes from the keyboard or mouse.
Is nvitop free to use? What license does it have?
nvitop is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is nvitop still maintained?
Actively maintained. The last commit to nvitop was on Oct 17, 2026.
What can I use nvitop for?
Checking which users and processes occupy shared GPUs on a lab or cluster server over SSH. Picking free GPUs for a training job via CUDA_VISIBLE_DEVICES before launching it. Building a custom GPU monitoring script or dashboard with the Python API. Feeding GPU metrics into Prometheus and Grafana for long-term tracking.
How do I install nvitop?
Install with uvx (no permanent install needed): uvx nvitop Or install from PyPI with pip: pip3 install --upgrade nvitop Or run with pipx: pipx run nvitop
Where can I get nvitop?
The source code and installation instructions are on GitHub: https://github.com/XuehaiPan/nvitop

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects