Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR gets rid of 2 table lookups and 1 gate in the
GreaterThanChip
by range-checking using the existing gadget, as suggested in #14.This increases the required value for
k
from 12 to 14 for theMNIST-Tiny
model, but has no effect on the "real-world" models. For those models, proofs are ~13% faster and the size of the verifier is now small enough to fit into an Ethereum smart contract! 🥳I also tested switching to the
V1
floor planner. Unfortunatey, it has a ~30% proving-time overhead and only reducesk
for theMNIST-Tiny
model (to 13). So, I undid this change (but keeping the proper implementation ofCircuit::without_witness()
needed for theV1
floor planner). Once zcash/halo2#547 is resolved, proof-time synthesis of should not be necessary anymore and we can move to theV1
planner.The benchmarks show an increase of proving time for
MINST-Tiny
(because of the higher value ofk
) and a decrease in proving time otherwise: