nvprobe

Baseline GPUs at delivery, run HPL & HPCG, test VRAM integrity, detect thermal throttling, benchmark MLPerf inference, and generate interactive HTML reports — all from a single CLI.

Python 3.10+ CUDA 12 / 13 HPL / HPCG Memtest Burn MLPerf
$ nvprobe run --local
[GPU 0] NVIDIA B200 • fp32 • bandwidth
H2D 1024 MB: 198.4 GB/s
D2H 1024 MB: 197.1 GB/s
D2D 1024 MB: 512.8 GB/s
Report generated: report.html
View on PyPI Documentation View on GitHub nvprobe HTML Report Demo

Why nvProbe

Pre-built Benchmarks

Memory bandwidth, matmul, attention, convolution — run standard CUDA workloads with zero setup.

HPL & HPCG

Self-contained Linpack and CG benchmarks via NVIDIA HPC Benchmarks — auto-downloaded on setup.

MLPerf Inference

End-to-end MLPerf via cmx4mlperf with configurable model, framework, and precision.

Infrastructure Audits

Capture max clocks, power caps, ECC state, PCIe link speed & NVLink — baseline today, re-run in 6 months, spot degradation instantly.

Interactive Charts

Chart.js canvas-based charts with tooltip hover, zoom, and oscilloscope-style glow.

Bundled CUDA Runtime

No system CUDA toolkit required — CuPy with [ctk] bundles everything via pip.

Slurm Integration

Generate, submit, monitor, and collect results from HPC clusters — all from a single CLI.

Quick Start

Install

pip install nvprobe

Setup

Install CuPy, download HPL/HPCG binaries, generate configs

nvprobe setup

Check environment

Verify GPU detection, driver, and CUDA version

nvprobe env

Run benchmarks

nvprobe run --local

Generate report

nvprobe report --open

More commands

nvprobe compare --a results/run1 --b results/run2Compare runs
nvprobe run --config configs/cluster.yamlCustom config
nvprobe slurm submit --config configs/cluster.yamlSlurm submit
nvprobe setup --cuda 13Specific CUDA

Benchmarks

Bandwidth

H2D, D2H, D2D memory bandwidth across buffer sizes

CuPy

Burn

Sustained MatMul burn with clock/temp tracking and throttling detection

CuPy

Memtest

VRAM integrity: solid, checkerboard, random, walking-1 patterns

CuPy

Custom Kernels

MatMul, tiled MatMul, fused attention, convolution

CUDA C

HPL

High Performance Linpack (FP64)

MPI Datacenter GPUs

HPCG

Conjugate Gradients

MPI Datacenter GPUs

MLPerf

MLPerf Inference — test / find_performance / full

ONNX Runtime

FAQ

Can I run nvprobe on a workstation RTX GPU for HPL and HPCG benchmarks?

The NVIDIA HPC Benchmarks binaries (xhpl and xhpch) are validated for datacenter GPUs such as A100, H100, B200, and L40S. On RTX-series workstation cards the GPU initialization step may crash with a SIGSEGV. However, all other benchmarks — memory bandwidth, custom CUDA kernels (matmul, attention, convolution), and MLPerf inference — work on any CUDA-capable GPU. You can selectively disable HPL and HPCG in your YAML config and still run the full suite of bandwidth and custom kernel tests.

How does nvprobe handle MLPerf Inference setup and cuDNN detection?

nvprobe drives MLPerf Inference through cmx4mlperf (the MLCommons cm framework), supporting model, framework, scenario, and precision configuration. The mlcr tool discovers cuDNN through system CUDA library paths by default. If you installed cuDNN via pip install nvidia-cudnn-cuXX, pre-register the path manually: mlcr get,cudnn,nvidia --input=$(python3 -c 'import nvidia.cudnn; print(nvidia.cudnn.__path__[0])'). NVPROBE's setup command also installs CuPy with bundled CUDA libraries, so no system CUDA toolkit is required for the bandwidth and custom kernel benchmarks.

Does nvprobe support Slurm-based HPC clusters for multi-GPU benchmarking?

Yes, nvprobe has native Slurm integration. Use nvprobe slurm submit --config configs/cluster.yaml to generate job scripts, submit them to the specified Slurm partition, monitor their status with nvprobe slurm status, and automatically collect results once they complete. The YAML config lets you define gpus_per_node, partition name, and per-node benchmark parameters, making it suitable for large-scale HPC clusters with multiple GPU nodes running HPL, HPCG, or MLPerf in parallel.