Skip to main content

NVIDIA GPU benchmark suite for CUDA workload automation, reporting, and comparison

Project description

nvProbe

nvProbe

NVIDIA GPU & CUDA Benchmark Suite
Automate CUDA workloads • HPL & HPCG • MLPerf inference • Custom kernels • Interactive reports

PyPI Python License CUDA

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 cuDNNmlcr discovers cuDNN via system CUDA paths. If installed via pip 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

Apache License 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nvprobe-0.6.1.tar.gz (54.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nvprobe-0.6.1-py3-none-any.whl (64.1 kB view details)

Uploaded Python 3

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

Hashes for nvprobe-0.6.1.tar.gz
Algorithm Hash digest
SHA256 1ddf3fd49a9f7649538a368fee2eef6b92740933124c514f5f78fd088afe2daa
MD5 7e367a96649a4541d6b2dbbcffb1a3d8
BLAKE2b-256 463bbef081ec4b2bf81107377f7d1f1b1a66d1dbfe0c936639c28868b2b8c9ce

See more details on using hashes here.

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

Hashes for nvprobe-0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 70fdc3420a171cf1118ade2c6a21a12af8c1a117981a5f8be0cd018fd1efd8f4
MD5 a0525e3e0110a937d9092a592d14707c
BLAKE2b-256 a1cdffdf6be40a7d282eaf8131e7e24162b894bf42f6f0f00c4f24c384d5e614

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page