# Plan-Bind D2 results Source: `/home/marinelab/code/plan-bind-d2/experiments/261028-plan-bind-d2-latency/outputs/full`. Success and stage rates in percent; 50 seeded episodes per cell unless noted. ## Inference time of one call (batch 1) A call: preprocess, encoders on the observation frames, then the head (bsp10: DDIM denoise and spline decode; planbind: plan and bind, the slower call). Latency frames: the call's p95 rounded up to frames at 30 fps, the latency each policy is evaluated at below. | Bench | Hardware | Policy | Call p50 (ms) | Call p95 (ms) | Bind-only p50 (ms) | Latency frames | select_action mean (ms) | Stage p50 (ms) | |---|---|---|---|---|---|---|---|---| | cpu | cpu x4 | bsp10 | 590.0 | 628.9 | - | 19 | 27.1 | preprocess 0.7, encode 58.0, denoise 528.4, decode 0.2 | | cpu | cpu x4 | onestep | 125.9 | 130.1 | - | 4 | 32.0 | preprocess 0.8, encode 60.2, onestep 64.5 | | cpu | cpu x4 | planbind | 162.2 | 164.7 | 113.0 | 5 | 30.2 | preprocess 1.0, encode 50.0, plan 49.0, bind 62.1 | | cuda | NVIDIA GeForce RTX 5050 | bsp10 | 169.7 | 170.2 | - | 6 | 8.4 | preprocess 1.3, encode 4.2, denoise 163.9, decode 0.3 | | cuda | NVIDIA GeForce RTX 5050 | onestep | 22.1 | 22.2 | - | 1 | 5.2 | preprocess 1.3, encode 4.2, onestep 16.6 | | cuda | NVIDIA GeForce RTX 5050 | planbind | 38.7 | 38.9 | 22.1 | 2 | 5.8 | preprocess 1.3, encode 4.2, plan 16.5, bind 16.6 | | cuda_amp | NVIDIA GeForce RTX 5050 | bsp10 | 189.7 | 190.1 | - | 6 | 8.6 | preprocess 1.3, encode 3.7, denoise 184.4, decode 0.3 | | cuda_amp | NVIDIA GeForce RTX 5050 | onestep | 23.7 | 23.8 | - | 1 | 5.6 | preprocess 1.3, encode 3.7, onestep 18.6 | | cuda_amp | NVIDIA GeForce RTX 5050 | planbind | 42.4 | 42.5 | 23.8 | 2 | 6.2 | preprocess 1.3, encode 3.7, plan 18.6, bind 18.7 | ## Each policy at its measured latency | Bench | Policy | Latency (frames) | Latency (ms) | Success | |---|---|---|---|---| | cpu | bsp10 | 19 | 633 | 22 | | cpu | onestep | 4 | 133 | 32 | | cpu | planbind | 5 | 167 | 100 | | cuda | bsp10 | 6 | 200 | 52 | | cuda | onestep | 1 | 33 | 32 | | cuda | planbind | 2 | 67 | 94 | ## Update rate without latency Latency 0; a call every 4 frames is D1's rate. In D1 a call could not start before the previous one swapped in, so latency 0, 3, 6 and 9 also meant a call every 4, 4, 8 and 12 frames: these cells tell rate from latency apart. | Policy | Commit | Every 4 | Every 8 | Every 12 | |---|---|---|---|---| | onestep | latency | 66 | 58 | 70 | | onestep | none | 36 | 50 | 62 | | planbind | latency | 92 | 100 | 98 | | planbind | none | 88 | 98 | 100 | ## Commit modes | Policy | Latency (ms) | latency | now | none | now vs latency | |---|---|---|---|---|---| | onestep | 0 | 66 | 68 | 36 | +2 (+1/-0) | | onestep | 200 | 78 | 82 | 76 | +4 (+9/-7) | | planbind | 0 | 92 | 94 | 88 | +2 (+1/-0) | | planbind | 200 | 100 | 100 | 100 | +0 (+0/-0) | ## Plan-Bind replan threshold (latency 6, commit latency) | Threshold | Success | vs off | |---|---|---| | off | 100 | - | | 0.5 | 70 | -30 (+0/-15) | | 1.0 | 100 | +0 (+0/-0) | ## bsp10 through the spline runtime `classic` is the action-queue policy (D1's bsp10_L0): it plans 32 frames and replans when they run out. | Mode | Latency (ms) | Commit | Success | vs classic | |---|---|---|---|---| | classic | 0 | - | 100 | - | | runtime | 0 | latency | 80 | -20 (+0/-10) | | runtime | 0 | none | 58 | -42 (+0/-21) | | runtime | 200 | latency | 52 | -48 (+0/-24) | | runtime | 300 | latency | 36 | -64 (+0/-32) | | runtime | 633 | latency | 22 | -78 (+0/-39) | ## The bottom bowl moves when the middle bowl is lifted | Cell | Shift | Static | Shifted | Shifted vs static | Middle nested (shifted) | |---|---|---|---|---|---| | bsp10_L0 | shift3cm | 100 | 90 | -10 (+0/-5) | 98 | | bsp10_L0_latency | shift3cm | 80 | 76 | -4 (+4/-6) | 96 | | bsp10_L6_latency | shift3cm | 52 | 34 | -18 (+2/-11) | 66 | | onestep_L0_latency | shift3cm | 66 | 56 | -10 (+2/-7) | 92 | | onestep_L6_latency | shift3cm | 78 | 62 | -16 (+1/-9) | 86 | | planbind_L0_latency | shift3cm | 92 | 74 | -18 (+2/-11) | 94 | | planbind_L6_latency | shift3cm | 100 | 84 | -16 (+0/-8) | 100 | ## All cells | Cell | Episodes | Success | 95% CI | nested_middle | nested_top | picked_middle | picked_top | released_middle | released_top | |---|---|---|---|---|---|---|---|---|---| | bsp10_L0 | 50 | 100 | 93-100 | 100 | 100 | 100 | 100 | 100 | 100 | | bsp10_L0_latency | 50 | 80 | 67-89 | 90 | 84 | 96 | 88 | 90 | 82 | | bsp10_L0_none | 50 | 58 | 44-71 | 92 | 62 | 92 | 64 | 92 | 60 | | bsp10_L6_latency | 50 | 52 | 39-65 | 74 | 56 | 76 | 62 | 72 | 56 | | bsp10_L9_latency | 50 | 36 | 24-50 | 68 | 42 | 80 | 46 | 68 | 40 | | bsp10_L19_latency | 50 | 22 | 13-35 | 78 | 24 | 80 | 28 | 74 | 24 | | bsp10_L0_shift3cm | 50 | 90 | 79-96 | 98 | 92 | 98 | 92 | 98 | 92 | | bsp10_L0_latency_shift3cm | 50 | 76 | 63-86 | 96 | 84 | 100 | 86 | 92 | 82 | | bsp10_L6_latency_shift3cm | 50 | 34 | 22-48 | 66 | 46 | 68 | 50 | 66 | 44 | | onestep_L0_latency | 50 | 66 | 52-78 | 92 | 66 | 92 | 66 | 92 | 66 | | onestep_L0_latency_every8 | 50 | 58 | 44-71 | 84 | 60 | 88 | 64 | 84 | 60 | | onestep_L0_latency_every12 | 50 | 70 | 56-81 | 88 | 72 | 92 | 72 | 88 | 72 | | onestep_L0_none | 50 | 36 | 24-50 | 70 | 38 | 72 | 38 | 70 | 36 | | onestep_L0_none_every8 | 50 | 50 | 37-63 | 78 | 50 | 80 | 52 | 78 | 50 | | onestep_L0_none_every12 | 50 | 62 | 48-74 | 88 | 62 | 88 | 64 | 88 | 62 | | onestep_L0_now | 50 | 68 | 54-79 | 92 | 68 | 92 | 68 | 92 | 68 | | onestep_L1_latency | 50 | 32 | 21-46 | 56 | 32 | 66 | 46 | 54 | 32 | | onestep_L4_latency | 50 | 32 | 21-46 | 60 | 36 | 60 | 48 | 60 | 36 | | onestep_L6_latency | 50 | 78 | 65-87 | 84 | 84 | 86 | 84 | 84 | 84 | | onestep_L6_none | 50 | 76 | 63-86 | 98 | 78 | 98 | 80 | 98 | 78 | | onestep_L6_now | 50 | 82 | 69-90 | 96 | 84 | 98 | 88 | 96 | 84 | | onestep_L0_latency_shift3cm | 50 | 56 | 42-69 | 92 | 60 | 92 | 62 | 92 | 60 | | onestep_L6_latency_shift3cm | 50 | 62 | 48-74 | 86 | 70 | 88 | 74 | 86 | 70 | | planbind_L0_latency | 50 | 92 | 81-97 | 92 | 92 | 94 | 92 | 92 | 92 | | planbind_L0_latency_every8 | 50 | 100 | 93-100 | 100 | 100 | 100 | 100 | 100 | 100 | | planbind_L0_latency_every12 | 50 | 98 | 90-100 | 98 | 98 | 98 | 98 | 98 | 98 | | planbind_L0_none | 50 | 88 | 76-94 | 90 | 88 | 90 | 88 | 88 | 88 | | planbind_L0_none_every8 | 50 | 98 | 90-100 | 100 | 98 | 100 | 100 | 100 | 98 | | planbind_L0_none_every12 | 50 | 100 | 93-100 | 100 | 100 | 100 | 100 | 100 | 100 | | planbind_L0_now | 50 | 94 | 84-98 | 94 | 94 | 94 | 94 | 94 | 94 | | planbind_L2_latency | 50 | 94 | 84-98 | 94 | 94 | 98 | 94 | 94 | 94 | | planbind_L5_latency | 50 | 100 | 93-100 | 100 | 100 | 100 | 100 | 100 | 100 | | planbind_L6_latency | 50 | 100 | 93-100 | 100 | 100 | 100 | 100 | 100 | 100 | | planbind_L6_latency_tau0.5 | 50 | 70 | 56-81 | 80 | 74 | 80 | 80 | 80 | 72 | | planbind_L6_latency_tau1.0 | 50 | 100 | 93-100 | 100 | 100 | 100 | 100 | 100 | 100 | | planbind_L6_none | 50 | 100 | 93-100 | 100 | 100 | 100 | 100 | 100 | 100 | | planbind_L6_now | 50 | 100 | 93-100 | 100 | 100 | 100 | 100 | 100 | 100 | | planbind_L0_latency_shift3cm | 50 | 74 | 60-84 | 94 | 92 | 96 | 94 | 94 | 92 | | planbind_L6_latency_shift3cm | 50 | 84 | 71-92 | 100 | 100 | 100 | 100 | 100 | 100 |