nvidia/omniperf · Archived

benchmark-isaaclab

Run Isaac Lab benchmark scripts and interpret their outputs.

First seen Jun 17, 2026

Installation

$ npx skills add nvidia/omniperf --skill benchmark-isaaclab

Summary

  • Run Isaac Lab benchmark scripts and interpret their outputs.
  • Covers RL training throughput, non-RL environment step FPS, camera/load/startup benchmarks, batch suites, parameter gotchas, output files, and JSON result structure.
  • Use when the user asks to run or compare Isaac Lab benchmarks.
  • NOT for RL convergence or policy-quality validation, profiling capture (use profiling), trace analysis (use nsys-analyze), or applying performance fixes (use perf-tuning).

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from nvidia/omniperf · top by installs.

npx skills add nvidia/omniperf

Browse all from nvidia/omniperf

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 33
License LICENSE
Default branch main
Open issues 0
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,793 B
  • docs SUMMARY.md 487 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 10 installs

SKILL.md

Isaac Lab Benchmarking

Parameter references may be outdated. Always verify with ./isaaclab.sh -p <script> --help.
For profiling details (Tracy, Nsight), see the profiling skill.
For installation, see the install-isaaclab skill.

Setup

See the install-isaaclab skill for installation (clone, conda env, Isaac Sim linking).

Before Running Any Benchmark

  1. Use a WARM run for headline FPS/frametime — see the COLD/WARM/TRACY method in the profiling skill
  2. Set CPU governor to performance — see perf-tuning skill
  3. Do not patch Isaac Sim shutdown by default. If Tracy shutdown hangs after outputs are complete, use the scoped last-resort guidance in the profiling skill

Benchmark Scripts

All in scripts/benchmarks/. Run via ./isaaclab.sh -p scripts/benchmarks/<script>.py.

Script What it measures Key params
benchmarknonrl.py Environment step FPS (most common) --task, --numenvs, --numframes
benchmark_rlgames.py RL-Games training throughput --task, --numenvs, --maxiterations
benchmarkrslrl.py RSL-RL training throughput --task, --numenvs, --maxiterations
benchmark_cameras.py Camera system FPS + autotune --numtiledcameras, --numstandardcameras, --height, --width, --autotune
benchmarkloadrobot.py Robot loading time --numenvs, --robot {anymald,h1,g1}
benchmark_startup.py App startup time profiling --task (required), --numenvs, --topn
benchmarklazyexport.py Lazy export/import speed --iterations, --tasks (stdout only, no JSON backend)
benchmarkviewcomparison.py XformPrimView vs PhysX --numenvs, --numiterations, --profile (stdout/cProfile, no JSON backend)
benchmarkxformprim_view.py XformPrimView performance --numenvs, --numiterations, --profile (stdout/cProfile, no JSON backend)

Note: benchmarklazyexport.py, benchmarkviewcomparison.py, and benchmarkxformprim_view.py
do NOT support --benchmarkbackend or --outputpath. They output results to stdout.
Use --profile (where available) to save cProfile .prof files.

Common params: --device, --enablecameras, --benchmarkbackend, --output_path, --distributed

Note: --headless is deprecated. Omit --viz for headless mode, or use --viz none.

Passing Kit args (for profiling, output control, etc.):

./isaaclab.sh -p scripts/benchmarks/benchmark_non_rl.py \
    --task=Isaac-Ant-Direct-v0 --viz none --num_envs=4096 \
    --kit_args "--/app/profilerBackend=tracy --/log/file=/tmp/kit.log"

Batch suites

bash scripts/benchmarks/run_training_benchmarks.sh    # RSL-RL, 500 iters
bash scripts/benchmarks/run_non_rl_benchmarks.sh      # non-RL, various env counts
bash scripts/benchmarks/run_physx_benchmarks.sh        # PhysX assets

Critical Gotcha: Parameter Format

Isaac Lab uses UNDERSCORES (standard argparse). Isaac Sim uses HYPHENS.

Isaac Lab:  --num_envs 4096  --num_frames 100  --enable_cameras
Isaac Sim:  --num-cameras 8  --num-gpus 1      --num-frames 600

Mixing them up is a common source of silent misconfiguration.

Common Tasks and Env Counts

Camera tasks (add --enable_cameras):

  • Isaac-Cartpole-RGB-Camera-Direct-v0: 512-4096 envs

Classic physics (4096 / 8192 / 16384 envs):

  • Isaac-Ant-Direct-v0, Isaac-Cartpole-Direct-v0, Isaac-Humanoid-Direct-v0

Locomotion (4096 envs):

  • Isaac-Velocity-Rough-Anymal-C-v0, Isaac-Velocity-Rough-H1-v0, Isaac-Velocity-Rough-G1-v0

Manipulation (128-8192 envs):

  • Isaac-Reach-Franka-v0, Isaac-Factory-GearMesh-Direct-v0

Output Files

  • benchmark<type><task>_<timestamp>.json — main results file
  • kit.log — execution log (if --/log/file= is set via --kit_args)
  • .tracy / .nsys-rep — profiling traces (only with profiling args)

JSON structure

Array of phase objects, each with phasename, measurements (list of {name, data, type, unit}), and metadata (list of {name, data, type}). Phases: benchmarkinfo, startup, runtime, hardwareinfo, versioninfo. RL benchmarks add a train phase.