GPU Monitor Board is a cutting-edge web application that provides real-time monitoring of NVIDIA GPUs across multiple servers. With its intuitive interface, you can effortlessly track GPU utilization, memory usage, temperature, and user information for each GPU on connected servers.
- π Real-time monitoring of multiple servers
- π Comprehensive GPU information display:
- GPU index and name
- Temperature
- Utilization percentage
- Memory usage and total memory
- Current user (if available)
- π¨ Color-coded utilization for quick status identification
- β±οΈ Automatic updates every 60 seconds
- π Tabbed interface for seamless navigation between servers
- Python 3.9+
- FastAPI
- Uvicorn
- Paramiko
- NVIDIA GPU drivers installed on monitored servers
-
Clone the repository:
git clone https://github.com/scottsuk0306/gpu-board.git cd gpu-board
-
Install the required Python packages:
pip install fastapi uvicorn paramiko
-
Create a
config.json
file based on the provided template:cp config.json.example config.json
Edit
config.json
with your server details.
Edit the config.json
file to include your server details:
{
"servers": [
{"hostname": "server1.example.com", "username": "user1", "password": "pass1", "port": 22},
{"hostname": "server2.example.com", "username": "user2", "port": 22, "key_filename": "path/to/key.pem"}
]
}
-
Start the server:
uvicorn app:app --host 0.0.0.0 --port 8000
-
Open a web browser and navigate to
http://localhost:8000
- Ensure that
config.json
is not exposed to public access. - For production use, consider using environment variables or a secure secrets management system for sensitive information.
- Ensure that the SSH keys have appropriate permissions (typically 600).
Contributions to the GPU Monitor Board project are welcome! Please feel free to submit pull requests or create issues for bugs and feature requests.
This project is licensed under the MIT License. See the LICENSE file for details.
- This project uses Bootstrap for styling.
- NVIDIA-SMI is used for gathering GPU information.
If you encounter any issues or have questions, please open an issue on our GitHub repository.
- Support installation through pip
- Dockerize