A lightweight AMD GPU monitor
for Linux.
Real-time temperature, clock, load, and VRAM — plus one-click power-mode
switching — in a tray-resident mini app.
420 × 640 px, ~8 MB, written in Rust.
Built for getting out of your way
Live sysfs metrics
Temperature, clock, busy %, VRAM used/total. Polled every 2 s straight from /sys/class/drm.
60-second sparklines
Every metric has a rolling 60-second mini-chart so you can spot spikes at a glance.
One-click power mode
Toggle HIGH (pinned max DPM) vs AUTO (driver-scaled) without opening a terminal.
AI Session preset
Flip HIGH + PM ON together before a ROCm workload, restore with one click when done.
Zero-config detection
Auto-discovers your AMD card by scanning /sys/class/drm/cardN/device/vendor. No config file.
Polkit-aware
If a sysfs write requires root, the app transparently prompts through pkexec.
System tray
Close the window and it hides to the tray. Left-click to toggle, right-click for a menu.
Desktop-app feel
Smooth animated values, hover tooltips, skeleton loader, toast confirmations. No flash of "Loading".
Install in 30 seconds
Download the AppImage and mark it executable. That's it — no daemon, no elevated installer.
# 1. Grab the latest AppImage from the Releases page
wget https://github.com/Twarga/RocmTop/releases/latest/download/RocmTop_1.0.0_amd64.AppImage
# 2. Make it executable and run
chmod +x RocmTop_*.AppImage
./RocmTop_*.AppImage
First-time system dependencies
Arch / CachyOS / Manjaro
sudo pacman -S webkit2gtk-4.1 \
libayatana-appindicator polkit
Ubuntu / Debian / Pop!_OS
sudo apt install libwebkit2gtk-4.1-0 \
libayatana-appindicator3-1 policykit-1
Fedora / Nobara
sudo dnf install webkit2gtk4.1 \
libayatana-appindicator-gtk3 polkit
Frequently asked
Does this work with NVIDIA GPUs?
No. RocmTop specifically reads amdgpu sysfs nodes
(pp_dpm_sclk, gpu_busy_percent, etc.) that
NVIDIA's proprietary driver doesn't expose. Use nvtop
or nvidia-smi for NVIDIA hardware.
Why does it need root to flip toggles?
The power_dpm_force_performance_level and PCI
power/control sysfs nodes are owned by root. RocmTop
first tries a direct write; if that fails with permission denied,
it prompts through pkexec. No elevated daemon runs in
the background.
Is it safe to pin the GPU to HIGH for long periods?
That's how the driver was designed to be used — HIGH forces the highest DPM state, which can save latency for ML/3D workloads at the cost of higher idle power. Temperature protection still works, so the GPU will throttle if it overheats. Switch back to AUTO when you're done.
Does it support multiple AMD GPUs?
Not yet — v1.0 uses the first AMD card it finds. Multi-GPU support is on the roadmap. Open an issue if you need it and can test.
The tray icon doesn't appear on GNOME.
GNOME removed the tray API in 2017. Install the AppIndicator extension to restore it. KDE, XFCE, LXQt, and wlroots compositors work out of the box.
What does it weigh on my system?
The AppImage is around 8 MB. At runtime the Rust process uses roughly 30 MB of RAM (dominated by the WebKit view) and well under 1 % of one CPU core while polling at 2 s intervals.