A real-time system monitoring application for Windows that tracks GPU, CPU, RAM, PCIe bandwidth, and encoder/decoder utilization with beautiful donut-style gauges.
Works with any GPU (v0.10.0): NVIDIA cards get the full metric set via NVML; Intel Arc, AMD, and everything else get load / VRAM / video-engine metrics via the Windows WDDM GPU counters (the same source as Task Manager), with temperatures via the optional LibreHardwareMonitor bridge.
- GPU: Load percentage, temperature, clock speed, fan speed
- VRAM: Occupancy (used / total); memory-controller utilization is logged separately (NVML)
- Decoder: Video decode engine utilization (NVDEC on NVIDIA; QSV / VCN via WDDM counters on Intel / AMD)
- Encoder: Video encode engine utilization (NVENC on NVIDIA; QSV / VCN via WDDM counters on Intel / AMD)
- PCIe Bandwidth (NVIDIA/NVML only): TX/RX throughput as % of the link's maximum capability, with live link state (e.g.
PCIe 1.0 x8 (max 4.0 x8)when power management downtrains the link) - CPU: Load percentage, live clock speed; temperature and fan when a sensor source is available (see note below)
- RAM: Memory usage and percentage
- Python processes: Aggregate CPU and memory of all running
python*processes
- Custom donut-style gauges with smooth animations
- Color-coded indicators:
- PCIe: Orange (TX) and Green (RX) dual rings
- Configurable polling intervals (0.1s to 5.0s)
- Export metrics to CSV format
- Timestamped logs saved to
Documents/nvGPUMonitor/ - Start/stop logging on demand
- Every column documented in docs/METRICS_COLUMNS.md (sources, units, semantics)
- An empty CSV field always means "could not read"; a
0is always a real measured zero
- OS: Windows 10/11
- .NET: .NET 9.0 SDK or Runtime (the MSI installer is self-contained and needs neither)
- GPU: any WDDM GPU. NVIDIA cards with NVML get the full metric set (PCIe, memory-controller utilization, temp/clock/fan built in); Intel Arc / AMD get load, VRAM, and video-engine metrics out of the box. App still works with no GPU at all.
- CPU and non-NVIDIA GPU temperature/clock/fan (optional): most consumer desktops do not expose these via stock Windows WMI. Run LibreHardwareMonitor alongside nvGPUMonitor to populate them.
Quick start:
# Clone the repository
git clone https://github.com/mountlord/nvGPUMonitor.git
cd nvGPUMonitor
# Build
dotnet build nvGPUMonitor.Wpf.csproj -c Release
# Run
dotnet run --project nvGPUMonitor.Wpf.csproj -c ReleaseFor full build instructions, MSI packaging with WiX, the release checklist, and troubleshooting, see docs/BUILDING.md.
- Launch nvGPUMonitor
- Gauges update automatically at the configured polling interval
- View real-time metrics for all monitored components
- Click "Start Log" to begin recording metrics
- Data saves to
Documents/nvGPUMonitor/metrics-[timestamp].csv - Click "Stop Log" when done
Note: the CSV ts column is ISO-8601 UTC; the filename timestamp is local time.
nvGPUMonitor/
├── Controls/ # Custom WPF controls
│ ├── DonutGauge.* # Single-metric gauge
│ └── DualDonutGauge.* # Dual-metric gauge (PCIe TX/RX)
├── Models/ # Data models
├── Services/ # Business logic
├── Utils/ # Helper utilities (NVML bindings)
├── docs/ # Build guide and CSV column reference
├── MainWindow.* # Main UI
└── Installer/ # WiX installer project
- Framework: .NET 9.0, WPF (Windows Presentation Foundation)
- GPU Interface: NVIDIA NVML (Management Library), with a vendor-agnostic WDDM performance-counter fallback (
GPU Engine/GPU Adapter Memory) for Intel Arc / AMD - System Metrics: Windows performance counters and WMI (with optional LibreHardwareMonitor bridge)
nvGPUMonitor is released under the GNU General Public License v3.
THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. USE AT YOUR OWN RISK. The authors and contributors shall not be liable for any damages arising from the use of this software, including but not limited to system instability, data loss, or hardware issues. See the LICENSE file for full terms.
If you find this software useful, consider donating to my favorite charity: Save The Children
v0.10.2 - GPU-agnostic backend: Intel Arc / AMD support via Windows WDDM GPU counters when NVML is absent; gpu_backend and gpu_name CSV columns appended (additive schema change - existing column positions unchanged). Full history in CHANGELOG.md.
