RepoNVIDIANVIDIApublished Sep 18, 2025seen Jun 26

NVIDIA/Nvidia-Comms-Perf-Suite

Python

Open original ↗

Captured source

source ↗
published Sep 18, 2025seen Jun 26captured Aug 30http 200method plain

NVIDIA/Nvidia-Comms-Perf-Suite

Description: A comprehensive toolkit for GPU Communications Libraries performance testing and data analysis.

Language: Python

License: NOASSERTION

Stars: 9

Forks: 5

Open issues: 2

Created: 2025-09-18T16:52:22Z

Pushed: 2026-01-06T13:05:21Z

Default branch: main

Fork: no

Archived: no

README:

Nvidia Comms Perf Suite

A comprehensive toolkit for GPU Communications Libraries performance testing and data analysis.

Overview

Nvidia Comms Perf Suite is a collection of utilities designed to streamline the process of testing and analyzing performance data from NVIDIA GPU Communications Libraries. The toolkit provides:

1. Test Script Generation: Generate test scripts for performance benchmarking across different systems and configurations. 2. Result Processing: Process test results using one of three approaches:

  • Convert: Save results to local files in various formats (e.g., CSV) for analysis or sharing
  • Upload: Store results directly in databases (PostgreSQL, MySQL, SQLite) and/or cloud storage (S3)
  • Report: Generate comprehensive PDF performance analysis reports with customizable charts and visualizations

Installation

Virtual Environment (Recommended)

We recommend using a virtual environment to install Nvidia Comms Perf Suite. This helps isolate dependencies and avoid conflicts with other Python packages:

# Create a virtual environment
python -m venv nvcomms-perf-env

# Activate the virtual environment
source nvcomms-perf-env/bin/activate

Build the package with uv

We use uv to build distributable artifacts (sdist/wheel):

# From the repo root
uv build

# Artifacts will be created under dist/
ls -l dist/

PostgreSQL URL Format

Nvidia Comms Perf Suite uses psycopg3 by default. Use this URL format:

  • PostgreSQL: postgresql+psycopg://user:password@host:port/database

Quick Start

CLI usage

> nvcomms-perf --help

Usage: nvcomms-perf [OPTIONS] COMMAND [ARGS]...

Performance Tools for NVIDIA GPU Communications Libraries

Options:
-v, --verbose Increase verbosity (-v, -vv)
--version Show version and exit
--install-completion Install completion for the current shell.
--show-completion Show completion for the current shell, to copy it or
customize the installation.
--help Show this message and exit.

Commands:
generate-job-script Generate job scripts for GPU Comm Libraries...
parse-and-upload (Deprecated) Use [bold red]convert[/bold red] instead
convert Convert test results to a local file in the...
upload Upload test results to a database (PostgreSQL,...
report Generate performance analysis reports from test results

Workflow

The typical workflow for using nvcomms-perf is:

1. Generate test scripts using generate-job-script 2. Run the tests on your cluster (produces test output files) 3. Process results using one of these options:

  • convert: Save results to a local file (CSV, etc.)
  • upload: Upload results directly to a database and/or S3
  • report: Create PDF report from test tarball or CSV

Step 1: Test Generation

Generate job scripts for performance testing:

# Generate a job script and print to stdout
nvcomms-perf generate-job-script --system CLUSTER_1 --systems-toml systems.toml --user-toml user.toml --testset-toml testset.toml

# Generate a job script and save to file
nvcomms-perf generate-job-script --system CLUSTER_1 --systems-toml systems.toml --user-toml user.toml --testset-toml testset.toml --output job.sbatch

# Generate with test report
nvcomms-perf generate-job-script --system CLUSTER_1 --systems-toml systems.toml --user-toml user.toml --testset-toml testset.toml --generate-test-report junit --output job.sbatch

Step 2: Run Tests

After generating the job script, submit it to your cluster:

# Submit the job
sbatch job.sbatch

# The job will produce test output files (logs, tarballs, etc.)

Step 3: Process Results

Choose one of the following options to process your test results:

Option A: Convert to Local File

Use convert to save results to a local file for analysis, sharing, or archival:

# Convert a single NCCL test output to a local CSV file
nvcomms-perf convert -i nccl-tests:/path/to/nccl-tests.log -o results.csv

# Convert test results from multiple tarballs to a single local CSV file
nvcomms-perf convert -i tarball:/path/to/archive1.tar.gz -i tarball:/path/to/archive2.tar.gz -o combined_results.csv

# Convert with explicit output format (CSV) and save to local file
nvcomms-perf convert -i nccl-tests:/path/to/test.log -o csv:/tmp/results.csv

# Convert tarball to local CSV file without progress bar
nvcomms-perf convert -i tarball:/path/to/archive.tar.gz -o results.csv --hide-progress

# Convert and stop on first error (instead of continuing)
nvcomms-perf convert -i tarball:/path/to/archive.tar.gz -o results.csv --stop-on-error

# Convert using custom number of parallel workers for faster processing
nvcomms-perf convert -i tarball:/path/to/archive.tar.gz -o results.csv --max-workers 8

Option B: Upload to Database/S3

Use upload to directly store results in a database and/or S3:

# Upload to PostgreSQL database
nvcomms-perf upload -i tarball:/path/to/archive.tar.gz --db-url postgresql+psycopg://user:pass@host:port/database

# Upload to S3
nvcomms-perf upload -i tarball:/path/to/archive.tar.gz --s3-bucket my-bucket --s3-region us-east-1

# Upload to both PostgreSQL and S3
nvcomms-perf upload -i tarball:/path/to/archive.tar.gz --db-url postgresql+psycopg://user:pass@host:port/database --s3-bucket my-bucket

# Upload multiple files
nvcomms-perf upload -i tarball:/path/to/archive1.tar.gz -i tarball:/path/to/archive2.tar.gz --db-url postgresql+psycopg://user:pass@host:port/database

# Use environment variables for credentials
export NVCOMMS_PERF_DB_URL="postgresql+psycopg://user:pass@host:port/database"
export NVCOMMS_PERF_S3_BUCKET="my-bucket"
export NVCOMMS_PERF_S3_REGION="us-east-1"
nvcomms-perf upload -i tarball:/path/to/archive.tar.gz

Option C: Generate Performance Reports

Use report to create comprehensive PDF performance analysis reports with various chart types:

Available PDF Report Types:

  • Basic Report (basic_report):

Basic report for NCCL includes:

  • Default Configuration Comparison: Curves run with default NCCL algorithm and protocol. One NCCL_TESTS_SPLIT_MASK and scale (num nodes and num processes)...

Excerpt shown — open the source for the full document.

Notability

Scored, but no written rationale attached yet.

NVIDIA has a repo signal matching data demand, evals and quality, infrastructure.