MCPcopy Index your code
hub / github.com/wookayin/gpustat

github.com/wookayin/gpustat @v1.1.1 sqlite

repository ↗ · DeepWiki ↗ · release v1.1.1 ↗
122 symbols 296 edges 10 files 42 documented · 34%
README

gpustat

pypi Build Status license

Just less than nvidia-smi?

Screenshot: gpustat -cp

NOTE: This works with NVIDIA Graphics Devices only, no AMD support as of now. Contributions are welcome!

Self-Promotion: A web interface of gpustat is available (in alpha)! Check out gpustat-web.

Quick Installation

Install from PyPI:

pip install gpustat

If you don't have root (sudo) privilege, please try installing gpustat on user namespace: pip install --user gpustat.

To install the latest version (master branch) via pip:

pip install git+https://github.com/wookayin/gpustat.git@master

NVIDIA Driver Requirements

gpustat uses NVIDIA's official python bindings for NVML library (pynvml). As of now gpustat requires nvidia-ml-py >= 11.450.129, which is compatible with NVIDIA driver versions R450.00 or higher. Please upgrade the NVIDIA driver if gpustat fails to display process information. If your NVIDIA driver is too old, you can use older gpustat versions (pip install gpustat<1.0). See #107 for more details.

Python requirements

  • gpustat<1.0: Compatible with python 2.7 and >=3.4
  • gpustat 1.0: Python >= 3.4
  • gpustat 1.1: Python >= 3.6

Usage

$ gpustat

Options (Please see gpustat --help for more details):

  • --color : Force colored output (even when stdout is not a tty)
  • --no-color : Suppress colored output
  • -u, --show-user : Display username of the process owner
  • -c, --show-cmd : Display the process name
  • -f, --show-full-cmd : Display full command and cpu stats of running process
  • -p, --show-pid : Display PID of the process
  • -F, --show-fan : Display GPU fan speed
  • -e, --show-codec : Display encoder and/or decoder utilization
  • -P, --show-power : Display GPU power usage and/or limit (draw or draw,limit)
  • -a, --show-all : Display all gpu properties above
  • --id : Target and query specific GPUs only with the specified indices (e.g. --id 0,1,2)
  • --no-processes : Do not display process information (user, memory) (#133)
  • --watch, -i, --interval : Run in watch mode (equivalent to watch gpustat) if given. Denotes interval between updates.
  • --json : JSON Output (#10)
  • --print-completion (bash|zsh|tcsh) : Print a shell completion script. See #131 for usage.

Tips

  • Try gpustat --debug if something goes wrong.
  • To periodically watch, try gpustat --watch or gpustat -i (#41).
    • For older versions, one may use watch --color -n1.0 gpustat --color.
  • Running nvidia-smi daemon (root privilege required) will make querying GPUs much faster and use less CPU (#54).
  • The GPU ID (index) shown by gpustat (and nvidia-smi) is PCI BUS ID, while CUDA uses a different ordering (assigns the fastest GPU with the lowest ID) by default. Therefore, in order to ensure CUDA and gpustat use same GPU index, configure the CUDA_DEVICE_ORDER environment variable to PCI_BUS_ID (before setting CUDA_VISIBLE_DEVICES for your CUDA program): export CUDA_DEVICE_ORDER=PCI_BUS_ID.

Default display

[0] GeForce GTX Titan X | 77°C,  96 % | 11848 / 12287 MB | python/52046(11821M)
  • [0]: GPU index (starts from 0) as PCI_BUS_ID
  • GeForce GTX Titan X: GPU name
  • 77°C: GPU Temperature (in Celsius)
  • 96 %: GPU Utilization
  • 11848 / 12287 MB: GPU Memory Usage (Used / Total)
  • python/...: Running processes on GPU, owner/cmdline/PID (and their GPU memory usage)

Changelog

See CHANGELOG.md

License

MIT License

Core symbols most depended-on inside this repo

add_exception
called by 12
gpustat/util.py
new_query
called by 7
gpustat/core.py
original_nvmlDeviceGetMemoryInfo
called by 5
gpustat/nvml.py
nvmlDeviceGetMemoryInfo
called by 5
gpustat/nvml.py
status
called by 4
setup.py
print_formatted
called by 4
gpustat/core.py
_write
called by 4
gpustat/util.py
keys
called by 3
gpustat/core.py

Shape

Method 82
Function 28
Class 10
Route 2

Languages

Python100%

Modules by API surface

gpustat/core.py54 symbols
gpustat/test_gpustat.py35 symbols
gpustat/util.py9 symbols
setup.py7 symbols
gpustat/nvml.py7 symbols
gpustat/cli.py6 symbols
gpustat/util_test.py3 symbols
gpustat/_shtab.py1 symbols

For agents

$ claude mcp add gpustat \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact