An NVIDIA SMI'esk GPU Monitoring tool for your terminal.
art by stable-diffusion + Maz
nvtop
is a command-line utility that provides a replacement for some of the output from nvidia-smi
(System Management Interface).
It offers real-time monitoring and visualization of GPU information: Core Clock, Temps, Fanspeed and Memory Usage.
- Control the rate at which you're polling the GPU(s) for info:
# Monitor the GPU and system with a 1-second update interval
nvtop --delay 1000
- Go with the default 1s update speed :
# 1-second just so happens to be the default so, if you're happy with that you can just run:
nvtop
- If you're having trouble, send us a log!
# The app can log debug info
nvtop --log <PATH TO CREATE A LOGFILE @>
Before installing nvtop
, ensure that you have Rust and Cargo (the Rust package manager) installed on your system. You can download and install Rust from the official website: Rust Downloads.
You will also need to at least confirm that nvidia-smi
(The official NVIDIA tool that this one seeks to mimic) works.
Why? Because, not all of the functionality from nvmlt-sys
the library this app relies on does not guarantee all reporting functionality across ALL NVIDIA gpus.
You can install nvtop
directly from Cargo. Follow these steps:
-
Build and install
nvtop
from GitHub:cargo install nvtop # or for the latest you can use a git url, cargo install --git https://github.com/alphastrata/nvtop
To build nvtop
from the source code, you can follow these steps:
-
Download the source code or clone the repository to your local machine:
git clone https://github.com/alphastrata/nvtop
-
Change to the
nvtop
directory:cd nvtop
-
Build the project using Cargo:
cargo build --release # the binary will be available at ./target/release/nvtop
-
After building, you can find the
nvtop
executable in thetarget/release/
directory.
To make nvtop
easily accessible from the command line, you can copy the executable to a directory in your system's PATH
. For example, you can copy it to /usr/local/bin/
:
sudo install -Dm755 target/release/nvtop /usr/local/bin/nvtop
Now, you can use nvtop
from anywhere in your terminal.
because _this:
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.113.01 Driver Version: 535.113.01 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA TITAN RTX Off | 00000000:0A:00.0 On | N/A |
| 41% 44C P0 67W / 280W | 1367MiB / 24576MiB | 2% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 1008 G /usr/lib/Xorg 439MiB |
+---------------------------------------------------------------------------------------+
is fun!
-
If something ain't working please feel free to open an issue, before doing so however, the app has the ability to do some verbose logging (to disk):
nvtop --log
-
This, by default will make an
nvtop.log
wherever your binary is, include that with your bug report (there's Issue templates).
- All are welcome, I'm not really too fussy about coding standards etc (when I'm not at work :p)
- if you touch the readme, please format it with
mdformat
(pip install mdformat
). - if you touch python scrpits, please format them with
black
(pip install black
). - always run these
cargo test
,cargo check
,cargo clippy
-- please don't make PRs until any issues those tools flag are resolved. - if this is your first time contributing to open source, wow! thank you.