Adds support to benchmark scripts when Isaac Sim is not running#4501
Adds support to benchmark scripts when Isaac Sim is not running#4501kellyguo11 wants to merge 3 commits intoisaac-sim:dev/newtonfrom
Conversation
Greptile OverviewGreptile SummaryThis PR adds support for running benchmark scripts ( Key Changes
Issues Found
Confidence Score: 4/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant User
participant Script as Benchmark Script
participant ArgParser as Argument Parser
participant AppLauncher as AppLauncher (Kit)
participant BenchmarkKit as BaseIsaacBenchmark (Kit)
participant BenchmarkStandalone as StandaloneBenchmark
participant Env as Gym Environment
User->>Script: Run benchmark with/without --kit flag
Script->>ArgParser: Parse arguments
alt --kit flag present
ArgParser->>ArgParser: Import AppLauncher
ArgParser->>ArgParser: Add AppLauncher args
Script->>AppLauncher: Launch Isaac Sim
AppLauncher-->>Script: simulation_app
Script->>BenchmarkKit: Create BaseIsaacBenchmark
BenchmarkKit-->>Script: benchmark instance
else --kit flag absent (default)
Script->>BenchmarkStandalone: Create StandaloneBenchmark
BenchmarkStandalone-->>Script: benchmark instance
end
Script->>Script: Import required libraries
Script->>Env: Create gym environment
Env-->>Script: env
Script->>Script: Set benchmark phase
loop For each frame/iteration
Script->>Env: env.step(action)
Env-->>Script: observation, reward, done, info
Script->>Script: Record timing metrics
end
Script->>Script: store_measurements()
Script->>Script: Log metrics (startup, runtime)
Script->>Script: benchmark.stop()
alt --kit flag present
Script->>AppLauncher: Close simulation_app
end
Script-->>User: Benchmark results saved
|
| if args_cli.kit: | ||
| from isaaclab.app import AppLauncher |
There was a problem hiding this comment.
AppLauncher is imported twice when --kit is enabled (lines 44 and 64). Remove this duplicate import.
| if args_cli.kit: | |
| from isaaclab.app import AppLauncher | |
| if args_cli.kit: |
| if args_cli.kit: | ||
| from isaaclab.app import AppLauncher |
There was a problem hiding this comment.
AppLauncher is imported twice when --kit is enabled (lines 44 and 64). Remove this duplicate import.
| if args_cli.kit: | |
| from isaaclab.app import AppLauncher | |
| if args_cli.kit: |
| if args_cli.kit: | ||
| from isaaclab.app import AppLauncher |
There was a problem hiding this comment.
AppLauncher is imported twice when --kit is enabled (lines 60 and 80). Remove this duplicate import.
| if args_cli.kit: | |
| from isaaclab.app import AppLauncher | |
| if args_cli.kit: |
Additional Comments (1)
|
|
@kellyguo11 I think there is some overlapp with #4497 wrt to the benchmarking too. I don't think we shoud even rely on IS tools this way we don't have to follow their template / format. |
I'm good with that as well if we can capture all the necessary data around simulation and rendering. Sounds like Isaac Sim is also making some breaking changes to their benchmarking tool, so we can also save some work to migrate. |
Description
Allows running benchmark_non_rl, benchmark_rsl_rl, and benchmark_rlgames scripts without launching Isaac Sim. This will allow us to gather similar timing data for startup time and FPS metrics without using the Isaac Sim benchmarking extension.
Without Isaac Sim, we are not able to capture Render and Physics simulation data directly from the scripts, but there's other benchmarking work going on where we can inject timers into the code to capture these.
By default, it will not launch Isaac Sim unless
--kitis added to the command.Type of change
Checklist
pre-commitchecks with./isaaclab.sh --formatconfig/extension.tomlfileCONTRIBUTORS.mdor my name already exists there