H33 Graviton4 Benchmark Suite
=============================
Sustained: 60s, Workers: 96, Latency: 15s/rate
Allocator: system
Architecture: aarch64 (ARM/Graviton)
Rayon threads: 96
Cachee RESP: redis://localhost:6380/
FHE mode: biometric_fast (N=4096, Q_bits=[56], t=65537)
NTT path: fused pre-twist (1 REDC) + fused inverse post-twist (1 REDC)
  Forward: twiddles_fused[i] = psi^i * R^2 mod q (saves 4096 REDCs/NTT)
  Inverse: fused_inv_post[i] = n^-1 * psi^-i mod q (saves 4096 REDCs/NTT)

======================================================================
=== BENCHMARK 0: Component Latencies (isolated) ===
======================================================================

  Component          Median       P95         P99
  ---------          ------       ---         ---
  FHE verify:         1109 µs     1113 µs     1117 µs
  ZKP raw:           3.732 µs    3.764 µs    3.781 µs
  ZKP via Cachee:    1.029 µs    1.079 µs    1.148 µs  (L1 cache hit)
  Dilithium sign:      167 µs      377 µs      653 µs
  Dilithium verify:     74 µs       74 µs       75 µs
  ─────────────────────────
  Total (single):     1351 µs  (FHE 82% + ZKP 0.08% + sign 12% + verify 5%)
  Cachee speedup:  4× vs raw ZKP (3.732 µs → 1.029 µs)

  --- Batch Attestation (SHA3 digest + 1 sign + 1 verify) ---
  Batch attest:        248 µs  (SHA3 + 1 sign + 1 verify for 32 results)
  Per auth:              8 µs  (amortized)
  vs 32× individual: 31× faster

  --- Full Pipeline (32-user batch, ZKP via Cachee) ---
  FHE batch:          1109 µs
  ZKP (32 Cachee):    32.9 µs  (1.029 µs/lookup)
  Batch attest:        248 µs  (SHA3 + 1 Dilithium sign + 1 verify)
  ─────────────────────────
  Total batch:        1390 µs  (43 µs/auth)
  FHE share:       80%
  ZKP share:       2.4%
  Dilithium share: 18%

======================================================================
=== BENCHMARK 1: SIMD Single-User Inner Product ===
======================================================================
Comparing: verify_encrypted (chunked) vs batch_verify_multi (SIMD packed)

verify_encrypted (chunked):
  Median: 1533 µs
  P95:    1539 µs
  P99:    1545 µs
  Min:    1524 µs

batch_verify_multi (SIMD, 1 probe):
  Median: 1125 µs
  P95:    1130 µs
  P99:    1141 µs
  Min:    1117 µs

  Speedup: 1.4x (median)

batch_verify_multi (SIMD, 32 probes):
  Median: 1112 µs total  (34.8 µs/auth)
  P95:    1118 µs
  P99:    1122 µs
  Single-thread throughput: 28777 auth/sec

======================================================================
=== BENCHMARK 2: Sustained Throughput (FHE + Cachee ZKP + Dilithium) ===
=== 96 workers, 60 seconds ===
======================================================================
Pipeline: FHE → Cachee ZKP (32 lookups) → SHA3 → Dilithium sign+verify
Allocator: system
Cachee RESP: redis://localhost:6380/ → PONG
Setting up 96 worker contexts...
Setup: 189270.5ms
Warming up (populating Cachee cache)...

Starting sustained load...
 Sec    BatchOps/s     EffAuth/s    Total Auth   Per-auth µs
