
Visualize GPU Performance with nvtop and radeontop – modern guides for NVIDIA and AMD users
Table of Contents
- What This Guide Is About (and Why You Should Care)
- The Dramatic Saga of the Overloaded GPU
- Why GPU Visualization Matters
- How Do nvtop and radeontop Work?
- Use Cases: Where Top Tools Shine
- Step-By-Step Setup Guide
- Mini Glossary: Real-Talk Definitions
- Examples and Cases (Comic Comparison Table!)
- Beginner Mistakes, Myths & Similar Tools
- Flowchart: “Use This If…” Decision Helper
- Interesting Facts & Unconventional Uses
- Automation, Scripting, and Bonus Scripts
- The Admin’s Tale (Short Story)
- Conclusion & Recommendations
What This Guide Is About (and Why You Should Care)
Ever felt like your server’s GPU is plotting behind your back? Maybe you’re running heavy ML jobs, spinning up containers, or hosting game servers — and suddenly, your users are complaining about lag. Or maybe, you just want to squeeze every last drop of performance out of your (expensive) hardware.
Here’s the deal: nvtop (for NVIDIA) and radeontop (for AMD) are modern, text-based, real-time GPU monitoring tools. Think “htop,” but for GPUs. If you’ve ever wondered who’s hogging your GPU — or why your system fans sound like a jet engine — these are your new best friends.
This guide digs into what they do, why they matter for anyone managing servers (bare-metal, VPS, or containers), and shows you how to set them up quickly, with practical advice and a geeky sense of humor.
The Dramatic Saga of the Overloaded GPU
Picture this: It’s 3 AM. You’re on pager duty. Suddenly, your Discord lights up — “Hey, the deep learning model is crawling! What’s wrong with the GPU?” Heart pounding, you ssh in, run nvidia-smi
, and see a wall of cryptic numbers. Not helpful.
You need something visual, something live, something that says, “Here’s what’s using your GPU, right now, and here’s how hard it’s working.” That’s where nvtop and radeontop come in.
Why GPU Visualization Matters
- Diagnose Bottlenecks Fast: Know instantly if it’s a code issue, a user hogging resources, or hardware limits.
- Resource Allocation: Perfect for multi-user servers, cloud, and dockerized workloads — see which container or process is eating up VRAM or compute.
- Cost Control: GPUs aren’t cheap. Idle GPUs are wasted money; overloaded GPUs mean dissatisfied users.
- Peace of Mind: No more guessing — just open a terminal, run the tool, and see what’s happening in real time.
How Do nvtop and radeontop Work?
Let’s break it down (no PhD required):
- nvtop: Talks to NVIDIA’s GPU driver via
libnvidia-ml
. It pulls stats per GPU and per process: memory use, utilization, temperature, power draw, and more. It displays this as gorgeous ASCII graphs and tables, updated every second. - radeontop: For AMD GPUs, it uses the DRM (Direct Rendering Manager) interface in Linux. It shows GPU utilization by block: graphics, memory, compute, etc. Also live, also text-based, and also surprisingly fun to watch.
Both tools are designed for the terminal — no GUI required (SSH-friendly!), super lightweight, and scriptable for automation.
How to Setup Things Fast and Easy?
- Both tools come pre-packaged on most major Linux distros.
- Minimal dependencies. No desktop environment needed.
- Works on bare metal, cloud VMs (with GPU pass-through), and inside containers (with the right drivers).
Use Cases: Where Top Tools Shine
- ML & AI workloads: Spot training bottlenecks, check VRAM use, kill runaway jobs.
- Game streaming servers: Monitor GPU usage per session or VM.
- Docker/k8s clusters: Check which container is using which GPU (nvtop shows per-process info — super handy!)
- Render farms: Visualize load balancing and spot underused cards.
- Crypto mining: Optimize for max hash rate per watt (but please, don’t fry your hardware…)
Step-By-Step Setup Guide
Let’s get practical. Here’s how to get up and running, fast:
1. Install the Tools
- For NVIDIA (nvtop):
-
- On Ubuntu/Debian:
sudo apt update && sudo apt install nvtop
-
- On Fedora:
sudo dnf install nvtop
-
- On Arch:
sudo pacman -S nvtop
- Or build from source: github.com/Syllo/nvtop
-
- For AMD (radeontop):
-
- On Ubuntu/Debian:
sudo apt update && sudo apt install radeontop
-
- On Fedora:
sudo dnf install radeontop
-
- On Arch:
sudo pacman -S radeontop
- Source code: github.com/clbr/radeontop
-
2. Check Your Drivers
- For NVIDIA:
nvidia-smi
should show your GPUs. If not, install the right driver (see your distro’s docs). - For AMD: Make sure you’re using the open-source
amdgpu
driver (most modern distros do this out of the box).
3. Launch the Tool
- NVIDIA:
nvtop
- AMD:
radeontop
- SSH-friendly! Works in tmux/screen, too.
4. Explore the Interface
- nvtop: See per-process usage, memory, temperature, power, and handy ASCII graphs. Use arrow keys to select GPUs, sort by process, or even kill processes right from the interface.
- radeontop: See percent usage by GPU block (graphics, memory, compute, etc.), temperature, and VRAM.
5. (Optional) Script It!
- Both tools output to the terminal, so you can grep, tail, or redirect output for logging and automation.
Mini Glossary: Real-Talk Definitions
- GPU: The chip that eats math for breakfast (graphics, AI, crypto… you name it).
- VRAM: The GPU’s private memory playground (faster than regular RAM).
- Utilization: How hard the GPU’s working (100% = “screaming”, 0% = “sleeping”).
- Driver: The translator between your OS and your GPU (“talks nerd to hardware”).
- Process: A running program. Several can share (or fight over) a GPU.
Examples and Cases (Comic Comparison Table!)
Behold — the GPU Monitoring Showdown!
Tool | Personality | Superpower | Kryptonite | When to Use |
---|---|---|---|---|
nvtop | The “Matrix Operator” (sees all, in green ASCII rain) | Per-process usage, live graphs, can kill rogue procs | Only for NVIDIA (no AMD love) | Any NVIDIA-powered server (AI, gaming, render, cloud, docker…) |
radeontop | The “AMD Whisperer” (talks to open-source cards only) | Block-level stats, super light, runs anywhere | No per-process stats, no NVIDIA support | AMD-based servers, especially with open-source stack |
nvidia-smi | The “Corporate Suit” (useful but uptight) | Basic stats, works everywhere NVIDIA does | No live graphs, no per-process kill, boring | Quick checks, scripting, but not interactive |
gpustat | The “Minimalist” (clean, simple, direct) | Shows what matters, easy to parse | No live graphs, limited info | Quick overviews in scripts/cron jobs |
Beginner Mistakes, Myths & Similar Tools
- Myth: “I need a GUI to monitor GPUs.” Nope! All you need is SSH and a terminal.
- Myth: “Only root can see GPU stats.” Wrong. Any user can, unless permissions are locked down.
- Mistake: Not installing the right driver (or forgetting to reboot after install).
- Similar tools:
- nvidia-smi: CLI tool, great for one-liners and scripts.
- gpustat: Python-based, more concise output.
- glances: Multi-resource, but GPU support is basic.
Flowchart: “Use This If…” Decision Helper
What GPU do you have?
➡️ NVIDIA
⬇️
Want live graphs and per-process stats?
➡️ Yes → Use nvtop!
➡️ No, just need quick info → Use nvidia-smi or gpustat.
➡️ AMD
⬇️
Want live usage stats?
➡️ Yes → Use radeontop!
➡️ No → Try glxinfo or amdgpu-pro tools.
Interesting Facts & Unconventional Uses
- Run in tmux/screen: Keep a live GPU dashboard open 24/7, even over SSH.
- Pipe to log files:
nvtop --no-interactive > gpu.log
(for historical debugging!) - Monitor multiple servers: Use
mosh
ortmuxinator
for a wall-of-GPU-dashboards effect. - Embed in web dashboards: Scrape stats and visualize with Grafana/Prometheus.
- Stress test hardware: Spot thermal throttling live by running stress-ng and nvtop/radeontop side by side.
Automation, Scripting, and Bonus Scripts
Because these tools are CLI-friendly, you can automate like a boss. Here’s a couple of script snippets for inspiration:
# Bash: Alert if GPU memory > 90% while true; do USAGE=$(nvidia-smi --query-gpu=memory.used,memory.total --format=csv,noheader,nounits | awk -F',' '{print $1/$2*100}') if (( $(echo "$USAGE > 90" | bc -l) )); then echo "WARNING: GPU memory above 90%!" # send email, slack, etc. fi sleep 60 done
# Python: Log GPU temperature every minute import subprocess, time while True: temp = subprocess.check_output("nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader", shell=True).decode().strip() with open("gpu_temp.log", "a") as f: f.write(f"{time.ctime()}: {temp}°C\n") time.sleep(60)
You can also integrate nvtop
or radeontop
output into Prometheus exporters, or create cron jobs to alert when GPUs are idle (save money by shutting them down!).
The Admin’s Tale (Short Story)
So there’s this admin, right? Let’s call them Alex. Alex runs a multi-user ML server with three shiny NVIDIA cards. One day, everything slows to a crawl. Alex logs in, runs nvidia-smi
— all GPUs at 99%, but which user?? Instead of randomly killing jobs (never ends well), Alex fires up nvtop. Instantly, the culprit is revealed: Bob’s runaway PyTorch script. Alex zaps the process (nvtop’s built-in kill!), sends Bob a friendly message, and peace is restored. The moral? Know your tools, and your GPUs will serve you better.
Conclusion & Recommendations
- nvtop and radeontop are the “htop” for GPUs. If you run any server with a GPU, you need these in your toolbox.
- They’re fast, easy to set up, and give you immediate visibility into what’s going on — no more flying blind.
- Perfect for cloud, VPS, Docker/K8s, and dedicated servers. (Need a powerful server? Order a VPS or dedicated server at MangoHost!)
- They help you save money, keep users happy, and avoid hardware meltdowns.
- Plus, they’re just plain fun for geeks who love ASCII art dashboards!
Ready to visualize your GPUs like a pro? Fire up nvtop
or radeontop
today and see what you’ve been missing.
Happy hacking!

This article incorporates information and material from various online sources. We acknowledge and appreciate the work of all original authors, publishers, and websites. While every effort has been made to appropriately credit the source material, any unintentional oversight or omission does not constitute a copyright infringement. All trademarks, logos, and images mentioned are the property of their respective owners. If you believe that any content used in this article infringes upon your copyright, please contact us immediately for review and prompt action.
This article is intended for informational and educational purposes only and does not infringe on the rights of the copyright owners. If any copyrighted material has been used without proper credit or in violation of copyright laws, it is unintentional and we will rectify it promptly upon notification. Please note that the republishing, redistribution, or reproduction of part or all of the contents in any form is prohibited without express written permission from the author and website owner. For permissions or further inquiries, please contact us.