Installation

NVTOP can be installed through various methods, including distribution package managers, standalone binaries, building from source, or using Docker. Choose the method that best suits your environment.

From Package Managers

This is the recommended method for most users.

Ubuntu / Debian

For Ubuntu 20.04 (Focal) / Debian 10 (Buster) and newer:

sudo apt install nvtop

For an up-to-date version on Ubuntu, you can use the PPA:

sudo add-apt-repository ppa:quentiumyt/nvtop
sudo apt update
sudo apt install nvtop

Fedora / RHEL / CentOS

For Fedora 36 and newer:

sudo dnf install nvtop

For RHEL 8/9, CentOS Stream, Rocky Linux, and AlmaLinux, nvtop is available in the EPEL repository:

# Enable EPEL if not already enabled
sudo dnf install epel-release

# Install nvtop
sudo dnf install nvtop

Arch Linux

sudo pacman -S nvtop

Gentoo

sudo emerge -av nvtop

OpenSUSE

sudo zypper install nvtop

Packaged Binaries

AppImage

An AppImage is a standalone executable that runs on most Linux distributions.

  1. Download the latest nvtop-x86_64.AppImage from the GitHub Releases page.
  2. Make it executable and run it:
chmod u+x nvtop-x86_64.AppImage
./nvtop-x86_64.AppImage

Snap

snap install nvtop

# Grant permissions for full functionality
snap connect nvtop:process-control      # To kill processes from within nvtop
snap connect nvtop:hardware-observe      # To inspect GPU fan, PCIe, power, etc.
snap connect nvtop:system-observe        # For AMDGPU process list support
snap connect nvtop:kubernetes-support  # Workaround for per-process GPU usage

Conda-forge

If you use Conda or Mamba for environment management:

conda install --channel conda-forge nvtop

Building from Source

Building from source gives you the most control and is necessary for development or unsupported distributions.

1. Install Dependencies

You will need cmake, git, ncurses (including wide-character support), and a C/C++ compiler. Vendor-specific libraries are also required.

  • General: cmake, libncurses5-dev, libncursesw5-dev, git
  • AMD/Intel/Other DRM-based: libdrm-dev, libsystemd-dev or libudev-dev
  • NVIDIA: The proprietary NVIDIA driver, which includes the NVML library.
  • MetaX: The MetaX driver, which includes the MXSML library.

Example on Debian/Ubuntu:

sudo apt install cmake libncurses5-dev libncursesw5-dev git libdrm-dev libsystemd-dev

Example on Fedora/RHEL:

sudo dnf install cmake ncurses-devel git gcc-c++ libdrm-devel systemd-devel

2. Clone and Build

git clone https://github.com/Syllo/nvtop.git
cd nvtop
mkdir build && cd build

# Configure the build (see options below)
cmake ..

# Compile
make

# Install system-wide
sudo make install

Build Options

You can customize which hardware backends to include by passing options to cmake. By default, nvtop enables support for hardware it detects as relevant to your system.

To explicitly enable support for a vendor, use -D<VENDOR>_SUPPORT=ON:

# Example: Build with support for NVIDIA, AMD, and Intel
cmake .. -DNVIDIA_SUPPORT=ON -DAMDGPU_SUPPORT=ON -DINTEL_SUPPORT=ON

Available options include:

  • NVIDIA_SUPPORT
  • AMDGPU_SUPPORT
  • INTEL_SUPPORT
  • MSM_SUPPORT (Qualcomm Adreno)
  • APPLE_SUPPORT
  • PANFROST_SUPPORT (Mali)
  • PANTHOR_SUPPORT (Mali)
  • ASCEND_SUPPORT (Huawei)
  • V3D_SUPPORT (Raspberry Pi)
  • TPU_SUPPORT (Google TPU)
  • ROCKCHIP_SUPPORT
  • METAX_SUPPORT

Docker

For a containerized environment, you can use Docker. See the Deployment with Docker guide for detailed instructions.