npx skills add ...
npx skills add nvidia/omniperf --skill benchmark-isaaclab
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).
npx skills add nvidia/omniperf --skill benchmark-isaaclab
Parameter references may be outdated. Always verify with
./isaaclab.sh -p <script> --help. For profiling details (Tracy, Nsight), see theprofilingskill. For installation, see theinstall-isaaclabskill.
See the install-isaaclab skill for installation (clone, conda env, Isaac Sim linking).
profiling skillperf-tuning skillprofiling skillAll in scripts/benchmarks/. Run via ./isaaclab.sh -p scripts/benchmarks/<script>.py.
| Script | What it measures | Key params |
|---|---|---|
benchmark_non_rl.py | Environment step FPS (most common) | --task, --num_envs, --num_frames |
benchmark_rlgames.py | RL-Games training throughput | --task, --num_envs, --max_iterations |
benchmark_rsl_rl.py | RSL-RL training throughput | --task, --num_envs, --max_iterations |
benchmark_cameras.py | Camera system FPS + autotune | --num_tiled_cameras, --num_standard_cameras, --height, --width, --autotune |
benchmark_load_robot.py | Robot loading time | --num_envs, --robot {anymal_d,h1,g1} |
benchmark_startup.py | App startup time profiling | --task (required), --num_envs, --top_n |
benchmark_lazy_export.py | Lazy export/import speed | --iterations, --tasks (stdout only, no JSON backend) |
benchmark_view_comparison.py | XformPrimView vs PhysX | --num_envs, --num_iterations, --profile (stdout/cProfile, no JSON backend) |
benchmark_xform_prim_view.py | XformPrimView performance | --num_envs, --num_iterations, --profile (stdout/cProfile, no JSON backend) |
Note:
benchmark_lazy_export.py,benchmark_view_comparison.py, andbenchmark_xform_prim_view.pydo NOT support--benchmark_backendor--output_path. They output results to stdout. Use--profile(where available) to save cProfile.proffiles.
Common params: --device, --enable_cameras, --benchmark_backend, --output_path, --distributed
Note:
--headlessis deprecated. Omit--vizfor headless mode, or use--viz none.
Passing Kit args (for profiling, output control, etc.):
Isaac Lab uses UNDERSCORES (standard argparse). Isaac Sim uses HYPHENS.
Mixing them up is a common source of silent misconfiguration.
Camera tasks (add --enable_cameras):
Isaac-Cartpole-RGB-Camera-Direct-v0: 512-4096 envsClassic physics (4096 / 8192 / 16384 envs):
Isaac-Ant-Direct-v0, Isaac-Cartpole-Direct-v0, Isaac-Humanoid-Direct-v0Locomotion (4096 envs):
Isaac-Velocity-Rough-Anymal-C-v0, Isaac-Velocity-Rough-H1-v0, Isaac-Velocity-Rough-G1-v0Manipulation (128-8192 envs):
Isaac-Reach-Franka-v0, Isaac-Factory-GearMesh-Direct-v0benchmark_<type>_<task>_<timestamp>.json — main results filekit.log — execution log (if --/log/file= is set via --kit_args)*.tracy / *.nsys-rep — profiling traces (only with profiling args)Array of phase objects, each with phase_name, measurements (list of {name, data, type, unit}),
and metadata (list of {name, data, type}). Phases: benchmark_info, startup, runtime,
hardware_info, version_info. RL benchmarks add a train phase.
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 assetsIsaac Lab: --num_envs 4096 --num_frames 100 --enable_cameras
Isaac Sim: --num-cameras 8 --num-gpus 1 --num-frames 600