StaffML is a static site and cannot run MLSysIM, so its numbers lived in a
hand-copied table that cited a deleted mlsysim/core/constants.py. Five
devices had drifted: Jetson Orin NX showed its FP16 rate under an INT8
label, the A17 Pro listed 100 GB/s against 51.2 GB/s, B200 memory was 192
against 180, TPU v5p had the wrong year, and every ESP32-S3 field was off.
scripts/export_mlsysim_data.py now reads the MLSysIM registries straight
from the repo and writes src/data/mlsysim.json, which hardware.ts serves.
Each row records the registry entry it came from. Interconnect and latency
values move to MLSysIM's measured or sourced figures (NVLink B200 0.5 us,
InfiniBand XDR 5 us, 100GbE 50 us, Hopper HBM 273 ns). The cross-US fiber
row stays local because MLSysIM has no route distance. The simulator's
flops_per_token is 6 x parameters, now labeled as training cost.
Latency comparisons such as "4.5 minutes" wrapped onto two lines in the
narrow column, raw latencies showed noise digits (272.82 ns), and the
ESP32-S3's 80 MB/s bandwidth rounded to "0 GB/s".