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:         1108 µs     1113 µs     1115 µs
  ZKP raw:           3.734 µs    3.763 µs    3.776 µs
  ZKP via Cachee:  (not available — using raw)
  Dilithium sign:      168 µs      470 µs      634 µs
  Dilithium verify:     74 µs       74 µs       75 µs
  ─────────────────────────
  Total (single):     1354 µs  (FHE 82% + ZKP 0.28% + sign 12% + verify 5%)

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

  --- Full Pipeline (32-user batch, ZKP via Cachee) ---
  FHE batch:          1108 µs
  ZKP (32 Cachee):   119.5 µs  (3.734 µs/lookup)
  Batch attest:        240 µs  (SHA3 + 1 Dilithium sign + 1 verify)
  ─────────────────────────
  Total batch:        1467 µs  (46 µs/auth)
  FHE share:       76%
  ZKP share:       8.1%
  Dilithium share: 16%

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

verify_encrypted (chunked):
  Median: 1531 µs
  P95:    1536 µs
  P99:    1541 µs
  Min:    1523 µs

batch_verify_multi (SIMD, 1 probe):
  Median: 1107 µs
  P95:    1114 µs
  P99:    1116 µs
  Min:    1100 µs

  Speedup: 1.4x (median)

batch_verify_multi (SIMD, 32 probes):
  Median: 1100 µs total  (34.4 µs/auth)
  P95:    1105 µs
  P99:    1114 µs
  Single-thread throughput: 29091 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
Setting up 96 worker contexts...
Setup: 188970.5ms
Warming up (populating Cachee cache)...

Starting sustained load...
 Sec    BatchOps/s     EffAuth/s    Total Auth   Per-auth µs
-----------------------------------------------------------------
   1         46256       1480192       1480192           0.7
   2         46869       1499808       2980000           0.7
   3         46970       1503040       4483040           0.7
   4         46906       1500992       5984032           0.7
   5         47071       1506272       7490304           0.7
   6         46772       1496704       8987008           0.7
   7         46893       1500576      10487584           0.7
   8         46937       1501984      11989568           0.7
   9         46905       1500960      13490528           0.7
  10         46989       1503648      14994176           0.7
  11         46847       1499104      16493280           0.7
  12         46962       1502784      17996064           0.7
  13         47159       1509088      19505152           0.7
  14         47160       1509120      21014272           0.7
  15         47219       1511008      22525280           0.7
  16         47259       1512288      24037568           0.7
  17         47408       1517056      25554624           0.7
  18         47138       1508416      27063040           0.7
  19         47285       1513120      28576160           0.7
  20         47349       1515168      30091328           0.7
  21         47364       1515648      31606976           0.7
  22         47390       1516480      33123456           0.7
  23         47449       1518368      34641824           0.7
  24         47467       1518944      36160768           0.7
  25         47412       1517184      37677952           0.7
  26         47551       1521632      39199584           0.7
  27         47306       1513792      40713376           0.7
  28         47420       1517440      42230816           0.7
  29         47396       1516672      43747488           0.7
  30         47263       1512416      45259904           0.7
  31         47300       1513600      46773504           0.7
  32         47347       1515104      48288608           0.7
  33         47350       1515200      49803808           0.7
  34         47416       1517312      51321120           0.7
  35         47285       1513120      52834240           0.7
  36         47258       1512256      54346496           0.7
  37         47519       1520608      55867104           0.7
  38         47366       1515712      57382816           0.7
  39         47443       1518176      58900992           0.7
  40         47243       1511776      60412768           0.7
  41         47246       1511872      61924640           0.7
  42         47357       1515424      63440064           0.7
  43         47292       1513344      64953408           0.7
  44         47291       1513312      66466720           0.7
  45         47283       1513056      67979776           0.7
  46         47321       1514272      69494048           0.7
  47         47109       1507488      71001536           0.7
  48         47191       1510112      72511648           0.7
  49         47343       1514976      74026624           0.7
  50         47249       1511968      75538592           0.7
  51         47246       1511872      77050464           0.7
  52         47479       1519328      78569792           0.7
  53         47454       1518528      80088320           0.7
  54         47344       1515008      81603328           0.7
  55         47314       1514048      83117376           0.7
  56         47372       1515904      84633280           0.7
  57         47460       1518720      86152000           0.7
  58         47354       1515328      87667328           0.7
  59         47524       1520768      89188096           0.7
  60         47373       1515936      90704032           0.7

--- Sustained Throughput Summary (FHE + Cachee ZKP + Attestation) ---
Duration:         60.03s
Workers:          96
Batch ops:        2835656
Effective auths:  90740992 (32 users/batch)
Batch throughput: 47238 batch/sec
Auth throughput:  1511624 auth/sec  (FHE + Cachee ZKP + Dilithium)
Per-auth latency: 0.7 µs

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.201       4.209       4.256       4.263
      1000        1000       3.340       4.411       4.418       4.432
      5000        4997       3.354       4.434       4.446       4.475
     10000        9989       2.330       3.427       4.446       4.506
     25000       24941       2.202       2.357       3.210       4.322
     50000       49760       1.224       2.308       3.008       3.315

--- Fallback Path (individual verify_encrypted) ---
  P50: 1552 µs
  P95: 1559 µs
  P99: 1606 µs

--- Accumulator Metrics ---
  Batches flushed:   51875
  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.
