dynamo/benchmarks
MatejKosec 67329d1023
fix: profiler deployment timeout handling for MoE models (#6086)
Wrap wait_for_deployment_ready() in try/except TimeoutError for both prefill and decode profiling sweeps
On timeout: log error, record via add_profiling_error(), clean up the timed-out deployment, and continue to the next parallelization mapping
Previously, a single deployment timeout would crash the entire profiler job
2026-02-09 15:57:59 -08:00
..
burstgpt_loadgen chore: use aiperf utils in prefix synthesizer (#5906) 2026-02-04 12:57:05 -08:00
incluster chore: update all copyright headers in repo to 2026 (#5130) 2026-01-02 22:08:23 +00:00
llm chore: update all copyright headers in repo to 2026 (#5130) 2026-01-02 22:08:23 +00:00
multimodal chore: add multimodal image benchmark scripts for performance evaluation (#5509) 2026-01-27 17:39:58 -08:00
nat_trace feat: NAT telemetry conversion (#6022) 2026-02-05 20:52:43 -08:00
prefix_data_generator fix: ignore benchmarks pytest for now (#5983) 2026-02-05 08:26:25 +00:00
profiler fix: profiler deployment timeout handling for MoE models (#6086) 2026-02-09 15:57:59 -08:00
router docs: cleanup of docs refactor for components, integrations, and features (#6019) 2026-02-05 19:50:17 -08:00
sin_load_generator chore: use aiperf utils in prefix synthesizer (#5906) 2026-02-04 12:57:05 -08:00
utils chore: update all copyright headers in repo to 2026 (#5130) 2026-01-02 22:08:23 +00:00
README.md chore: update all copyright headers in repo to 2026 (#5130) 2026-01-02 22:08:23 +00:00
pyproject.toml fix: e2e aiperf profiling on NAT dataset (#5990) 2026-02-04 21:50:30 -08:00

README.md

Benchmarks

This directory contains benchmarking scripts and tools for performance evaluation of Dynamo deployments. The benchmarking framework is a wrapper around aiperf that makes it easy to benchmark DynamoGraphDeployments or other deployments with exposed endpoints.

Quick Start

Benchmark a Dynamo Deployment

First, deploy your DynamoGraphDeployment using the deployment documentation, then:

# Port-forward your deployment to http://localhost:8000
kubectl port-forward -n <namespace> svc/<frontend-service-name> 8000:8000 > /dev/null 2>&1 &

# Run benchmark
python3 -m benchmarks.utils.benchmark \
    --benchmark-name my-benchmark \
    --endpoint-url http://localhost:8000 \
    --model "<your-model>"

# Generate plots
python3 -m benchmarks.utils.plot --data-dir ./benchmarks/results

# Or plot only specific benchmark experiments
python3 -m benchmarks.utils.plot --data-dir ./benchmarks/results --benchmark-name my-benchmark

Features

Benchmark any HTTP endpoints! The benchmarking framework supports:

Flexible Configuration:

  • User-defined benchmark names using --benchmark-name flag
  • Support for single endpoint benchmarking with --endpoint-url flag
  • Customizable concurrency levels (configurable via CONCURRENCIES env var), sequence lengths, and models
  • Automated performance plot generation with custom benchmark names

Supported Backends:

  • DynamoGraphDeployments with port-forwarded endpoints
  • External HTTP endpoints (for comparison with non-Dynamo backends or platforms)

Installation

This is already included as part of the Dynamo container images. To install locally or standalone:

pip install -e .

Data Generation Tools

This directory also includes lightweight tools for:

  • Analyzing prefix-structured data (datagen analyze)
  • Synthesizing structured data customizable for testing purposes (datagen synthesize)

Detailed information is provided in the prefix_data_generator directory.

Comprehensive Guide

For detailed documentation, configuration options, and advanced usage, see the complete benchmarking guide.