Same answer. Less time.
One fixed model. Its inputs change, and every output is needed after every change.
Recompute everything
0.0 ms per job
Textbook incremental update
0.0 ms per job
Delta Routing
0.0 ms per job
Compute Start, load, save and check
12% less time than the textbook incremental update
22% less than recomputing everything. Synthetic test matrices.
Same output as recomputing everything, byte for byte.
2.1–8.2×
Updating only what changed, against the best full recompute (Intel oneMKL and PyTorch included), on 21 real-world matrices. Read the paper
Why
- Only the outputs a changed input reaches are recomputed.
- Those outputs are computed four at a time, each in its original order, so every bit matches.
- When more than one input in sixteen changes at once, or a run is too short to pay for setup, it recomputes everything, still four rows at a time.
Synthetic test matrices, replayed from times measured in C++ on one Intel i7-1165G7 core, turbo off, GCC 13, 13 October 2026. 120 complete jobs per method across five change patterns; Mixed weights them equally. Each job starts a fresh process, loads a synthetic 4,096 by 4,096 sparse matrix with exactly 64 entries in every row, applies 8 or 64 updates, and writes and checks every output. The textbook update recomputes every row a changed input reaches, in original order. The real-world figure is from 21 SuiteSparse matrices in How the Dirty Set Moves: a direct column-by-column incremental update against the best of eight full-recompute codes.