feat: Goblinize the final ecc ops in ZM#3741
Conversation
Benchmark resultsMetrics with a significant change:
Detailed resultsAll benchmarks are run on txs on the This benchmark source data is available in JSON format on S3 here. Values are compared against data from master at commit L2 block published to L1Each column represents the number of txs on an L2 block published to L1.
L2 chain processingEach column represents the number of blocks on the L2 chain where each block has 16 txs.
Circuits statsStats on running time and I/O sizes collected for every circuit run across all benchmarks.
MiscellaneousTransaction sizes based on how many contracts are deployed in the tx.
|
codygunton
left a comment
There was a problem hiding this comment.
Looks good to me. Will ask Luke to look over my additions.
|
Luke pointed out in a side convo that I did not test the new special-case operators. Added those tests. |
In the initial implementation of ZM I forgot to goblinize a couple of the final group operations in Zeromorph which was causing the gate count of the recursive verifier to blow up. We fix this. We implement the addition, subtraction, and single scalar multiplication operation inefficiently using the batch_mul methods. We disable some member functions that do not use Goblin when they could, and leave references to AztecProtocol/barretenberg#707 as a future optimization task.