Skip to content

Work: Investigate low MotrixSim physics throughput at 8k batched rollout #119

Closed

Description

@TATP-233

Work type

benchmark

Area

motrix

Problem

Benchmark evidence shows that motrixsim batched physics throughput is materially below mujoco.rollout on the same workload at num_envs=8192 and steps=20.

Robot MuJoCo SPS MotrixSim SPS Motrix / MuJoCo Slowdown
g1 188176.2 24637.7 13.1% 7.64x
go2 442776.2 99133.8 22.4% 4.47x
go1 435931.1 147402.1 33.8% 2.96x

This gap is large enough to affect backend selection and training throughput expectations for the Motrix path.

Reproduction commands:

uv run python benchmark/benchmark_mujoco_vs_motrix.py --xml src/unilab/assets/robots/g1/scene_flat.xml
uv run python benchmark/benchmark_mujoco_vs_motrix.py --xml src/unilab/assets/robots/go2/scene_flat.xml
uv run python benchmark/benchmark_mujoco_vs_motrix.py --xml src/unilab/assets/robots/go1/scene_flat.xml

Observed output snippets:

mujoco_rollout_multi | 8192 | 188176.2 | 0.8707
motrixsim            | 8192 |  24637.7 | 6.6500

mujoco_rollout_multi | 8192 | 442776.2 | 0.3700
motrixsim            | 8192 |  99133.8 | 1.6527

mujoco_rollout_multi | 8192 | 435931.1 | 0.3758
motrixsim            | 8192 | 147402.1 | 1.1115

Deliverable

  • Root-cause analysis for where time is going in the motrixsim benchmark path.
  • Backend or adapter-layer optimization, or an explicit documented limitation if the gap is fundamental.
  • Before/after benchmark artifact for g1, go2, and go1 under identical settings.

Definition of done

  • Reproduce the baseline gap with benchmark/benchmark_mujoco_vs_motrix.py.
  • Identify the main hotspot(s) with profiler or instrumentation evidence.
  • Land fixes in the backend or adapter layer rather than script-only workarounds.
  • Re-run and attach updated results for g1, go2, and go1 at num_envs=8192, steps=20.
  • Document whether the remaining gap is expected, a bug, or a current backend limitation.

Dependencies and blockers

  • None known yet. If the hotspot is inside MotrixSim internals, additional profiler support may be needed.

Proposed owner

Unassigned for now. Motrix backend owner to confirm.

Validation plan

  • uv run python benchmark/benchmark_mujoco_vs_motrix.py --xml src/unilab/assets/robots/g1/scene_flat.xml
  • uv run python benchmark/benchmark_mujoco_vs_motrix.py --xml src/unilab/assets/robots/go2/scene_flat.xml
  • uv run python benchmark/benchmark_mujoco_vs_motrix.py --xml src/unilab/assets/robots/go1/scene_flat.xml
  • If needed, add profiling or per-step timing around mtx.load_model, mtx.SceneData(...), warmup, and model.step(data) to isolate the bottleneck.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions