Nvitop: A better top for Nvidia GPUs Nvitop is an open-source interactive NVIDIA GPU process viewer and monitoring tool that queries device status directly through NVML Python bindings rather than parsing nvidia-smi output. The package ships a CUDA device selection tool called nvisel for deep learning researchers and provides APIs for developers to build their own monitoring tools, running on both Linux and Windows with Python 3.8+ and dependencies including nvidia-ml-py, psutil, and curses. Nvitop adds monitor mode with bar charts, history graphs, process sorting, filtering, tree-view, environment variable screens, and keystroke signal sending over nvidia-smi. An interactive NVIDIA-GPU process viewer and beyond, the one-stop solution for GPU process management. The full API references host at https://nvitop.readthedocs.io https://nvitop.readthedocs.io . Monitor mode of nvitop . TERM: GNOME Terminal / OS: Ubuntu 16.04 LTS over SSH / Locale: en US.UTF-8 A Grafana dashboard built on top of nvitop-exporter . nvitop is an interactive NVIDIA device and process monitoring tool. It has a colorful and informative interface that continuously updates the status of the devices and processes. As a resource monitor, it includes many features and options, such as tree-view, environment variable viewing, process filtering, process metrics monitoring, etc. Beyond that, the package also ships a CUDA device selection tool nvisel cuda-visible-devices-selection-tool for deep learning researchers. It also provides handy APIs that allow developers to write their own monitoring tools. Please refer to section More than a Monitor more-than-a-monitor and the full API references at https://nvitop.readthedocs.io https://nvitop.readthedocs.io for more information. Process filtering and a more colorful interface. - Informative and fancy output : show more information than nvidia-smi with colorized fancy box drawing. - Monitor mode : can run as a resource monitor, rather than print the results only once. - bar charts and history graphs - process sorting - process filtering - send signals to processes with a keystroke - tree-view screen for GPU processes and their parent processes - environment variable screen - help screen - mouse support - Interactive : responsive for user input from keyboard and/or mouse in monitor mode. vs. gpustat https://github.com/wookayin/gpustat & py3nvml https://github.com/fbcotter/py3nvml - Efficient : - query device status using NVML Python bindings https://pypi.org/project/nvidia-ml-py directly, instead of parsing the output of nvidia-smi . vs. nvidia-htop https://github.com/peci1/nvidia-htop - support sparse query and cache results with TTLCache from cachetools https://github.com/tkem/cachetools . vs. gpustat https://github.com/wookayin/gpustat - display information using the curses library rather than print with ANSI escape codes. vs. py3nvml https://github.com/fbcotter/py3nvml - asynchronously gather information using multi-threading and correspond to user input much faster. vs. nvtop https://github.com/Syllo/nvtop - query device status using - Portable : work on both Linux and Windows. - get host process information using the cross-platform library psutil https://github.com/giampaolo/psutil instead of calling ps -p