2 tools (GUI and command line) for monitoring Nvidia GPUs on Linux

This article describes two tools for monitoring Nvidia graphics cards on Linux: one with a terminal user interface (TUI) so it can run in a console, and the other using a graphical user interface.
These utilities for monitoring Nvidia GPUs require the use of a proprietary Nvidia graphics driver.

nvtop-End-user interface for monitoring Nvidia GPUs

nvtop (H) top task monitor for Nvidia GPU. It uses ncurses to draw its text-based user interface in the terminal, and uses the NVIDIA Management Library (NVML) to obtain GPU information.

Because it uses NVML, this command line tool does not support older Nvidia GPUs. GeForce 600, GeForce 800M and newer versions should work, but older GPUs are not supported.
nvtop function:

  • Supports multiple GPUs
  • Shows a list of processes running on the Nvidia GPU, their name, pid, their utilization of the GPU, memory and CPU, etc. These processes can be sorted and terminated from nvtop
  • Graph showing GPU and memory utilization
  • Display current (active) GPU and memory utilization as well as frequency, fan speed, power consumption and temperature

nvtop was recently added to Ubuntu 19.04+ as well as Debian buster and sid (contrib) repositories. However, if you want to use it with a driver that does not exist in the repository (for example, if you use a newer driver), it will not be installed because it depends on the specific driver version in the repository. In this case, installing it from source is easy.
nvtop readme has Instruction A source code build tool for Debian / Ubuntu, Fedora / RedHat / CentOS, openSUSE and Arch Linux (including required dependencies).

Nvidia System Monitor GUI for Linux

Nvidia Linux System Monitor
Nvidia System Monitor Is a new graphics tool for viewing a list of processes running on the GPU and monitoring the GPU and memory utilization (using graphics) of the Nvidia graphics card. It uses the nvidia-smi tool to obtain GPU information.
This Nvidia task manager for Linux has only 12 days of use, so it still needs some work. Developers say other features, such as the ability to monitor the temperature of Nvidia GPUs, the ability to make the program available in other languages, and more, will be added in the next release.
Nvidia System Monitor Features:

  • Processes: displays a list of processes running on the GPU, including the process name, pid, used memory, etc.
  • GPU usage: A graph showing GPU usage, as well as average, minimum, and maximum GPU usage
  • Memory utilization: A graph showing the memory utilization of Nvidia GPUs. It also shows the average, minimum and maximum memory utilization. You can also view the total, available and used memory of the GPU here.

By default, the Nvidia System Monitor is updated every 2 seconds (2000 milliseconds). If you want to change this setting, create a file called nvidia-system-monitor inside ~/.config Folder and add updateDelay The time (in milliseconds) followed by the file. E.g. using updateDelay 500 Make NVIDIA System Monitor update every 500 milliseconds (0.5 seconds).
Nvidia Linux System Monitor

To install NVIDIA System Monitor, you need wxgtk3, wxgtk2, and g ++. Git is also installed to get the latest code for the Git application as it contains important fixes and the latest version may not work on any version other than Arch Linux. In Debian, Ubuntu or Linux Mint, install these packages using the following command:

sudo apt install git g++ python-wxgtk3.0-dev libwxgtk3.0-gtk3-dev

To get Nvidia System Monitor from Git, build and install it, use:

git clone https://github.com/congard/nvidia-system-monitor
cd nvidia-system-monitor
sudo ./install.sh

Since you run the installation script via sudo, make sure to check the installation script before running it!
If you want to uninstall it, use sudo ./uninstall.sh inside nvidia-system-monitor table of Contents.