KempnerPulse
nvidia-smisays 100% GPU utilization — but are your tensor cores even active? KempnerPulse shows what's actually happening.
A terminal dashboard for NVIDIA DCGM hardware-counter metrics, with
SLURM/CUDA GPU-visibility awareness. It reads DCGM profiling counters (SM Active,
Tensor Active, DRAM Active, …) directly from dcgmi dmon (~100 ms) or from a
dcgm-exporter endpoint, synthesizes a
weighted Real Utilization score and a 12-category workload
classification, and renders four interactive views in the terminal.
Highlights
- Four views — Fleet, Focus (per-GPU sparkline history), Plot (line charts), Job (running processes).
- Real Utilization — a weighted composite of SM / Tensor / DRAM / GR-engine counters, with AI, HPC, and memory-bound presets.
- 12-category workload classification plus health monitoring (thermal, PCIe replay, ECC), from NVIDIA's DCGM profiling guidance.
- Three backends —
dcgm(directdcgmi dmon),prometheus(dcgm-exporter), andreplay(a saved capture, no GPU needed). - SLURM / CUDA aware — shows only your allocated GPUs.
- Lightweight — standard library +
rich; ~8% of one CPU core.
Install
uv tool install kempnerpulse # isolated `kempnerpulse` + `kp` commands
# or: pip install kempnerpulse
Requires Linux, Python ≥ 3.9, and NVIDIA data-center GPUs; the dcgm backend
needs the DCGM host engine. See the
installation guide
for uv specifics, the supported-GPU list, and running on a SLURM compute node.
Quick start
kempnerpulse # live dashboard (or `kp`)
kp --focus-gpu 0 # start focused on GPU 0
kp --hpc-weights # HPC weight preset
kp --export all > metrics.csv # CSV capture
kp --backend prometheus --source http://host:9400/metrics
Press Ctrl-C to quit; type :focus <id>, :plot, :job, or :q to switch views.
Documentation
Full documentation: https://kempnerinstitute.github.io/kempnerpulse/
- Quickstart and Views
- CLI reference — every flag and interactive command
- Architecture — the four-layer pipeline
- Workload classification and canonical schema
- CSV export and DCGM metrics
License
MIT. See LICENSE.
Metadata
Release files for kempnerpulse 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| kempnerpulse-0.5.0.tar.gz | 71.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kempnerpulse-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 157.2 kB
Release files / kempnerpulse-0.5.0.tar.gz
| Download URL | kempnerpulse-0.5.0.tar.gz |
|---|---|
| Size | 71.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
befd083c71947ca9ebe38b34e46730e5c52249416e1024745965ca5edd84e815
|
|
BLAKE2b-256 checksum How to use checksums |
16a6c2b26bdec7b1571c53f0ff7555a598ac94fcc47a211bff1c215632452d2d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.11
|
Release files / kempnerpulse-0.5.0-py3-none-any.whl
| Download URL | kempnerpulse-0.5.0-py3-none-any.whl |
|---|---|
| Size | 86.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8cf53114d78eaf63cafdbeb58350204cfb1f0e114276d25e5938cb854216406d
|
|
BLAKE2b-256 checksum How to use checksums |
c3efc368bde1354808d9abca4ba4c3db23c6a9dfdb370eef9099e2243a07a767
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.11
|
Security for kempnerpulse 0.5.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.