Benchmarking#

Measure Isaac Lab workloads, compare changes, and catch performance regressions with the benchmark CLI and Python API.

Run a benchmark#

Start with a runtime benchmark. This command measures 1000 environment steps after 50 warm-up steps and prints a summary:

./isaaclab.sh benchmark runtime \
    --task Isaac-Cartpole-Direct \
    --num_envs 4096 \
    --warmup_steps 50 \
    --num_steps 1000 \
    --benchmark_formatter summary \
    --output_path ./benchmark_results \
    physics=isaacsim_physx

Choose a workflow#

Question

Tool

Continue with

How fast does an environment step?

runtime

Run benchmarks

How fast does a trained policy run?

play

Run benchmarks

How fast does a policy train?

training

Run benchmarks

Where is startup time spent?

startup

Run benchmarks

How fast is one asset or sensor operation?

Micro-benchmark

Write micro-benchmarks

How do I automate or extend a benchmark?

Python API

Use the benchmark API

From workload to comparison#

workload -> warm-up -> measurement -> summary/schema output -> comparison

Use the same workload, hardware, software revision, and measurement mode on both sides of a comparison. The detailed guides define each timing boundary and the provenance required for a valid result.

Guides#

Run benchmarks

Measure runtime, policy playback, training, or startup.

Run benchmarks
Write micro-benchmarks

Isolate one asset method, data property, or sensor update.

Write micro-benchmarks
Use the benchmark API

Run workflows from Python or add a benchmark producer.

Use the benchmark API