Real-time NVIDIA GPU monitoring in your browser. Color-coded metrics, temperature trends, and process tracking — no more squinting at nvidia-smi output while your model trains.
- Live metrics — utilization, memory, temperature, fan speed, power draw, updated as fast as 250 ms
- Color-coded severity — instantly know if a value needs attention without reading numbers
- Temperature trends — rising/falling indicators with °C/min rate
- Peak tracking — high-water marks per GPU, resettable on demand
- GPU burn detection — automatic stress-test monitoring with error counting
- Process list — which processes are consuming GPU memory and how much
- Dark / light mode — persisted across sessions
- Responsive layout — works on mobile
| Stress test (dark) | ML workload | Mobile |
|---|---|---|
![]() |
![]() |
![]() |
| Layer | Technology |
|---|---|
| Frontend | React 18.3, TypeScript 5.5, Vite 5 |
| Backend | FastAPI, pynvml, uvicorn |
| GPU access | pynvml (direct NVIDIA driver — no subprocess) |
| System tools | nvidia-smi, CUDA Toolkit, gpu-burn (optional) |
- NVIDIA GPU with drivers installed
- Python 3.8+
- Node.js 18+
git clone https://github.com/jackccrawford/nvidia-gpu-perf-monitor.git
cd nvidia-gpu-perf-monitorBackend
cd backend
pip install -r requirements.txtFrontend
cd frontend
npm install# From the project root — starts both services cleanly
./restart.shThen open http://localhost:5173 in your browser.
| Service | URL |
|---|---|
| Dashboard | http://localhost:5173 |
| API | http://localhost:5000/api/gpu-stats |
| API docs | http://localhost:5000/docs |
To stop everything:
./stop_servers.shManual startup (if needed)
# Terminal 1 — backend
cd backend
python gpu_service.py
# Terminal 2 — frontend
cd frontend
npm run devThresholds apply to temperature, utilization, memory, and fan speed (with slightly different breakpoints for each).
| Color | Temperature | Utilization |
|---|---|---|
| 🔴 Red | ≥ 80 °C | ≥ 90% |
| 🟠 Orange | ≥ 70 °C | ≥ 75% |
| 🟡 Yellow | ≥ 60 °C | ≥ 50% |
| 🟢 Green | ≥ 50 °C | ≥ 25% |
| 🔵 Blue | < 50 °C | < 25% |
GET /api/gpu-stats — current metrics for all GPUs
POST /api/reset-peaks — reset peak temperature records
Interactive docs available at http://localhost:5000/docs (FastAPI built-in).
./gpu-burn 60 # 60-second stress testThe dashboard automatically detects gpu-burn processes and shows a burn panel with elapsed time and error count.
Warning — do not run stress tests for extended periods. Monitor temperatures closely and stop if you approach thermal limits.
This tool is intended for local / LAN use only. It does not collect or transmit any data externally. No authentication is configured by default.
MIT — see LICENSE.
Made for the GPU community


