| { | |
| "generated": "2026-08-30T00:42:59+00:00", | |
| "measures": "one full InterlockShield.check per call, encoding included", | |
| "threading": "tier1_numpy, tier2_torch and tier2_onnx are capped at one intra-op thread. That cap is strict for ONNX Runtime and not strict for torch, whose BLAS on macOS Accelerate ignores it, so the torch figure is optimistic relative to the ONNX one. tier2_onnx_4_threads is the like-for-like comparison. The conclusion that matters is unaffected: tier 2 costs two to three orders of magnitude more per call than tier 1, whichever runtime serves it.", | |
| "note": "The timing covers request/action encoding, the model forward pass and the rule layer. A figure for the matrix product alone would understate what a deployment pays, because the encoder runs on every turn as well.", | |
| "single_threaded": true, | |
| "thread_caps": { | |
| "OMP_NUM_THREADS": "1", | |
| "MKL_NUM_THREADS": "1" | |
| }, | |
| "rows_from": "data/validation.jsonl", | |
| "repeats": 400, | |
| "warmup": 50, | |
| "platform": { | |
| "python": "3.13.5", | |
| "system": "Darwin", | |
| "release": "25.6.0", | |
| "machine": "arm64", | |
| "processor": "arm" | |
| }, | |
| "peak_rss_mb": 1881.1, | |
| "peak_rss_note": "process-wide peak after all measurements, not a per-runtime footprint", | |
| "runtimes": { | |
| "tier1_numpy": { | |
| "calls": 400, | |
| "warmup": 50, | |
| "mean_ms": 0.2469, | |
| "p50_ms": 0.1715, | |
| "p95_ms": 0.6632, | |
| "p99_ms": 0.9428, | |
| "max_ms": 1.1329, | |
| "peak_rss_mb": 40.3 | |
| }, | |
| "tier2_torch": { | |
| "calls": 400, | |
| "warmup": 50, | |
| "mean_ms": 116.0713, | |
| "p50_ms": 116.4618, | |
| "p95_ms": 143.5954, | |
| "p99_ms": 151.5859, | |
| "max_ms": 180.4765, | |
| "peak_rss_mb": 1670.5 | |
| }, | |
| "tier2_onnx": { | |
| "calls": 400, | |
| "warmup": 50, | |
| "mean_ms": 468.3519, | |
| "p50_ms": 465.9733, | |
| "p95_ms": 568.4501, | |
| "p99_ms": 611.1481, | |
| "max_ms": 645.3858, | |
| "peak_rss_mb": 1856.9 | |
| }, | |
| "tier2_onnx_4_threads": { | |
| "calls": 400, | |
| "warmup": 50, | |
| "mean_ms": 137.4238, | |
| "p50_ms": 136.3649, | |
| "p95_ms": 167.0486, | |
| "p99_ms": 179.8901, | |
| "max_ms": 190.6495, | |
| "peak_rss_mb": 1881.1 | |
| } | |
| }, | |
| "not_measured": [] | |
| } | |