-----------------------------------------------------------------
   1          4456        142592        142592           7.0
   2          4673        149536        292128           6.7
   3          4647        148704        440832           6.7
   4          4663        149216        590048           6.7
   5          4718        150976        741024           6.6
   6          4657        149024        890048           6.7
   7          4537        145184       1035232           6.9
   8          4527        144864       1180096           6.9
   9          4553        145696       1325792           6.9
  10          4568        146176       1471968           6.8
  11          4512        144384       1616352           6.9
  12          4466        142912       1759264           7.0
  13          4441        142112       1901376           7.0
  14          4466        142912       2044288           7.0
  15          4473        143136       2187424           7.0
  16          4390        140480       2327904           7.1
  17          4344        139008       2466912           7.2
  18          4322        138304       2605216           7.2
  19          4297        137504       2742720           7.3
  20          4269        136608       2879328           7.3
  21          4303        137696       3017024           7.3
  22          4305        137760       3154784           7.3
  23          4286        137152       3291936           7.3
  24          4277        136864       3428800           7.3
  25          4224        135168       3563968           7.4
  26          4173        133536       3697504           7.5
  27          4180        133760       3831264           7.5
  28          4195        134240       3965504           7.4
  29          4175        133600       4099104           7.5
  30          4182        133824       4232928           7.5
  31          4151        132832       4365760           7.5
  32          4215        134880       4500640           7.4
  33          4198        134336       4634976           7.4
  34          4179        133728       4768704           7.5
  35          4206        134592       4903296           7.4
  36          4205        134560       5037856           7.4
  37          4194        134208       5172064           7.5
  38          4216        134912       5306976           7.4
  39          4220        135040       5442016           7.4
  40          4189        134048       5576064           7.5
  41          4212        134784       5710848           7.4
  42          4168        133376       5844224           7.5
  43          4124        131968       5976192           7.6
  44          4120        131840       6108032           7.6
  45          4124        131968       6240000           7.6
  46          4117        131744       6371744           7.6
  47          4107        131424       6503168           7.6
  48          4153        132896       6636064           7.5
  49          4132        132224       6768288           7.6
  50          4110        131520       6899808           7.6
  51          4074        130368       7030176           7.7
  52          4102        131264       7161440           7.6
  53          4075        130400       7291840           7.7
  54          4077        130464       7422304           7.7
  55          4077        130464       7552768           7.7
  56          4044        129408       7682176           7.7
  57          4040        129280       7811456           7.7
  58          4043        129376       7940832           7.7
  59          4055        129760       8070592           7.7

--- Sustained Throughput Summary (FHE + Cachee ZKP + Attestation) ---
Duration:         60.02s
Workers:          96
Batch ops:        256348
Effective auths:  8203136 (32 users/batch)
Batch throughput: 4271 batch/sec
Auth throughput:  136670 auth/sec  (FHE + Cachee ZKP + Dilithium)
Per-auth latency: 7.3 µs

Cachee ZKP stats:
  Cache hits:   8203136 (100.0%)
  Cache misses: 0

Pipeline: FHE → Cachee ZKP(32 lookups) → SHA3 → Dilithium sign → verify

======================================================================
=== BENCHMARK 3: BatchAccumulator Latency Distribution ===
======================================================================

      Rate    Achieved      P50 ms      P95 ms      P99 ms      Max ms
----------------------------------------------------------------------
       100         100       4.202       4.211       4.256       4.262
      1000        1000       3.347       4.419       4.425       4.469
      5000        4997       3.363       4.440       4.450       4.467
     10000        9990       2.330       3.425       4.446       4.505
     25000       24942       2.201       2.348       3.200       4.452
     50000       49760       1.240       2.335       3.062       4.318

--- Fallback Path (individual verify_encrypted) ---
  P50: 1552 µs
  P95: 1558 µs
  P99: 1591 µs

--- Accumulator Metrics ---
  Batches flushed:   52239
  Requests batched:  1366510
  Requests fallback: 0

======================================================================
=== BENCHMARK COMPLETE ===
======================================================================

Full lifecycle: FHE → Cachee ZKP (32 cached lookups) → Dilithium attestation
ZKP proofs cached in Cachee L1 (DashMap) + L2 (ElastiCache) via RESP proxy.
