-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Adds local benchmarking tools with increased flexibility #4550
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adds local benchmarking tools with increased flexibility #4550
Conversation
Greptile OverviewGreptile SummaryThis PR introduces a self-contained benchmarking framework that removes the hard dependency on Key additions:
Changes:
Issues found:
Confidence Score: 4/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant User
participant Benchmark as BaseIsaacLabBenchmark
participant Backend as MetricsBackend
participant Recorders as System Recorders
participant Monitor as BenchmarkMonitor
participant Training as RL Training Loop
User->>Benchmark: Initialize(backend_type, output_path)
Benchmark->>Backend: get_instance(backend_type)
Backend-->>Benchmark: Return backend (JSON/Osmo/OmniPerf)
Benchmark->>Recorders: Initialize CPUInfo, GPUInfo, MemoryInfo, VersionInfo
Recorders-->>Benchmark: Recorders ready
alt Blocking RL Training
User->>Monitor: with BenchmarkMonitor(benchmark)
Monitor->>Monitor: Start background thread
loop Training iterations
Training->>Training: runner.learn() [blocking]
Monitor->>Recorders: update_manual_recorders() [async, every 1s]
Recorders->>Recorders: Collect CPU/GPU/Memory stats using Welford algorithm
end
Training-->>Monitor: Training complete
Monitor->>Monitor: Stop background thread
else Non-blocking workflow
User->>Benchmark: update_manual_recorders() [manual calls]
Benchmark->>Recorders: update()
end
User->>Benchmark: add_measurement(phase_name, measurement)
Benchmark->>Benchmark: Store in TestPhase
User->>Benchmark: finalize()
Benchmark->>Recorders: get_data()
Recorders-->>Benchmark: Return measurements & metadata
Benchmark->>Backend: add_metrics(test_phase)
Backend->>Backend: Accumulate phases
Benchmark->>Backend: finalize(output_path, filename)
Backend->>Backend: Write JSON/Osmo/OmniPerf file
Backend-->>User: Results written to file
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
6 files reviewed, 1 comment
…rting the simulation app.
… attach to the app update callback.
… attach to the app update callback.
e6330fa to
a55f295
Compare
kellyguo11
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like some mismatch in names between the recorders and test cases, seeing failures in a couple of tests:
| /workspace/isaaclab/source/isaaclab_physx/test/assets/test_articulation.py | FAILED | 0.00 | -1/0 |
| /workspace/isaaclab/source/isaaclab/test/benchmark/test_benchmark_core.py | FAILED | 0.62 | 14/19 |
| /workspace/isaaclab/source/isaaclab/test/benchmark/test_recorders.py | FAILED | 2.95 | 26/43 |
Signed-off-by: Kelly Guo <kellyg@nvidia.com>
Signed-off-by: Kelly Guo <kellyg@nvidia.com>
Co-authored-by: Kelly Guo <kellyg@nvidia.com> Signed-off-by: Antoine RICHARD <antoiner@nvidia.com>
Co-authored-by: Kelly Guo <kellyg@nvidia.com> Signed-off-by: Antoine RICHARD <antoiner@nvidia.com>
Co-authored-by: Kelly Guo <kellyg@nvidia.com> Signed-off-by: Antoine RICHARD <antoiner@nvidia.com>
Co-authored-by: Kelly Guo <kellyg@nvidia.com> Signed-off-by: Antoine RICHARD <antoiner@nvidia.com>
Co-authored-by: Kelly Guo <kellyg@nvidia.com> Signed-off-by: Antoine RICHARD <antoiner@nvidia.com>
Co-authored-by: Kelly Guo <kellyg@nvidia.com> Signed-off-by: Antoine RICHARD <antoiner@nvidia.com>
Signed-off-by: Kelly Guo <kellyg@nvidia.com>
Signed-off-by: Kelly Guo <kellyg@nvidia.com>
Description
Introduces a self-contained benchmarking framework that removes the hard dependency on isaacsim.benchmark.services.
Key additions:
Updated:
Type of change
Checklist
pre-commitchecks with./isaaclab.sh --formatconfig/extension.tomlfileCONTRIBUTORS.mdor my name already exists there