3 releases (breaking)
new 0.3.0 | Mar 25, 2025 |
---|---|
0.2.1 | Mar 9, 2025 |
0.2.0 |
|
0.1.0 | Feb 23, 2025 |
#57 in Operating systems
381 downloads per month
175KB
1K
SLoC
mltop
A resource monitoring tool designed for working with Machine Learning tasks
CPU & GPU at a glance
Introduction
mltop is a resource monitoring tool designed specifically for Machine Learning Engineers and those working with ML tasks. It was a born as a hybrid of nvtop (for monitoring GPUs) and htop (for monitoring CPU and memory), allowing users to see a comprehensive view of their system’s performance in a single interface.
Key Features
- Dual Resource Monitoring: Overlays CPU and GPU usage for spotting bottlenecks in your dataloader pipelines.
- Simplified UI: Combines the key features of
htop
andnvtop
, so you don't need to open multiple tools.
mltop requires NVIDIA drivers to monitor NVIDIA GPU information.
mltop is written in Rust.
Installation
You can easily install mltop by compiling from source with the Rust toolchain.
Building from Source
-
Make sure you have Rust (Cargo) installed.
-
Clone the repository:
git clone https://github.com/kikefdezl/mltop.git
cd mltop
- Build & run the project:
cargo build --release
This will compile the binary into target/release/mltop
.
Pre-built Binaries
- Pre-built binaries to be added to releases soon. In the meantime, please build from source using Cargo.
Dependencies
- mltop uses nvml_wrapper to fetch NVIDIA GPU information, which requires interfacing with your NVIDIA Drivers. If those are not available, mltop won't be able to find your GPU.
Currently, only NVIDIA GPUs are supported, but support for different GPUs is in the roadmap.
Usage
Once installed, run mltop
in your terminal. The tool will run until you press q
to quit.
Roadmap
- Support for multiple GPUs
- Support for other GPU vendors (AMD, Intel, etc.)
- Interactive customization of UI/UX
Contributing
I welcome contributions to mltop! Especially those aimed towards supporting hardware I don't have access to. If you'd like to contribute, please follow these steps:
- Fork the repository.
- Clone your fork and create a new branch.
- Make your changes and add tests if applicable.
- Commit your changes with clear messages.
- Submit a pull request.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Acknowledgments
- Thanks to the creators of htop, nvtop, for for inspiring this project, and to the developers
of
crossterm
,ratatui
,sysinfo
&nvml_wrapper
for providing the building blocks.
Contact
For any questions or feedback, feel free to reach out via GitHub Issues.
Dependencies
~9–35MB
~541K SLoC