Deterministic mesh inertia

← All reports
Updated 2026-06-13. Current rerun: 262 mesh shapes from seven USD-converted MuJoCo Menagerie robots, 20 measured reruns per mesh, Warp PR #1355 at 48b1927c5, Newton main at 40fed42d, NVIDIA RTX PRO 6000 Blackwell Server Edition MIG 1g.24gb.

V2 is bit-exact with the latest PR. The original atomic mesh-inertia kernels compiled with deterministic=RUN_TO_RUN now produced 0/262 drifting meshes across 20 reruns.

The 100x slowdown is gone. Latest PR #1355 reduced V2's summed per-mesh medians from 10,028 ms to 332 ms, a 30.2x speedup over the previous PR snapshot used in this report. V2 is now 1.8x V0 and 3.1x V3.

Current Same-Machine Results

VariantReduction pathRun-to-run resultMedian ms/callMedian p90 msSum median msRelative sum
V0
Original atomic
native unordered atomics 262/262 drift 0.49 0.51 186 1.8x V3
V2
Original atomic + PR1355 RUN_TO_RUN
deterministic atomic lowering 0/262 drift 1.22 1.25 332 3.1x V3
V3
Current Newton tile_sum
fixed-lane tile_sum 0/262 drift 0.38 0.40 105 reference

V0 and V2 use the original mesh inertia computation with wp.atomic_add; V2 differs by PR #1355 deterministic lowering. V3 is the current Newton implementation based on fixed-lane tile_sum reductions.

Harness

The V2 rerun uses the original atomic kernels with deterministic module options set at decoration time. That is the important part: setting wp.config.deterministic after the kernel module already exists is not enough to change an existing module.

@wp.kernel(module="unique", module_options={"deterministic": wp.DeterministicMode.RUN_TO_RUN}, enable_backward=False)
def atomic_solid_mesh_inertia(...):
    ...
    wp.atomic_add(volume, 0, v)
    wp.atomic_add(first, 0, f)
    wp.atomic_add(second, 0, s)

What Changed

PR #1355 now includes the multi-component deterministic reduction work at de4674f30. The previous PR snapshot made V2 bit-exact but handled vec3 and mat33 atomics through a much slower generic path. The latest branch keeps the same run-to-run determinism and brings the mesh-like deterministic atomic probe down to 2.71 ms for 150k records.

RecordsUnordered atomics msRUN_TO_RUN atomics mstile_sum msRUN_TO_RUN / unorderedRUN_TO_RUN / tile_sum
176 0.02 0.50 0.03 22.3x 15.7x
1,438 0.04 0.63 0.03 15.5x 19.6x
5,928 0.11 0.80 0.04 7.3x 22.4x
46,786 0.62 1.26 0.06 2.0x 19.4x
150,000 1.88 2.71 0.14 1.4x 19.6x

Runtime

V3 remains fastest for this Newton importer workload. V2 is useful because it validates that Warp's deterministic lowering can make the original atomic implementation bit-exact, but it still pays the deterministic ordering cost.

V0 Drift Plot

The V0 drift plot is generated from the 2026-06-13 V0 rerun. For each mesh, it plots the largest Frobenius norm difference in inertia tensor against the first rerun.

Current V0 drift is positive for all 262 meshes. The observed range is 6.57e-16 to 3.80e+05.

Per-Robot Breakdown

RobotMeshesTrianglesV0 sum median msV2 sum median msV3 sum median msDrift counts
h1 21 286,408 11.6 28.1
3.3x V3
8.49 V0 21/21, V2 0/21, V3 0/21
g1_with_hands 86 1,150,196 47.3 110
3.2x V3
34.5 V0 86/86, V2 0/86, V3 0/86
shadow_hand 30 84,436 11.9 32.6
2.9x V3
11.1 V0 30/30, V2 0/30, V3 0/30
apptronik_apollo 60 1,553,699 44.9 86.2
3.3x V3
26.3 V0 60/60, V2 0/60, V3 0/60
booster_t1 24 168,582 11.2 28.7
3.1x V3
9.23 V0 24/24, V2 0/24, V3 0/24
wonik_allegro 21 32,916 35.1 21.8
2.8x V3
7.78 V0 21/21, V2 0/21, V3 0/21
ur5e 20 121,783 24.4 23.7
3.0x V3
7.83 V0 20/20, V2 0/20, V3 0/20

Reproducibility

Warp source: /home/horde/repos/warp-pr1355-local, PR #1355, 48b1927c5
Warp build: release, --use-dynamic-cuda, --use-libmathdx
Newton source: /home/horde/repos/newton, main, 40fed42d
Runner: /home/horde/repos/newton-mesh-inertia-investigation/tools/rerun_v2_mesh_inertia_pr1355.py
Current data:
  deterministic-mesh-inertia/v0_current_atomic_pr1355_20260613.json
  deterministic-mesh-inertia/v2_latest_pr1355_20260613.json
  deterministic-mesh-inertia/v3_current_tile_sum_pr1355_20260613.json
  deterministic-mesh-inertia/determinism_overhead_probe_20260613.json
Historical baseline:
  deterministic-mesh-inertia/results_20260610T184709.json
Historical V1 host-reduce data was not rerun in this same-machine pass. The comparison above uses only current V0, V2, and V3 data from the rebuilt Warp PR #1355 checkout.