NVIDIA GPU benchmark suite for CUDA workload automation, reporting, and comparison
Project description
nvProbe
NVIDIA GPU & CUDA Benchmark Suite
Automate CUDA workloads • HPL & HPCG • MLPerf inference • Custom kernels • Interactive reports
pip install nvprobe && nvprobe setup && nvprobe run --local
Features
| Bandwidth | MatMul / Attention | Conv2D |
|---|---|---|
| H2D / D2H / D2D across buffer sizes | fp32, fp16, int8 custom CUDA kernels | 2D convolution benchmarks |
| HPL (FP64 Linpack) | HPCG | MLPerf Inference |
| Datacenter GPUs: A100, H100, B200, L40S… | Conjugate Gradients | ONNX Runtime via cmx4mlperf |
- Bundled CUDA runtime — CuPy
[ctk]via pip, no system toolkit required - Auto-downloaded HPC tools — NVIDIA HPC Benchmarks cached in
~/.nvprobe/tools/ - Interactive HTML reports — Plotly charts with GPU / transfer / precision dropdowns
- A/B comparison — compare two result sets side-by-side
- Slurm integration — generate, submit, monitor, collect from HPC clusters
- SQLite storage — all results persisted; CSV / JSON export
Quick Start
| Step | Command | What it does |
|---|---|---|
| 1 | pip install nvprobe |
Install the package |
| 2 | nvprobe setup |
Install CuPy, download HPL/HPCG, generate configs |
| 3 | nvprobe env |
Verify GPU detection, driver, CUDA version |
| 4 | nvprobe run --local |
Run all benchmarks locally |
| 5 | nvprobe report --open |
Generate & open interactive HTML report |
Or from source:
git clone https://github.com/SergioZ3R0/nvprobe.git && cd nvprobe
pip install -e . && nvprobe setup && nvprobe run --local
More commands
| Command | Description |
|---|---|
nvprobe compare --a results/run1 --b results/run2 |
Compare two runs |
nvprobe run --config configs/cluster.yaml |
Run with custom YAML config |
nvprobe slurm submit --config configs/cluster.yaml |
Submit Slurm job |
nvprobe slurm status |
Check Slurm job status |
nvprobe setup --cuda 13 |
Setup with specific CUDA version |
Charts
Plotly charts with interactive controls:
- Bandwidth — filter by GPU and transfer type (H2D / D2H / D2D)
- MatMul / Attention — filter by GPU and precision (fp32 / fp16)
- Range slider — zoom into any x-axis region
- Moving average — smoother trend lines for dense data
YAML Config
name: my-run
gpu:
models: ["L40S", "B200"]
slurm:
enabled: true
partition: gpu
gpus_per_node: 8
precisions: [fp32, fp16]
benchmarks:
- name: bandwidth
params:
sizes_mb: [1, 4, 16, 64, 256, 1024]
- name: custom
params:
kernels: [matmul, attention]
Project Structure
nvprobe/
├── nvprobe/
│ ├── cli.py # CLI entry point
│ ├── config.py # YAML config loader
│ ├── runner.py # Benchmark orchestration
│ ├── slurm.py # Slurm job management
│ ├── reporter.py # Plotly HTML report generator
│ ├── db.py # SQLite storage + CSV/JSON export
│ └── benchmarks/
│ ├── base.py # Base class, GPU detection, diagnostics
│ ├── bandwidth.py # Memory bandwidth tests
│ ├── custom.py # Custom CUDA kernels
│ ├── hpl.py # HPL wrapper
│ ├── hpcg.py # HPCG wrapper
│ ├── mlperf.py # MLPerf via cmx4mlperf
│ └── _cuda/ # Raw CUDA kernels
├── configs/
│ ├── default.yaml
│ └── local.yaml
├── nvprobe.svg
├── index.html
├── README.md
└── pyproject.toml
Notes
- HPL / HPCG — NVIDIA HPC Benchmarks binaries are validated for datacenter GPUs (A100, H100, B200, L40S…). They may crash (SIGSEGV) on RTX series. Bandwidth and custom kernels work on any CUDA GPU.
- MLPerf cuDNN —
mlcrdiscovers cuDNN via system CUDA paths. If installed viapip install nvidia-cudnn-cuXX, pre-register with:mlcr get,cudnn,nvidia --input=$(python3 -c 'import nvidia.cudnn; print(nvidia.cudnn.__path__[0]'))
Requirements
Python 3.10+ • NVIDIA GPU with CUDA drivers • nvidia-smi in PATH • Slurm (optional)
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nvprobe-0.6.1.tar.gz.
File metadata
- Download URL: nvprobe-0.6.1.tar.gz
- Upload date:
- Size: 54.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ddf3fd49a9f7649538a368fee2eef6b92740933124c514f5f78fd088afe2daa
|
|
| MD5 |
7e367a96649a4541d6b2dbbcffb1a3d8
|
|
| BLAKE2b-256 |
463bbef081ec4b2bf81107377f7d1f1b1a66d1dbfe0c936639c28868b2b8c9ce
|
File details
Details for the file nvprobe-0.6.1-py3-none-any.whl.
File metadata
- Download URL: nvprobe-0.6.1-py3-none-any.whl
- Upload date:
- Size: 64.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70fdc3420a171cf1118ade2c6a21a12af8c1a117981a5f8be0cd018fd1efd8f4
|
|
| MD5 |
a0525e3e0110a937d9092a592d14707c
|
|
| BLAKE2b-256 |
a1cdffdf6be40a7d282eaf8131e7e24162b894bf42f6f0f00c4f24c384d5e614
|