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.
-
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.
The application has been compiled using Nuitka, allowing users to run it without needing Python or additional dependencies installed.
- Download the precompiled binary file (
gpu_monitor.bin
) from the provided release or distribution source. - 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
- Run the binary using:
./gpu_monitor.bin
- The application will launch, and you can start monitoring your GPU metrics.
- For advanced configuration, refer to the command-line arguments section below.
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.
Ensure you have the following installed:
- Python 3.6+
- PyQt5
- PyQtGraph
- pynvml
- numpy
- 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.
-
Clone the repository or download the source code:
git clone https://github.com/Diyarbekoralbaev/gpu-monitor.git cd gpu-monitor
-
Run the application:
python main.py
-
Launch the application using the command:
python main.py
-
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.
-
Customize the thresholds in the "Settings" tab to define alert conditions.
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
This project is licensed under the MIT License. See the LICENSE
file for details.
For any questions or issues, please contact me at [email protected]. Other contact information can be found on my GitHub profile.