RoboWBC NVIDIA Comparison
This page is generated automatically from normalized ORT-cpp-sonic and ORT-rs benchmark artifacts. It keeps the benchmark vocabulary aligned with the codebase instead of mixing provider labels with legacy stack names.
Canonical variant families: cpu-baseline / cuda / trt. Canonical rendered variants: cpu-baseline / cuda-ORT-cpp-sonic / cuda-ORT-rs / trt-ORT-cpp-sonic / trt-ORT-rs. Decoupled WBC remains CPU-only in this phase and stays blocked on non-CPU rows rather than being approximated.
Host fingerprint(s): runnervmeorf1 | Linux 6.17.0-1010-azure | x86_64 | AMD EPYC 7763 64-Core Processor
cpu-baseline Matrix
This family keeps the ORT-cpp-sonic baseline beside ORT-rs on the same requested provider. Decoupled WBC remains CPU-only in this phase, so non-CPU rows stay blocked instead of being relabeled.
Host fingerprint: runnervmeorf1 | Linux 6.17.0-1010-azure | x86_64 | AMD EPYC 7763 64-Core Processor
| Path group | Case | ORT-cpp-sonic | ORT-rs | ORT-rs / ORT-cpp-sonic (p50) | Why it matters | Artifacts |
|---|---|---|---|---|---|---|
| Planner only |
gear_sonic/planner_only_cold_start
Standalone planner_sonic.onnx call on the published slow-walk velocity contract from a standing context.
|
p50 93.650 ms; p95 95.450 ms; hz n/a | p50 91.114 ms; p95 92.106 ms; hz n/a | 0.97x | This is the standalone planner cost. If it regresses, the locomotion planner itself is the bottleneck before encoder or decoder work is even considered. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Planner only |
gear_sonic/planner_only_steady_state
Standalone planner_sonic.onnx call after one warm planner invocation on the same published slow-walk contract.
|
p50 92.800 ms; p95 95.149 ms; hz n/a | p50 91.342 ms; p95 95.538 ms; hz n/a | 0.98x | This isolates the steady planner cost once the session is warm, so it can be compared directly against the full velocity path and the tracking-only path. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Encoder + decoder only |
gear_sonic/encoder_decoder_only_tracking_tick
Encoder plus decoder standing-placeholder tracking tick with planner loaded but not executed on that measurement.
|
p50 3.175 ms; p95 3.790 ms; hz n/a | p50 3.229 ms; p95 3.394 ms; hz n/a | 1.02x | This is the standalone tracking-path cost. If this row regresses while planner-only stays flat, the optimization target is the encoder+decoder path rather than locomotion planning. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Full velocity tick |
gear_sonic/full_velocity_tick_cold_start
First full velocity-policy tick after reset on the live published planner_sonic velocity path.
|
p50 95.926 ms; p95 97.138 ms; hz n/a | p50 95.187 ms; p95 96.415 ms; hz n/a | 0.99x | This is the operator-visible cold-start cost on the real velocity path, where planner, encoder, and decoder all participate in one control tick. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Full velocity tick |
gear_sonic/full_velocity_tick_steady_state
Full velocity-policy tick after planner bootstrap with no replan boundary pending.
|
p50 3.426 ms; p95 3.571 ms; hz n/a | p50 3.554 ms; p95 3.666 ms; hz n/a | 1.04x | This is the steady-state full control-tick cost on the live velocity path. It is the matched-path number most likely to dominate long-running locomotion loops. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Full velocity tick |
gear_sonic/full_velocity_tick_replan_boundary
Full velocity-policy tick at the default 0.3 m/s slow-walk replan boundary, where the live path requests fresh planner work.
|
p50 3.540 ms; p95 3.776 ms; hz n/a | p50 3.706 ms; p95 4.339 ms; hz n/a | 1.05x | The old ambiguous replan row is now explicit: this measures one live control tick exactly at the replan boundary instead of blending planner-only and tracking-only costs under one label. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Decoupled WBC |
decoupled_wbc/walk_predict
GR00T G1 history contract with a movement command that routes to the walk checkpoint.
|
p50 345.426 us; p95 375.402 us; hz n/a | p50 57.209 us; p95 57.698 us; hz n/a | 0.17x | This row captures the locomotion path people hit while actually moving, not the standing fallback. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Decoupled WBC |
decoupled_wbc/balance_predict
GR00T G1 history contract with a near-zero command that routes to the balance checkpoint.
|
p50 351.673 us; p95 417.155 us; hz n/a | p50 56.749 us; p95 57.276 us; hz n/a | 0.16x | This row makes the command-magnitude model switch explicit instead of hiding it behind one average number. |
ORT-cpp-sonic JSON ORT-rs JSON |
| GEAR-Sonic end-to-end |
gear_sonic/end_to_end_cli_loop
RoboWBC CLI loop running configs/sonic_g1.toml through the synthetic transport with a JSON report, after rewriting all three GEAR-Sonic provider blocks to the requested provider.
|
p50 3.573 ms; p95 4.192 ms; hz 48.867 Hz | p50 3.662 ms; p95 4.224 ms; hz 44.454 Hz | 1.02x | This is the full deployment-loop question: can the live velocity path hold frequency end to end on the requested provider, not just in one isolated inference call? |
ORT-cpp-sonic JSON ORT-rs JSON |
| Decoupled WBC |
decoupled_wbc/end_to_end_cli_loop
RoboWBC CLI loop running configs/decoupled_g1.toml through the synthetic transport with a JSON report.
|
p50 364.171 us; p95 397.204 us; hz 49.805 Hz | p50 218.924 us; p95 361.136 us; hz 44.505 Hz | 0.60x | If the loop holds up here, the comparison story can move beyond one policy tick and toward deployable control loops. |
ORT-cpp-sonic JSON ORT-rs JSON |
cuda Matrix
This family keeps the ORT-cpp-sonic baseline beside ORT-rs on the same requested provider. Decoupled WBC remains CPU-only in this phase, so non-CPU rows stay blocked instead of being relabeled.
Host fingerprint: runnervmeorf1 | Linux 6.17.0-1010-azure | x86_64 | AMD EPYC 7763 64-Core Processor
| Path group | Case | ORT-cpp-sonic | ORT-rs | ORT-rs / ORT-cpp-sonic (p50) | Why it matters | Artifacts |
|---|---|---|---|---|---|---|
| Planner only |
gear_sonic/planner_only_cold_start
Standalone planner_sonic.onnx call on the published slow-walk velocity contract from a standing context.
|
blocked; Requested provider `cuda` could not run on the ORT-cpp-sonic GEAR-Sonic harness. Exact runtime output: [0;93m2026-05-15 06:12:59.060955473 [W:onnxruntime:gear_sonic_official, device_discovery.cc:131 GetPciBusId] Skipping pci_bus_id for PCI path at "/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/5620e0c7-8062-4dce-aeb7-520c7ef76171" because filename ""5620e0c7-8062-4dce-aeb7-520c7ef76171"" dit not match expected pattern of [0-9a-f]+:[0-9a-f]+:[0-9a-f]+[.][0-9a-f]+[m error: failed to configure provider `cuda`: CUDA execution provider is not enabled in this build. | blocked; Requested provider `cuda` could not run on the ORT-rs benchmark path. Exact runtime output: [1m[92m Finished[0m `bench` profile [optimized] target(s) in 0.26s [1m[92m Running[0m benches/inference.rs (target/release/deps/inference-b904ca4f10423f76) Gnuplot not found, using plotters backend thread 'main' (6170) panicked at crates/robowbc-ort/benches/inference.rs:372:39: policy should build: InferenceFailed("session creation failed: CUDA execution provider is not enabled in this build.") note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace [1m[91merror[0m: bench failed, to rerun pass `-p robowbc-ort --bench inference` | n/a | This is the standalone planner cost. If it regresses, the locomotion planner itself is the bottleneck before encoder or decoder work is even considered. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Planner only |
gear_sonic/planner_only_steady_state
Standalone planner_sonic.onnx call after one warm planner invocation on the same published slow-walk contract.
|
blocked; Requested provider `cuda` could not run on the ORT-cpp-sonic GEAR-Sonic harness. Exact runtime output: [0;93m2026-05-15 06:12:59.089376779 [W:onnxruntime:gear_sonic_official, device_discovery.cc:131 GetPciBusId] Skipping pci_bus_id for PCI path at "/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/5620e0c7-8062-4dce-aeb7-520c7ef76171" because filename ""5620e0c7-8062-4dce-aeb7-520c7ef76171"" dit not match expected pattern of [0-9a-f]+:[0-9a-f]+:[0-9a-f]+[.][0-9a-f]+[m error: failed to configure provider `cuda`: CUDA execution provider is not enabled in this build. | blocked; Requested provider `cuda` could not run on the ORT-rs benchmark path. Exact runtime output: [1m[92m Finished[0m `bench` profile [optimized] target(s) in 0.25s [1m[92m Running[0m benches/inference.rs (target/release/deps/inference-b904ca4f10423f76) Gnuplot not found, using plotters backend thread 'main' (6180) panicked at crates/robowbc-ort/benches/inference.rs:372:39: policy should build: InferenceFailed("session creation failed: CUDA execution provider is not enabled in this build.") note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace [1m[91merror[0m: bench failed, to rerun pass `-p robowbc-ort --bench inference` | n/a | This isolates the steady planner cost once the session is warm, so it can be compared directly against the full velocity path and the tracking-only path. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Encoder + decoder only |
gear_sonic/encoder_decoder_only_tracking_tick
Encoder plus decoder standing-placeholder tracking tick with planner loaded but not executed on that measurement.
|
blocked; Requested provider `cuda` could not run on the ORT-cpp-sonic GEAR-Sonic harness. Exact runtime output: [0;93m2026-05-15 06:12:59.117546560 [W:onnxruntime:gear_sonic_official, device_discovery.cc:131 GetPciBusId] Skipping pci_bus_id for PCI path at "/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/5620e0c7-8062-4dce-aeb7-520c7ef76171" because filename ""5620e0c7-8062-4dce-aeb7-520c7ef76171"" dit not match expected pattern of [0-9a-f]+:[0-9a-f]+:[0-9a-f]+[.][0-9a-f]+[m error: failed to configure provider `cuda`: CUDA execution provider is not enabled in this build. | blocked; Requested provider `cuda` could not run on the ORT-rs benchmark path. Exact runtime output: [1m[92m Finished[0m `bench` profile [optimized] target(s) in 0.25s [1m[92m Running[0m benches/inference.rs (target/release/deps/inference-b904ca4f10423f76) Gnuplot not found, using plotters backend thread 'main' (6190) panicked at crates/robowbc-ort/benches/inference.rs:372:39: policy should build: InferenceFailed("session creation failed: CUDA execution provider is not enabled in this build.") note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace [1m[91merror[0m: bench failed, to rerun pass `-p robowbc-ort --bench inference` | n/a | This is the standalone tracking-path cost. If this row regresses while planner-only stays flat, the optimization target is the encoder+decoder path rather than locomotion planning. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Full velocity tick |
gear_sonic/full_velocity_tick_cold_start
First full velocity-policy tick after reset on the live published planner_sonic velocity path.
|
blocked; Requested provider `cuda` could not run on the ORT-cpp-sonic GEAR-Sonic harness. Exact runtime output: [0;93m2026-05-15 06:12:59.144961416 [W:onnxruntime:gear_sonic_official, device_discovery.cc:131 GetPciBusId] Skipping pci_bus_id for PCI path at "/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/5620e0c7-8062-4dce-aeb7-520c7ef76171" because filename ""5620e0c7-8062-4dce-aeb7-520c7ef76171"" dit not match expected pattern of [0-9a-f]+:[0-9a-f]+:[0-9a-f]+[.][0-9a-f]+[m error: failed to configure provider `cuda`: CUDA execution provider is not enabled in this build. | blocked; Requested provider `cuda` could not run on the ORT-rs benchmark path. Exact runtime output: [1m[92m Finished[0m `bench` profile [optimized] target(s) in 0.25s [1m[92m Running[0m benches/inference.rs (target/release/deps/inference-b904ca4f10423f76) Gnuplot not found, using plotters backend thread 'main' (6200) panicked at crates/robowbc-ort/benches/inference.rs:372:39: policy should build: InferenceFailed("session creation failed: CUDA execution provider is not enabled in this build.") note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace [1m[91merror[0m: bench failed, to rerun pass `-p robowbc-ort --bench inference` | n/a | This is the operator-visible cold-start cost on the real velocity path, where planner, encoder, and decoder all participate in one control tick. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Full velocity tick |
gear_sonic/full_velocity_tick_steady_state
Full velocity-policy tick after planner bootstrap with no replan boundary pending.
|
blocked; Requested provider `cuda` could not run on the ORT-cpp-sonic GEAR-Sonic harness. Exact runtime output: [0;93m2026-05-15 06:12:59.172240959 [W:onnxruntime:gear_sonic_official, device_discovery.cc:131 GetPciBusId] Skipping pci_bus_id for PCI path at "/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/5620e0c7-8062-4dce-aeb7-520c7ef76171" because filename ""5620e0c7-8062-4dce-aeb7-520c7ef76171"" dit not match expected pattern of [0-9a-f]+:[0-9a-f]+:[0-9a-f]+[.][0-9a-f]+[m error: failed to configure provider `cuda`: CUDA execution provider is not enabled in this build. | blocked; Requested provider `cuda` could not run on the ORT-rs benchmark path. Exact runtime output: [1m[92m Finished[0m `bench` profile [optimized] target(s) in 0.25s [1m[92m Running[0m benches/inference.rs (target/release/deps/inference-b904ca4f10423f76) Gnuplot not found, using plotters backend thread 'main' (6210) panicked at crates/robowbc-ort/benches/inference.rs:372:39: policy should build: InferenceFailed("session creation failed: CUDA execution provider is not enabled in this build.") note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace [1m[91merror[0m: bench failed, to rerun pass `-p robowbc-ort --bench inference` | n/a | This is the steady-state full control-tick cost on the live velocity path. It is the matched-path number most likely to dominate long-running locomotion loops. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Full velocity tick |
gear_sonic/full_velocity_tick_replan_boundary
Full velocity-policy tick at the default 0.3 m/s slow-walk replan boundary, where the live path requests fresh planner work.
|
blocked; Requested provider `cuda` could not run on the ORT-cpp-sonic GEAR-Sonic harness. Exact runtime output: [0;93m2026-05-15 06:12:59.199650345 [W:onnxruntime:gear_sonic_official, device_discovery.cc:131 GetPciBusId] Skipping pci_bus_id for PCI path at "/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/5620e0c7-8062-4dce-aeb7-520c7ef76171" because filename ""5620e0c7-8062-4dce-aeb7-520c7ef76171"" dit not match expected pattern of [0-9a-f]+:[0-9a-f]+:[0-9a-f]+[.][0-9a-f]+[m error: failed to configure provider `cuda`: CUDA execution provider is not enabled in this build. | blocked; Requested provider `cuda` could not run on the ORT-rs benchmark path. Exact runtime output: [1m[92m Finished[0m `bench` profile [optimized] target(s) in 0.25s [1m[92m Running[0m benches/inference.rs (target/release/deps/inference-b904ca4f10423f76) Gnuplot not found, using plotters backend thread 'main' (6220) panicked at crates/robowbc-ort/benches/inference.rs:372:39: policy should build: InferenceFailed("session creation failed: CUDA execution provider is not enabled in this build.") note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace [1m[91merror[0m: bench failed, to rerun pass `-p robowbc-ort --bench inference` | n/a | The old ambiguous replan row is now explicit: this measures one live control tick exactly at the replan boundary instead of blending planner-only and tracking-only costs under one label. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Decoupled WBC |
decoupled_wbc/walk_predict
GR00T G1 history contract with a movement command that routes to the walk checkpoint.
|
blocked; decoupled_wbc/walk_predict stays CPU-only in this phase. Provider `cuda` is not wired on both benchmark implementations for Decoupled WBC, so the row is blocked instead of quietly relabeling a CPU measurement. | blocked; decoupled_wbc/walk_predict stays CPU-only in this phase. Provider `cuda` is not wired on both benchmark implementations for Decoupled WBC, so the row is blocked instead of quietly relabeling a CPU measurement. | n/a | This row captures the locomotion path people hit while actually moving, not the standing fallback. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Decoupled WBC |
decoupled_wbc/balance_predict
GR00T G1 history contract with a near-zero command that routes to the balance checkpoint.
|
blocked; decoupled_wbc/balance_predict stays CPU-only in this phase. Provider `cuda` is not wired on both benchmark implementations for Decoupled WBC, so the row is blocked instead of quietly relabeling a CPU measurement. | blocked; decoupled_wbc/balance_predict stays CPU-only in this phase. Provider `cuda` is not wired on both benchmark implementations for Decoupled WBC, so the row is blocked instead of quietly relabeling a CPU measurement. | n/a | This row makes the command-magnitude model switch explicit instead of hiding it behind one average number. |
ORT-cpp-sonic JSON ORT-rs JSON |
| GEAR-Sonic end-to-end |
gear_sonic/end_to_end_cli_loop
RoboWBC CLI loop running configs/sonic_g1.toml through the synthetic transport with a JSON report, after rewriting all three GEAR-Sonic provider blocks to the requested provider.
|
blocked; Requested provider `cuda` could not run on the ORT-cpp-sonic GEAR-Sonic harness. Exact runtime output: [0;93m2026-05-15 06:12:59.230595223 [W:onnxruntime:gear_sonic_official, device_discovery.cc:131 GetPciBusId] Skipping pci_bus_id for PCI path at "/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/5620e0c7-8062-4dce-aeb7-520c7ef76171" because filename ""5620e0c7-8062-4dce-aeb7-520c7ef76171"" dit not match expected pattern of [0-9a-f]+:[0-9a-f]+:[0-9a-f]+[.][0-9a-f]+[m error: failed to configure provider `cuda`: CUDA execution provider is not enabled in this build. | blocked; Requested provider `cuda` could not run on the ORT-rs benchmark path. Exact runtime output: [1m[92m Finished[0m `dev` profile [unoptimized + debuginfo] target(s) in 0.56s [1m[92m Running[0m `target/debug/robowbc run --config /tmp/tmpnuablqnb/sonic_g1.toml` while building policy "gear_sonic" caused by: failed to build policy 'gear_sonic': failed to build policy 'gear_sonic': inference failed: session creation failed: CUDA execution provider is not enabled in this build. | n/a | This is the full deployment-loop question: can the live velocity path hold frequency end to end on the requested provider, not just in one isolated inference call? |
ORT-cpp-sonic JSON ORT-rs JSON |
| Decoupled WBC |
decoupled_wbc/end_to_end_cli_loop
RoboWBC CLI loop running configs/decoupled_g1.toml through the synthetic transport with a JSON report.
|
blocked; decoupled_wbc/end_to_end_cli_loop stays CPU-only in this phase. Provider `cuda` is not wired on both benchmark implementations for Decoupled WBC, so the row is blocked instead of quietly relabeling a CPU measurement. | blocked; decoupled_wbc/end_to_end_cli_loop stays CPU-only in this phase. Provider `cuda` is not wired on both benchmark implementations for Decoupled WBC, so the row is blocked instead of quietly relabeling a CPU measurement. | n/a | If the loop holds up here, the comparison story can move beyond one policy tick and toward deployable control loops. |
ORT-cpp-sonic JSON ORT-rs JSON |
trt Matrix
This family keeps the ORT-cpp-sonic baseline beside ORT-rs on the same requested provider. Decoupled WBC remains CPU-only in this phase, so non-CPU rows stay blocked instead of being relabeled.
Host fingerprint: runnervmeorf1 | Linux 6.17.0-1010-azure | x86_64 | AMD EPYC 7763 64-Core Processor
| Path group | Case | ORT-cpp-sonic | ORT-rs | ORT-rs / ORT-cpp-sonic (p50) | Why it matters | Artifacts |
|---|---|---|---|---|---|---|
| Planner only |
gear_sonic/planner_only_cold_start
Standalone planner_sonic.onnx call on the published slow-walk velocity contract from a standing context.
|
blocked; Requested provider `tensor_rt` could not run on the ORT-cpp-sonic GEAR-Sonic harness. Exact runtime output: [0;93m2026-05-15 06:13:04.106424414 [W:onnxruntime:gear_sonic_official, device_discovery.cc:131 GetPciBusId] Skipping pci_bus_id for PCI path at "/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/5620e0c7-8062-4dce-aeb7-520c7ef76171" because filename ""5620e0c7-8062-4dce-aeb7-520c7ef76171"" dit not match expected pattern of [0-9a-f]+:[0-9a-f]+:[0-9a-f]+[.][0-9a-f]+[m error: failed to configure provider `tensor_rt`: TensorRT execution provider is not enabled in this build. | blocked; Requested provider `tensor_rt` could not run on the ORT-rs benchmark path. Exact runtime output: [1m[92m Finished[0m `bench` profile [optimized] target(s) in 0.25s [1m[92m Running[0m benches/inference.rs (target/release/deps/inference-b904ca4f10423f76) Gnuplot not found, using plotters backend thread 'main' (6261) panicked at crates/robowbc-ort/benches/inference.rs:372:39: policy should build: InferenceFailed("session creation failed: TensorRT execution provider is not enabled in this build.") note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace [1m[91merror[0m: bench failed, to rerun pass `-p robowbc-ort --bench inference` | n/a | This is the standalone planner cost. If it regresses, the locomotion planner itself is the bottleneck before encoder or decoder work is even considered. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Planner only |
gear_sonic/planner_only_steady_state
Standalone planner_sonic.onnx call after one warm planner invocation on the same published slow-walk contract.
|
blocked; Requested provider `tensor_rt` could not run on the ORT-cpp-sonic GEAR-Sonic harness. Exact runtime output: [0;93m2026-05-15 06:13:04.134225265 [W:onnxruntime:gear_sonic_official, device_discovery.cc:131 GetPciBusId] Skipping pci_bus_id for PCI path at "/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/5620e0c7-8062-4dce-aeb7-520c7ef76171" because filename ""5620e0c7-8062-4dce-aeb7-520c7ef76171"" dit not match expected pattern of [0-9a-f]+:[0-9a-f]+:[0-9a-f]+[.][0-9a-f]+[m error: failed to configure provider `tensor_rt`: TensorRT execution provider is not enabled in this build. | blocked; Requested provider `tensor_rt` could not run on the ORT-rs benchmark path. Exact runtime output: [1m[92m Finished[0m `bench` profile [optimized] target(s) in 0.25s [1m[92m Running[0m benches/inference.rs (target/release/deps/inference-b904ca4f10423f76) Gnuplot not found, using plotters backend thread 'main' (6271) panicked at crates/robowbc-ort/benches/inference.rs:372:39: policy should build: InferenceFailed("session creation failed: TensorRT execution provider is not enabled in this build.") note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace [1m[91merror[0m: bench failed, to rerun pass `-p robowbc-ort --bench inference` | n/a | This isolates the steady planner cost once the session is warm, so it can be compared directly against the full velocity path and the tracking-only path. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Encoder + decoder only |
gear_sonic/encoder_decoder_only_tracking_tick
Encoder plus decoder standing-placeholder tracking tick with planner loaded but not executed on that measurement.
|
blocked; Requested provider `tensor_rt` could not run on the ORT-cpp-sonic GEAR-Sonic harness. Exact runtime output: [0;93m2026-05-15 06:13:04.161635958 [W:onnxruntime:gear_sonic_official, device_discovery.cc:131 GetPciBusId] Skipping pci_bus_id for PCI path at "/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/5620e0c7-8062-4dce-aeb7-520c7ef76171" because filename ""5620e0c7-8062-4dce-aeb7-520c7ef76171"" dit not match expected pattern of [0-9a-f]+:[0-9a-f]+:[0-9a-f]+[.][0-9a-f]+[m error: failed to configure provider `tensor_rt`: TensorRT execution provider is not enabled in this build. | blocked; Requested provider `tensor_rt` could not run on the ORT-rs benchmark path. Exact runtime output: [1m[92m Finished[0m `bench` profile [optimized] target(s) in 0.25s [1m[92m Running[0m benches/inference.rs (target/release/deps/inference-b904ca4f10423f76) Gnuplot not found, using plotters backend thread 'main' (6281) panicked at crates/robowbc-ort/benches/inference.rs:372:39: policy should build: InferenceFailed("session creation failed: TensorRT execution provider is not enabled in this build.") note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace [1m[91merror[0m: bench failed, to rerun pass `-p robowbc-ort --bench inference` | n/a | This is the standalone tracking-path cost. If this row regresses while planner-only stays flat, the optimization target is the encoder+decoder path rather than locomotion planning. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Full velocity tick |
gear_sonic/full_velocity_tick_cold_start
First full velocity-policy tick after reset on the live published planner_sonic velocity path.
|
blocked; Requested provider `tensor_rt` could not run on the ORT-cpp-sonic GEAR-Sonic harness. Exact runtime output: [0;93m2026-05-15 06:13:04.189469052 [W:onnxruntime:gear_sonic_official, device_discovery.cc:131 GetPciBusId] Skipping pci_bus_id for PCI path at "/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/5620e0c7-8062-4dce-aeb7-520c7ef76171" because filename ""5620e0c7-8062-4dce-aeb7-520c7ef76171"" dit not match expected pattern of [0-9a-f]+:[0-9a-f]+:[0-9a-f]+[.][0-9a-f]+[m error: failed to configure provider `tensor_rt`: TensorRT execution provider is not enabled in this build. | blocked; Requested provider `tensor_rt` could not run on the ORT-rs benchmark path. Exact runtime output: [1m[92m Finished[0m `bench` profile [optimized] target(s) in 0.25s [1m[92m Running[0m benches/inference.rs (target/release/deps/inference-b904ca4f10423f76) Gnuplot not found, using plotters backend thread 'main' (6291) panicked at crates/robowbc-ort/benches/inference.rs:372:39: policy should build: InferenceFailed("session creation failed: TensorRT execution provider is not enabled in this build.") note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace [1m[91merror[0m: bench failed, to rerun pass `-p robowbc-ort --bench inference` | n/a | This is the operator-visible cold-start cost on the real velocity path, where planner, encoder, and decoder all participate in one control tick. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Full velocity tick |
gear_sonic/full_velocity_tick_steady_state
Full velocity-policy tick after planner bootstrap with no replan boundary pending.
|
blocked; Requested provider `tensor_rt` could not run on the ORT-cpp-sonic GEAR-Sonic harness. Exact runtime output: [0;93m2026-05-15 06:13:04.217384246 [W:onnxruntime:gear_sonic_official, device_discovery.cc:131 GetPciBusId] Skipping pci_bus_id for PCI path at "/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/5620e0c7-8062-4dce-aeb7-520c7ef76171" because filename ""5620e0c7-8062-4dce-aeb7-520c7ef76171"" dit not match expected pattern of [0-9a-f]+:[0-9a-f]+:[0-9a-f]+[.][0-9a-f]+[m error: failed to configure provider `tensor_rt`: TensorRT execution provider is not enabled in this build. | blocked; Requested provider `tensor_rt` could not run on the ORT-rs benchmark path. Exact runtime output: [1m[92m Finished[0m `bench` profile [optimized] target(s) in 0.25s [1m[92m Running[0m benches/inference.rs (target/release/deps/inference-b904ca4f10423f76) Gnuplot not found, using plotters backend thread 'main' (6301) panicked at crates/robowbc-ort/benches/inference.rs:372:39: policy should build: InferenceFailed("session creation failed: TensorRT execution provider is not enabled in this build.") note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace [1m[91merror[0m: bench failed, to rerun pass `-p robowbc-ort --bench inference` | n/a | This is the steady-state full control-tick cost on the live velocity path. It is the matched-path number most likely to dominate long-running locomotion loops. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Full velocity tick |
gear_sonic/full_velocity_tick_replan_boundary
Full velocity-policy tick at the default 0.3 m/s slow-walk replan boundary, where the live path requests fresh planner work.
|
blocked; Requested provider `tensor_rt` could not run on the ORT-cpp-sonic GEAR-Sonic harness. Exact runtime output: [0;93m2026-05-15 06:13:04.244675063 [W:onnxruntime:gear_sonic_official, device_discovery.cc:131 GetPciBusId] Skipping pci_bus_id for PCI path at "/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/5620e0c7-8062-4dce-aeb7-520c7ef76171" because filename ""5620e0c7-8062-4dce-aeb7-520c7ef76171"" dit not match expected pattern of [0-9a-f]+:[0-9a-f]+:[0-9a-f]+[.][0-9a-f]+[m error: failed to configure provider `tensor_rt`: TensorRT execution provider is not enabled in this build. | blocked; Requested provider `tensor_rt` could not run on the ORT-rs benchmark path. Exact runtime output: [1m[92m Finished[0m `bench` profile [optimized] target(s) in 0.25s [1m[92m Running[0m benches/inference.rs (target/release/deps/inference-b904ca4f10423f76) Gnuplot not found, using plotters backend thread 'main' (6311) panicked at crates/robowbc-ort/benches/inference.rs:372:39: policy should build: InferenceFailed("session creation failed: TensorRT execution provider is not enabled in this build.") note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace [1m[91merror[0m: bench failed, to rerun pass `-p robowbc-ort --bench inference` | n/a | The old ambiguous replan row is now explicit: this measures one live control tick exactly at the replan boundary instead of blending planner-only and tracking-only costs under one label. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Decoupled WBC |
decoupled_wbc/walk_predict
GR00T G1 history contract with a movement command that routes to the walk checkpoint.
|
blocked; decoupled_wbc/walk_predict stays CPU-only in this phase. Provider `tensor_rt` is not wired on both benchmark implementations for Decoupled WBC, so the row is blocked instead of quietly relabeling a CPU measurement. | blocked; decoupled_wbc/walk_predict stays CPU-only in this phase. Provider `tensor_rt` is not wired on both benchmark implementations for Decoupled WBC, so the row is blocked instead of quietly relabeling a CPU measurement. | n/a | This row captures the locomotion path people hit while actually moving, not the standing fallback. |
ORT-cpp-sonic JSON ORT-rs JSON |
| Decoupled WBC |
decoupled_wbc/balance_predict
GR00T G1 history contract with a near-zero command that routes to the balance checkpoint.
|
blocked; decoupled_wbc/balance_predict stays CPU-only in this phase. Provider `tensor_rt` is not wired on both benchmark implementations for Decoupled WBC, so the row is blocked instead of quietly relabeling a CPU measurement. | blocked; decoupled_wbc/balance_predict stays CPU-only in this phase. Provider `tensor_rt` is not wired on both benchmark implementations for Decoupled WBC, so the row is blocked instead of quietly relabeling a CPU measurement. | n/a | This row makes the command-magnitude model switch explicit instead of hiding it behind one average number. |
ORT-cpp-sonic JSON ORT-rs JSON |
| GEAR-Sonic end-to-end |
gear_sonic/end_to_end_cli_loop
RoboWBC CLI loop running configs/sonic_g1.toml through the synthetic transport with a JSON report, after rewriting all three GEAR-Sonic provider blocks to the requested provider.
|
blocked; Requested provider `tensor_rt` could not run on the ORT-cpp-sonic GEAR-Sonic harness. Exact runtime output: [0;93m2026-05-15 06:13:04.275764075 [W:onnxruntime:gear_sonic_official, device_discovery.cc:131 GetPciBusId] Skipping pci_bus_id for PCI path at "/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/5620e0c7-8062-4dce-aeb7-520c7ef76171" because filename ""5620e0c7-8062-4dce-aeb7-520c7ef76171"" dit not match expected pattern of [0-9a-f]+:[0-9a-f]+:[0-9a-f]+[.][0-9a-f]+[m error: failed to configure provider `tensor_rt`: TensorRT execution provider is not enabled in this build. | blocked; Requested provider `tensor_rt` could not run on the ORT-rs benchmark path. Exact runtime output: [1m[92m Finished[0m `dev` profile [unoptimized + debuginfo] target(s) in 0.56s [1m[92m Running[0m `target/debug/robowbc run --config /tmp/tmp7ly0zvgw/sonic_g1.toml` while building policy "gear_sonic" caused by: failed to build policy 'gear_sonic': failed to build policy 'gear_sonic': inference failed: session creation failed: TensorRT execution provider is not enabled in this build. | n/a | This is the full deployment-loop question: can the live velocity path hold frequency end to end on the requested provider, not just in one isolated inference call? |
ORT-cpp-sonic JSON ORT-rs JSON |
| Decoupled WBC |
decoupled_wbc/end_to_end_cli_loop
RoboWBC CLI loop running configs/decoupled_g1.toml through the synthetic transport with a JSON report.
|
blocked; decoupled_wbc/end_to_end_cli_loop stays CPU-only in this phase. Provider `tensor_rt` is not wired on both benchmark implementations for Decoupled WBC, so the row is blocked instead of quietly relabeling a CPU measurement. | blocked; decoupled_wbc/end_to_end_cli_loop stays CPU-only in this phase. Provider `tensor_rt` is not wired on both benchmark implementations for Decoupled WBC, so the row is blocked instead of quietly relabeling a CPU measurement. | n/a | If the loop holds up here, the comparison story can move beyond one policy tick and toward deployable control loops. |
ORT-cpp-sonic JSON ORT-rs JSON |
Rerun Commands
for provider in cpu cuda tensor_rt; do
python3 scripts/benchmarks/bench_robowbc_compare.py --all --provider "$provider"
python3 scripts/benchmarks/bench_nvidia_official.py --all --provider "$provider"
done
python3 scripts/benchmarks/render_nvidia_benchmark_summary.py --output artifacts/benchmarks/nvidia/SUMMARY.md
# or build the full static site bundle:
python3 scripts/site/build_site.py --output-dir /tmp/robowbc-site