bench: jetson FPS battery — both backends saturate at 80.9 MB scale
Parameterizes the throttle-sweep FPS battery (fpsBattery helper) and adds a jetson-agx-thor run: asyncify raf 2.1-5.3 / distinct 0.2-0.8 vs JSPI raf 1.9-5.0 / distinct 0.1-0.7 — indistinguishable. Suspension overhead is a per-event-loop-turn cost; at hundreds of ms of GAL work per frame it stops discriminating. vme-wren (~27 MB) remains the discriminating size class. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016X9eh1s5sTx1o9Em9KBuwR
This commit is contained in:
parent
da299ed6f9
commit
e652810de7
4 changed files with 53 additions and 6 deletions
|
|
@ -18,3 +18,10 @@
|
|||
{"arm":"asyncify","sha256":"6dab493196d060d7","when":"2026-08-14T09:48:29.439Z","section":"fps-vme","throttle":6,"rep":2,"rafFps":34.3,"distinctFps":2.8}
|
||||
{"arm":"asyncify","sha256":"6dab493196d060d7","when":"2026-08-14T09:48:29.442Z","section":"fps-vme-postmem","postFpsMem":{"wasmHeapBytes":962330624,"jsHeapBytes":60300000}}
|
||||
{"arm":"asyncify","sha256":"6dab493196d060d7","when":"2026-08-14T09:48:46.855Z","section":"open-jetson","bytes":84806775,"outcome":"loaded","openMs":14584,"openPeakHeap":1904214016,"postOpenMem":{"wasmHeapBytes":1904214016,"jsHeapBytes":116000000}}
|
||||
{"arm":"asyncify","sha256":"6dab493196d060d7","when":"2026-08-14T10:05:39.841Z","section":"fps-jetson","throttle":1,"rep":1,"rafFps":4.4,"distinctFps":0.5}
|
||||
{"arm":"asyncify","sha256":"6dab493196d060d7","when":"2026-08-14T10:05:46.092Z","section":"fps-jetson","throttle":1,"rep":2,"rafFps":5.3,"distinctFps":0.8}
|
||||
{"arm":"asyncify","sha256":"6dab493196d060d7","when":"2026-08-14T10:05:52.980Z","section":"fps-jetson","throttle":4,"rep":1,"rafFps":2.1,"distinctFps":0.4}
|
||||
{"arm":"asyncify","sha256":"6dab493196d060d7","when":"2026-08-14T10:06:00.712Z","section":"fps-jetson","throttle":4,"rep":2,"rafFps":3.4,"distinctFps":0.6}
|
||||
{"arm":"asyncify","sha256":"6dab493196d060d7","when":"2026-08-14T10:06:06.843Z","section":"fps-jetson","throttle":6,"rep":1,"rafFps":2.5,"distinctFps":0.2}
|
||||
{"arm":"asyncify","sha256":"6dab493196d060d7","when":"2026-08-14T10:06:14.282Z","section":"fps-jetson","throttle":6,"rep":2,"rafFps":3.9,"distinctFps":0.7}
|
||||
{"arm":"asyncify","sha256":"6dab493196d060d7","when":"2026-08-14T10:06:14.285Z","section":"fps-jetson-postmem","postFpsMem":{"wasmHeapBytes":1904214016,"jsHeapBytes":177000000}}
|
||||
|
|
|
|||
|
|
@ -25,3 +25,10 @@
|
|||
{"arm":"jspi","sha256":"6f03e62d6d5619c3","when":"2026-08-14T09:52:24.000Z","section":"fps-vme","throttle":6,"rep":1,"rafFps":34.3,"distinctFps":3.3,"note":"glcanvas sampler re-run; when approximate"}
|
||||
{"arm":"jspi","sha256":"6f03e62d6d5619c3","when":"2026-08-14T09:52:30.000Z","section":"fps-vme","throttle":6,"rep":2,"rafFps":41.8,"distinctFps":5.3,"note":"glcanvas sampler re-run; when approximate"}
|
||||
{"arm":"jspi","sha256":"6f03e62d6d5619c3","when":"2026-08-14T09:52:30.100Z","section":"fps-vme-postmem","postFpsMem":{"wasmHeapBytes":801898496,"jsHeapBytes":64000000}}
|
||||
{"arm":"jspi","sha256":"6f03e62d6d5619c3","when":"2026-08-14T10:04:14.509Z","section":"fps-jetson","throttle":1,"rep":1,"rafFps":5,"distinctFps":0.7}
|
||||
{"arm":"jspi","sha256":"6f03e62d6d5619c3","when":"2026-08-14T10:04:21.557Z","section":"fps-jetson","throttle":1,"rep":2,"rafFps":4.1,"distinctFps":0.7}
|
||||
{"arm":"jspi","sha256":"6f03e62d6d5619c3","when":"2026-08-14T10:04:32.709Z","section":"fps-jetson","throttle":4,"rep":1,"rafFps":2.3,"distinctFps":0.4}
|
||||
{"arm":"jspi","sha256":"6f03e62d6d5619c3","when":"2026-08-14T10:04:40.639Z","section":"fps-jetson","throttle":4,"rep":2,"rafFps":1.9,"distinctFps":0.1}
|
||||
{"arm":"jspi","sha256":"6f03e62d6d5619c3","when":"2026-08-14T10:04:48.685Z","section":"fps-jetson","throttle":6,"rep":1,"rafFps":2.1,"distinctFps":0.1}
|
||||
{"arm":"jspi","sha256":"6f03e62d6d5619c3","when":"2026-08-14T10:04:55.534Z","section":"fps-jetson","throttle":6,"rep":2,"rafFps":4.3,"distinctFps":0.3}
|
||||
{"arm":"jspi","sha256":"6f03e62d6d5619c3","when":"2026-08-14T10:04:55.537Z","section":"fps-jetson-postmem","postFpsMem":{"wasmHeapBytes":1730805760,"jsHeapBytes":157000000}}
|
||||
|
|
|
|||
|
|
@ -156,6 +156,16 @@ The distinct-frame gap grows from +21 % at 1× to +68 % at 4× — the same
|
|||
"advantage widens under throttle" signature doc-12 used to prove lower
|
||||
CPU-per-operation (as opposed to just a smaller module).
|
||||
|
||||
**FPS on jetson-agx-thor (80.9 MB)** — added 2026-08-14 pm: at this scale BOTH
|
||||
arms saturate outright and the backend difference disappears into noise
|
||||
(asyncify raf 2.1–5.3 / distinct 0.2–0.8; JSPI raf 1.9–5.0 / distinct
|
||||
0.1–0.7; post-FPS heap 1.90 vs 1.73 GB). With <1 real redraw/s the 6 s
|
||||
windows count 1–5 frames, i.e. quantization noise. Reading: suspension
|
||||
overhead is a per-event-loop-turn cost — once per-frame GAL/geometry work is
|
||||
hundreds of ms, it no longer discriminates. vme-wren (~27 MB) is the size
|
||||
class where the backend visibly matters for interaction; jetson is the
|
||||
"both need render-side optimization" regime.
|
||||
|
||||
**Memory checkpoints** (wasm linear memory; Chromium `usedJSHeapSize` tracked
|
||||
alongside, differences <10 %): boot 557 vs 387 MB; after vme-wren open 962 vs
|
||||
802 MB; unchanged after the FPS sweep on both arms.
|
||||
|
|
|
|||
Loading…
Reference in a new issue