Skip to content

Added Delayed Modular Reduction to inner sumcheck - #108

Merged
srinathsetty merged 3 commits into
microsoft:mainfrom
wu-s-john:dmr-inner-sumcheck
Apr 2, 2026
Merged

Added Delayed Modular Reduction to inner sumcheck#108
srinathsetty merged 3 commits into
microsoft:mainfrom
wu-s-john:dmr-inner-sumcheck

Conversation

@wu-s-john

@wu-s-john wu-s-john commented Feb 26, 2026

Copy link
Copy Markdown
Contributor

NOTE: Direct follow up to apply Delayed Modular Reduction to the other sumcheck in Spartan #105. It was a direct performance boost that it could be applied to other sumcheck like computations very nicely

Optimizing the inner sumcheck in Spartan's with Delayed Modular reduction. It directly speeds up the inner sumcheck for Spartan, SpartanZk and NeutronNovaZk.

Spartan Benchmark: main vs benching/sha256-is-faster

SHA256 Single Hash (msg=1024B)

Metric main optimized Δ Speedup
prove_total 184ms 168ms -16ms 1.10x
setup 1318ms 1261ms -57ms 1.05x
prep 125ms 109ms -16ms 1.15x
verify 52ms 47ms -5ms 1.11x
Phase main optimized Δ Speedup
outer_sc 45ms 33ms -12ms 1.36x
inner_sc 37ms 33ms -4ms 1.12x
mat_vec 10ms 9ms -1ms 1.11x
eval_sparse 30ms 30ms 0ms 1.00x
poly_ABC 12ms 10ms -2ms 1.20x
poly_z 1ms 1ms 0ms 1.00x
pcs 22ms 20ms -2ms 1.10x
synth_pre 123ms 107ms -16ms 1.15x
commit_pre 27ms 18ms -9ms 1.50x

SHA256 Chain (msg=32B, chain=1028)

Metric main optimized Δ Speedup
prove_total 8770ms 8751ms -19ms 1.00x
setup 144807ms 144832ms +25ms -
prep 6281ms 6850ms +569ms 0.92x
verify 1973ms 2024ms +51ms 0.98x
Phase main optimized Δ Speedup
outer_sc 1294ms 1048ms -246ms 1.23x
inner_sc 1221ms 1101ms -120ms 1.11x
mat_vec 974ms 995ms +21ms 0.98x
eval_sparse 2378ms 2381ms +3ms 1.00x
poly_ABC 726ms 865ms +139ms 0.84x
poly_z 150ms 226ms +76ms 0.66x
pcs 546ms 641ms +95ms 0.85x
synth_pre 6146ms 6709ms +563ms 0.92x
commit_pre 1183ms 1188ms +5ms 1.00x

NeutronNova Results with DelayedModular Reduction:

NeutronNova ZK (instances=16, chain=64)

Metric main optimized Δ Speedup
prove 5940ms 5179ms -761ms 1.15x
setup 9077ms 9384ms +307ms 0.97x
prep 2384ms 2288ms -96ms 1.04x
verify 622ms 632ms +10ms 0.98x
Phase main optimized Δ Speedup
nifs_sc 2042ms 1987ms -55ms 1.03x
outer_sc 849ms 251ms -598ms 3.38x
inner_sc 411ms 171ms -240ms 2.40x
fold_W 123ms 110ms -13ms 1.12x
fold_U 207ms 206ms -1ms 1.00x
precom_syn 16692ms 16873ms +181ms 0.99x
commit_pre 9705ms 9926ms +221ms 0.98x
rerand 625ms 671ms +46ms 0.93x
gen_inst 210ms 217ms +7ms 0.97x
pcs 44ms 40ms -4ms 1.10x

Summary

Consistent improvements across both benchmarks:

  • outer_sc: 23-36% faster
  • inner_sc: 11-12% faster

@srinathsetty
srinathsetty merged commit a7a3c87 into microsoft:main Apr 2, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants