Skip to content

GPU Monitor is a real-time NVIDIA GPU monitoring tool built with PyQt5. It tracks key performance metrics including GPU utilization, memory usage, temperature, and power draw. With alert thresholds, desktop notifications, process management, and visual dashboards, users can easily oversee GPU performance. A compiled binary is available for streamli

Notifications You must be signed in to change notification settings

Diyarbekoralbaev/gpu-monitor

Repository files navigation

GPU Monitor

GPU Monitor is a PyQt5-based application that allows users to monitor NVIDIA GPU performance metrics, such as utilization, memory usage, temperature, and power draw, in real-time. It also includes alert systems and visual dashboards for detailed analysis.

Features

  • Real-time Monitoring:

    • GPU utilization
    • Memory utilization and usage
    • Temperature
    • Power draw
    • Fan speed and clock rates
  • Alert System:

    • Threshold-based alerts for temperature, utilization, memory usage, and power draw.
    • Desktop notifications and optional sound alerts.
  • Process Monitoring:

    • List active processes using each GPU, including process type (Graphics/Compute), memory usage, and process names.
    • Kill GPU processes directly from the context menu.
  • Customizable Settings:

    • User-configurable thresholds for alerts.
    • Toggle sound alerts and select custom sound files.
    • Light/Dark theme toggle.
  • Dashboard:

    • Interactive graphs for real-time visualization of GPU statistics.

Running the Compiled Binary

The application has been compiled using Nuitka, allowing users to run it without needing Python or additional dependencies installed.

How to Run

  1. Download the precompiled binary file (gpu_monitor.bin) from the provided release or distribution source.
  2. Open a terminal and download the binary file:
    wget https://github.com/Diyarbekoralbaev/gpu-monitor/releases/download/0.1/gpu_monitor_pyqt.bin && chmod +x gpu_monitor_pyqt.bin
  3. Run the binary using:
    ./gpu_monitor.bin
  4. The application will launch, and you can start monitoring your GPU metrics.
  5. For advanced configuration, refer to the command-line arguments section below.

Development Environment

Every developer has their own preferences for tools and setup. Here is a list of tools and extensions that I use for development: If you intend to contribute to the project, you may find these tools useful.

Prerequisites

Ensure you have the following installed:

  1. Python 3.6+
  2. PyQt5
  3. PyQtGraph
  4. pynvml
  5. numpy
  6. plyer (optional, for desktop notifications)

You can install the dependencies using:

pip install PyQt5 pyqtgraph pynvml numpy plyer dbus-python

For sound alerts, ensure the selected sound file is in WAV format.

Installation

  1. Clone the repository or download the source code:

    git clone https://github.com/Diyarbekoralbaev/gpu-monitor.git
    cd gpu-monitor
  2. Run the application:

    python main.py

Usage

  1. Launch the application using the command:

    python main.py
  2. Use the tabs for different functionalities:

    • GPU Stats: View real-time GPU metrics.
    • GPU Processes: Monitor and manage GPU processes.
    • Dashboard: View real-time graphs for GPU statistics.
    • Settings: Customize thresholds, enable/disable alerts, and switch themes.
  3. Customize the thresholds in the "Settings" tab to define alert conditions.

Command-line Arguments

The application supports the following command-line arguments for advanced configuration:

  • --temp: Set temperature threshold in °C (default: 80.0).
  • --util: Set GPU utilization threshold in % (default: 90.0).
  • --mem-util: Set memory utilization threshold in % (default: 90.0).
  • --power: Set power draw threshold in Watts (default: 250.0).
  • --sound: Enable sound alerts when thresholds are exceeded.
  • --sound-file: Path to custom WAV file for sound alerts.

Example:

python gpu_monitor_pyqt.py --temp 75 --util 85 --sound --sound-file alert.wav

Screenshots

GPU Stats Tab

GPU Stats Tab

Dashboard

Dashboard

Settings

Settings

Acknowledgments

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contact

For any questions or issues, please contact me at [email protected]. Other contact information can be found on my GitHub profile.


About

GPU Monitor is a real-time NVIDIA GPU monitoring tool built with PyQt5. It tracks key performance metrics including GPU utilization, memory usage, temperature, and power draw. With alert thresholds, desktop notifications, process management, and visual dashboards, users can easily oversee GPU performance. A compiled binary is available for streamli

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages