CudaRobotics benchmark results are meant to be regenerated from source, not only read from checked-in figures. The primary entry point is:
python3 scripts/run_repro_suite.py --suite smokeThe runner writes per-benchmark CSV files, Markdown summaries, logs, a human-readable report, and a
machine-readable manifest under build/repro_suite/ by default. It does not hide the underlying commands:
every command line is recorded in manifest.json and report.md.
| Suite | Scope | Use |
|---|---|---|
smoke |
One tiny Diff-MPPI dynamic-navigation run | Fast GPU sanity check and CI dry-run validation |
diff-mppi |
Dynamic navigation, CartPole, dynamic bicycle, 2-link arm, and 7-DOF arm quick runs | Main research reproduction pass without optional MuJoCo |
standard |
Optional MuJoCo pendulum and reacher quick runs | Standard-environment check when MuJoCo is installed |
all |
diff-mppi plus optional MuJoCo tasks |
Broadest quick reproduction suite |
List the exact suite contents with:
python3 scripts/run_repro_suite.py --listPlan a run without requiring CUDA, MuJoCo, or benchmark binaries:
python3 scripts/run_repro_suite.py --dry-run --suite smokeBuild selected targets before running:
python3 scripts/run_repro_suite.py --build --suite diff-mppiRun one explicit task:
python3 scripts/run_repro_suite.py --only dynamic_bicycle_quick --buildGenerate plots in addition to CSV and Markdown summaries:
python3 scripts/run_repro_suite.py --suite diff-mppi --plotsUse a separate output directory for a paper or release snapshot:
python3 scripts/run_repro_suite.py --suite all --output-dir build/repro_suite_$(date +%Y%m%d)Each task writes:
<task>.csv: raw per-episode benchmark rows<task>_summary.md: summary tables fromscripts/summarize_diff_mppi.pylogs/<task>.log: benchmark stdout/stderrlogs/<task>_summary.log: summarizer stdout/stderrplots/<task>/: optional figures when--plotsis setreport.md: human-readable run overview with task statuses, links, logs, and commandsmanifest.json: commands, outputs, statuses, timings, and git commit
Regenerate a report from an existing manifest with:
python3 scripts/render_repro_report.py --manifest build/repro_suite/manifest.jsonOptional MuJoCo tasks are skipped when their binaries are missing unless --strict-optional is set.
This keeps the main suite usable on CUDA-only machines while still documenting how to reproduce the
standard-environment checks.
The CTest target check_repro_suite_dry_run validates the runner and manifest path without requiring a GPU:
ctest --test-dir build -R check_repro_suite_dry_run --output-on-failureThe actual benchmark suites remain GPU/runtime checks and should be run on a machine with a working NVIDIA CUDA stack.