Created
January 13, 2024 20:30
-
-
Save huitseeker/cad65b7125f1cc78791ad0d8f2899bc5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Benchmarks | |
## Table of Contents | |
- [Benchmark Results](#benchmark-results) | |
- [CompressedSNARK](#compressedsnark) | |
- [CompressedSNARK-Commitments](#compressedsnark-commitments) | |
- [CompressedSNARKSuperNova-1circuit](#compressedsnarksupernova-1circuit) | |
- [CompressedSNARKSuperNova-2circuit](#compressedsnarksupernova-2circuit) | |
- [CompressedSNARKSuperNova-Commitments-2circuit](#compressedsnarksupernova-commitments-2circuit) | |
- [RecursiveSNARK](#recursivesnark) | |
- [RecursiveSNARKSuperNova-1circuit](#recursivesnarksupernova-1circuit) | |
- [RecursiveSNARKSuperNova-2circuit](#recursivesnarksupernova-2circuit) | |
## Benchmark Results | |
### CompressedSNARK | |
| | `curve-cycle=Pasta` | `curve-cycle=Grumpkin` | | |
|:-------------------------------------|:-----------------------------|:--------------------------------- | | |
| **`Prove-StepCircuitSize-0`** | `348.77 ms` (✅ **1.00x**) | `430.32 ms` (❌ *1.23x slower*) | | |
| **`Verify-StepCircuitSize-0`** | `20.57 ms` (✅ **1.00x**) | `20.50 ms` (✅ **1.00x faster**) | | |
| **`Prove-StepCircuitSize-6559`** | `367.93 ms` (✅ **1.00x**) | `606.42 ms` (❌ *1.65x slower*) | | |
| **`Verify-StepCircuitSize-6559`** | `20.62 ms` (✅ **1.00x**) | `28.74 ms` (❌ *1.39x slower*) | | |
| **`Prove-StepCircuitSize-22943`** | `520.23 ms` (✅ **1.00x**) | `986.39 ms` (❌ *1.90x slower*) | | |
| **`Verify-StepCircuitSize-22943`** | `28.83 ms` (✅ **1.00x**) | `19.12 ms` (✅ **1.51x faster**) | | |
| **`Prove-StepCircuitSize-55711`** | `886.99 ms` (✅ **1.00x**) | `1.71 s` (❌ *1.93x slower*) | | |
| **`Verify-StepCircuitSize-55711`** | `20.04 ms` (✅ **1.00x**) | `25.84 ms` (❌ *1.29x slower*) | | |
| **`Prove-StepCircuitSize-121247`** | `1.46 s` (✅ **1.00x**) | `3.13 s` (❌ *2.14x slower*) | | |
| **`Verify-StepCircuitSize-121247`** | `27.96 ms` (✅ **1.00x**) | `37.66 ms` (❌ *1.35x slower*) | | |
| **`Prove-StepCircuitSize-252319`** | `2.69 s` (✅ **1.00x**) | `5.88 s` (❌ *2.19x slower*) | | |
| **`Verify-StepCircuitSize-252319`** | `39.55 ms` (✅ **1.00x**) | `54.62 ms` (❌ *1.38x slower*) | | |
| **`Prove-StepCircuitSize-514463`** | `5.14 s` (✅ **1.00x**) | `11.42 s` (❌ *2.22x slower*) | | |
| **`Verify-StepCircuitSize-514463`** | `62.26 ms` (✅ **1.00x**) | `98.22 ms` (❌ *1.58x slower*) | | |
| **`Prove-StepCircuitSize-1038751`** | `9.87 s` (✅ **1.00x**) | `22.49 s` (❌ *2.28x slower*) | | |
| **`Verify-StepCircuitSize-1038751`** | `106.30 ms` (✅ **1.00x**) | `185.64 ms` (❌ *1.75x slower*) | | |
### CompressedSNARK-Commitments | |
| | `curve-cycle=Pasta` | `curve-cycle=Grumpkin` | | |
|:------------------------------------|:-----------------------------|:-------------------------------- | | |
| **`Prove-StepCircuitSize-0`** | `2.87 s` (✅ **1.00x**) | `3.38 s` (❌ *1.18x slower*) | | |
| **`Verify-StepCircuitSize-0`** | `23.33 ms` (✅ **1.00x**) | `22.63 ms` (✅ **1.03x faster**) | | |
| **`Prove-StepCircuitSize-6559`** | `5.54 s` (✅ **1.00x**) | `6.07 s` (✅ **1.10x slower**) | | |
| **`Verify-StepCircuitSize-6559`** | `26.83 ms` (✅ **1.00x**) | `25.27 ms` (✅ **1.06x faster**) | | |
| **`Prove-StepCircuitSize-22943`** | `4.89 s` (✅ **1.00x**) | `5.57 s` (❌ *1.14x slower*) | | |
| **`Verify-StepCircuitSize-22943`** | `26.47 ms` (✅ **1.00x**) | `25.45 ms` (✅ **1.04x faster**) | | |
| **`Prove-StepCircuitSize-55711`** | `9.50 s` (✅ **1.00x**) | `10.65 s` (❌ *1.12x slower*) | | |
| **`Verify-StepCircuitSize-55711`** | `41.61 ms` (✅ **1.00x**) | `38.42 ms` (✅ **1.08x faster**) | | |
| **`Prove-StepCircuitSize-121247`** | `7.12 s` (✅ **1.00x**) | `8.09 s` (❌ *1.14x slower*) | | |
| **`Verify-StepCircuitSize-121247`** | `41.17 ms` (✅ **1.00x**) | `38.98 ms` (✅ **1.06x faster**) | | |
| **`Prove-StepCircuitSize-252319`** | `13.93 s` (✅ **1.00x**) | `15.26 s` (✅ **1.10x slower**) | | |
| **`Verify-StepCircuitSize-252319`** | `74.33 ms` (✅ **1.00x**) | `71.78 ms` (✅ **1.04x faster**) | | |
### CompressedSNARKSuperNova-1circuit | |
| | `curve-cycle=Pasta` | `curve-cycle=Grumpkin` | | |
|:-------------------------------------|:-----------------------------|:--------------------------------- | | |
| **`Prove-StepCircuitSize-0`** | `386.84 ms` (✅ **1.00x**) | `446.40 ms` (❌ *1.15x slower*) | | |
| **`Verify-StepCircuitSize-0`** | `29.08 ms` (✅ **1.00x**) | `29.02 ms` (✅ **1.00x faster**) | | |
| **`Prove-StepCircuitSize-6540`** | `383.31 ms` (✅ **1.00x**) | `638.00 ms` (❌ *1.66x slower*) | | |
| **`Verify-StepCircuitSize-6540`** | `29.31 ms` (✅ **1.00x**) | `36.34 ms` (❌ *1.24x slower*) | | |
| **`Prove-StepCircuitSize-22924`** | `554.69 ms` (✅ **1.00x**) | `1.02 s` (❌ *1.84x slower*) | | |
| **`Verify-StepCircuitSize-22924`** | `36.36 ms` (✅ **1.00x**) | `26.88 ms` (✅ **1.35x faster**) | | |
| **`Prove-StepCircuitSize-55692`** | `887.91 ms` (✅ **1.00x**) | `1.74 s` (❌ *1.96x slower*) | | |
| **`Verify-StepCircuitSize-55692`** | `27.36 ms` (✅ **1.00x**) | `32.95 ms` (❌ *1.20x slower*) | | |
| **`Prove-StepCircuitSize-121228`** | `1.52 s` (✅ **1.00x**) | `3.13 s` (❌ *2.06x slower*) | | |
| **`Verify-StepCircuitSize-121228`** | `33.83 ms` (✅ **1.00x**) | `43.58 ms` (❌ *1.29x slower*) | | |
| **`Prove-StepCircuitSize-252300`** | `2.75 s` (✅ **1.00x**) | `6.00 s` (❌ *2.19x slower*) | | |
| **`Verify-StepCircuitSize-252300`** | `45.02 ms` (✅ **1.00x**) | `63.26 ms` (❌ *1.41x slower*) | | |
| **`Prove-StepCircuitSize-514444`** | `5.10 s` (✅ **1.00x**) | `11.63 s` (❌ *2.28x slower*) | | |
| **`Verify-StepCircuitSize-514444`** | `67.50 ms` (✅ **1.00x**) | `107.32 ms` (❌ *1.59x slower*) | | |
| **`Prove-StepCircuitSize-1038732`** | `9.81 s` (✅ **1.00x**) | `22.74 s` (❌ *2.32x slower*) | | |
| **`Verify-StepCircuitSize-1038732`** | `114.65 ms` (✅ **1.00x**) | `195.35 ms` (❌ *1.70x slower*) | | |
### CompressedSNARKSuperNova-2circuit | |
| | `curve-cycle=Pasta` | `curve-cycle=Grumpkin` | | |
|:-------------------------------------|:-----------------------------|:--------------------------------- | | |
| **`Prove-StepCircuitSize-0`** | `386.30 ms` (✅ **1.00x**) | `455.80 ms` (❌ *1.18x slower*) | | |
| **`Verify-StepCircuitSize-0`** | `29.81 ms` (✅ **1.00x**) | `29.54 ms` (✅ **1.01x faster**) | | |
| **`Prove-StepCircuitSize-6540`** | `393.51 ms` (✅ **1.00x**) | `637.21 ms` (❌ *1.62x slower*) | | |
| **`Verify-StepCircuitSize-6540`** | `30.12 ms` (✅ **1.00x**) | `37.63 ms` (❌ *1.25x slower*) | | |
| **`Prove-StepCircuitSize-22924`** | `553.79 ms` (✅ **1.00x**) | `1.03 s` (❌ *1.87x slower*) | | |
| **`Verify-StepCircuitSize-22924`** | `37.71 ms` (✅ **1.00x**) | `29.79 ms` (✅ **1.27x faster**) | | |
| **`Prove-StepCircuitSize-55692`** | `877.94 ms` (✅ **1.00x**) | `1.81 s` (❌ *2.06x slower*) | | |
| **`Verify-StepCircuitSize-55692`** | `30.72 ms` (✅ **1.00x**) | `37.47 ms` (❌ *1.22x slower*) | | |
| **`Prove-StepCircuitSize-121228`** | `1.51 s` (✅ **1.00x**) | `3.26 s` (❌ *2.16x slower*) | | |
| **`Verify-StepCircuitSize-121228`** | `39.59 ms` (✅ **1.00x**) | `49.77 ms` (❌ *1.26x slower*) | | |
| **`Prove-StepCircuitSize-252300`** | `2.78 s` (✅ **1.00x**) | `6.07 s` (❌ *2.18x slower*) | | |
| **`Verify-StepCircuitSize-252300`** | `52.46 ms` (✅ **1.00x**) | `73.63 ms` (❌ *1.40x slower*) | | |
| **`Prove-StepCircuitSize-514444`** | `5.27 s` (✅ **1.00x**) | `11.70 s` (❌ *2.22x slower*) | | |
| **`Verify-StepCircuitSize-514444`** | `82.57 ms` (✅ **1.00x**) | `134.28 ms` (❌ *1.63x slower*) | | |
| **`Prove-StepCircuitSize-1038732`** | `9.88 s` (✅ **1.00x**) | `23.43 s` (❌ *2.37x slower*) | | |
| **`Verify-StepCircuitSize-1038732`** | `147.19 ms` (✅ **1.00x**) | `246.57 ms` (❌ *1.68x slower*) | | |
### CompressedSNARKSuperNova-Commitments-2circuit | |
| | `curve-cycle=Pasta` | `curve-cycle=Grumpkin` | | |
|:-------------------------------------|:-----------------------------|:--------------------------------- | | |
| **`Prove-StepCircuitSize-0`** | `5.39 s` (✅ **1.00x**) | `6.17 s` (❌ *1.14x slower*) | | |
| **`Verify-StepCircuitSize-0`** | `48.78 ms` (✅ **1.00x**) | `46.47 ms` (✅ **1.05x faster**) | | |
| **`Prove-StepCircuitSize-6540`** | `9.51 s` (✅ **1.00x**) | `10.33 s` (✅ **1.09x slower**) | | |
| **`Verify-StepCircuitSize-6540`** | `57.97 ms` (✅ **1.00x**) | `55.47 ms` (✅ **1.05x faster**) | | |
| **`Prove-StepCircuitSize-22924`** | `8.39 s` (✅ **1.00x**) | `9.32 s` (✅ **1.11x slower**) | | |
| **`Verify-StepCircuitSize-22924`** | `58.40 ms` (✅ **1.00x**) | `55.63 ms` (✅ **1.05x faster**) | | |
| **`Prove-StepCircuitSize-55692`** | `15.12 s` (✅ **1.00x**) | `16.57 s` (✅ **1.10x slower**) | | |
| **`Verify-StepCircuitSize-55692`** | `73.42 ms` (✅ **1.00x**) | `68.47 ms` (✅ **1.07x faster**) | | |
| **`Prove-StepCircuitSize-121228`** | `10.13 s` (✅ **1.00x**) | `11.78 s` (❌ *1.16x slower*) | | |
| **`Verify-StepCircuitSize-121228`** | `74.25 ms` (✅ **1.00x**) | `68.44 ms` (✅ **1.08x faster**) | | |
| **`Prove-StepCircuitSize-252300`** | `19.35 s` (✅ **1.00x**) | `21.55 s` (❌ *1.11x slower*) | | |
| **`Verify-StepCircuitSize-252300`** | `106.53 ms` (✅ **1.00x**) | `100.84 ms` (✅ **1.06x faster**) | | |
| **`Prove-StepCircuitSize-514444`** | `36.97 s` (✅ **1.00x**) | `40.13 s` (✅ **1.09x slower**) | | |
| **`Verify-StepCircuitSize-514444`** | `170.73 ms` (✅ **1.00x**) | `162.33 ms` (✅ **1.05x faster**) | | |
| **`Prove-StepCircuitSize-1038732`** | `71.42 s` (✅ **1.00x**) | `77.24 s` (✅ **1.08x slower**) | | |
| **`Verify-StepCircuitSize-1038732`** | `297.00 ms` (✅ **1.00x**) | `280.31 ms` (✅ **1.06x faster**) | | |
### RecursiveSNARK | |
| | `curve-cycle=Pasta` | `curve-cycle=Grumpkin` | | |
|:-------------------------------------|:-----------------------------|:--------------------------------- | | |
| **`Prove-StepCircuitSize-0`** | `37.14 ms` (✅ **1.00x**) | `28.64 ms` (✅ **1.30x faster**) | | |
| **`Verify-StepCircuitSize-0`** | `15.90 ms` (✅ **1.00x**) | `16.55 ms` (✅ **1.04x slower**) | | |
| **`Prove-StepCircuitSize-6559`** | `43.38 ms` (✅ **1.00x**) | `36.71 ms` (✅ **1.18x faster**) | | |
| **`Verify-StepCircuitSize-6559`** | `20.56 ms` (✅ **1.00x**) | `21.33 ms` (✅ **1.04x slower**) | | |
| **`Prove-StepCircuitSize-22943`** | `59.44 ms` (✅ **1.00x**) | `53.72 ms` (✅ **1.11x faster**) | | |
| **`Verify-StepCircuitSize-22943`** | `32.63 ms` (✅ **1.00x**) | `33.49 ms` (✅ **1.03x slower**) | | |
| **`Prove-StepCircuitSize-55711`** | `72.48 ms` (✅ **1.00x**) | `43.64 ms` (✅ **1.66x faster**) | | |
| **`Verify-StepCircuitSize-55711`** | `34.33 ms` (✅ **1.00x**) | `19.48 ms` (✅ **1.76x faster**) | | |
| **`Prove-StepCircuitSize-121247`** | `58.92 ms` (✅ **1.00x**) | `55.99 ms` (✅ **1.05x faster**) | | |
| **`Verify-StepCircuitSize-121247`** | `21.80 ms` (✅ **1.00x**) | `23.47 ms` (✅ **1.08x slower**) | | |
| **`Prove-StepCircuitSize-252319`** | `82.62 ms` (✅ **1.00x**) | `73.86 ms` (✅ **1.12x faster**) | | |
| **`Verify-StepCircuitSize-252319`** | `33.35 ms` (✅ **1.00x**) | `31.68 ms` (✅ **1.05x faster**) | | |
| **`Prove-StepCircuitSize-514463`** | `105.16 ms` (✅ **1.00x**) | `100.76 ms` (✅ **1.04x faster**) | | |
| **`Verify-StepCircuitSize-514463`** | `42.63 ms` (✅ **1.00x**) | `41.01 ms` (✅ **1.04x faster**) | | |
| **`Prove-StepCircuitSize-1038751`** | `167.04 ms` (✅ **1.00x**) | `164.66 ms` (✅ **1.01x faster**) | | |
| **`Verify-StepCircuitSize-1038751`** | `81.63 ms` (✅ **1.00x**) | `81.64 ms` (✅ **1.00x slower**) | | |
### RecursiveSNARKSuperNova-1circuit | |
| | `curve-cycle=Pasta` | `curve-cycle=Grumpkin` | | |
|:-------------------------------------|:-----------------------------|:--------------------------------- | | |
| **`Prove-StepCircuitSize-0`** | `39.01 ms` (✅ **1.00x**) | `30.59 ms` (✅ **1.28x faster**) | | |
| **`Verify-StepCircuitSize-0`** | `18.66 ms` (✅ **1.00x**) | `19.14 ms` (✅ **1.03x slower**) | | |
| **`Prove-StepCircuitSize-6540`** | `45.81 ms` (✅ **1.00x**) | `38.97 ms` (✅ **1.18x faster**) | | |
| **`Verify-StepCircuitSize-6540`** | `23.52 ms` (✅ **1.00x**) | `24.24 ms` (✅ **1.03x slower**) | | |
| **`Prove-StepCircuitSize-22924`** | `65.87 ms` (✅ **1.00x**) | `56.42 ms` (✅ **1.17x faster**) | | |
| **`Verify-StepCircuitSize-22924`** | `35.79 ms` (✅ **1.00x**) | `37.38 ms` (✅ **1.04x slower**) | | |
| **`Prove-StepCircuitSize-55692`** | `75.20 ms` (✅ **1.00x**) | `45.37 ms` (✅ **1.66x faster**) | | |
| **`Verify-StepCircuitSize-55692`** | `38.84 ms` (✅ **1.00x**) | `22.44 ms` (✅ **1.73x faster**) | | |
| **`Prove-StepCircuitSize-121228`** | `64.17 ms` (✅ **1.00x**) | `58.68 ms` (✅ **1.09x faster**) | | |
| **`Verify-StepCircuitSize-121228`** | `31.00 ms` (✅ **1.00x**) | `30.49 ms` (✅ **1.02x faster**) | | |
| **`Prove-StepCircuitSize-252300`** | `87.73 ms` (✅ **1.00x**) | `74.21 ms` (✅ **1.18x faster**) | | |
| **`Verify-StepCircuitSize-252300`** | `48.88 ms` (✅ **1.00x**) | `43.30 ms` (✅ **1.13x faster**) | | |
| **`Prove-StepCircuitSize-514444`** | `114.79 ms` (✅ **1.00x**) | `103.58 ms` (✅ **1.11x faster**) | | |
| **`Verify-StepCircuitSize-514444`** | `67.26 ms` (✅ **1.00x**) | `66.60 ms` (✅ **1.01x faster**) | | |
| **`Prove-StepCircuitSize-1038732`** | `180.49 ms` (✅ **1.00x**) | `174.22 ms` (✅ **1.04x faster**) | | |
| **`Verify-StepCircuitSize-1038732`** | `123.61 ms` (✅ **1.00x**) | `124.43 ms` (✅ **1.01x slower**) | | |
### RecursiveSNARKSuperNova-2circuit | |
| | `curve-cycle=Pasta` | `curve-cycle=Grumpkin` | | |
|:-------------------------------------|:-----------------------------|:--------------------------------- | | |
| **`Prove-StepCircuitSize-0`** | `38.71 ms` (✅ **1.00x**) | `30.61 ms` (✅ **1.26x faster**) | | |
| **`Verify-StepCircuitSize-0`** | `18.73 ms` (✅ **1.00x**) | `19.18 ms` (✅ **1.02x slower**) | | |
| **`Prove-StepCircuitSize-6540`** | `45.46 ms` (✅ **1.00x**) | `38.61 ms` (✅ **1.18x faster**) | | |
| **`Verify-StepCircuitSize-6540`** | `23.50 ms` (✅ **1.00x**) | `24.34 ms` (✅ **1.04x slower**) | | |
| **`Prove-StepCircuitSize-22924`** | `63.35 ms` (✅ **1.00x**) | `55.79 ms` (✅ **1.14x faster**) | | |
| **`Verify-StepCircuitSize-22924`** | `35.81 ms` (✅ **1.00x**) | `37.56 ms` (✅ **1.05x slower**) | | |
| **`Prove-StepCircuitSize-55692`** | `74.51 ms` (✅ **1.00x**) | `45.26 ms` (✅ **1.65x faster**) | | |
| **`Verify-StepCircuitSize-55692`** | `38.74 ms` (✅ **1.00x**) | `22.33 ms` (✅ **1.73x faster**) | | |
| **`Prove-StepCircuitSize-121228`** | `63.68 ms` (✅ **1.00x**) | `58.75 ms` (✅ **1.08x faster**) | | |
| **`Verify-StepCircuitSize-121228`** | `30.62 ms` (✅ **1.00x**) | `31.17 ms` (✅ **1.02x slower**) | | |
| **`Prove-StepCircuitSize-252300`** | `87.72 ms` (✅ **1.00x**) | `73.84 ms` (✅ **1.19x faster**) | | |
| **`Verify-StepCircuitSize-252300`** | `48.96 ms` (✅ **1.00x**) | `43.14 ms` (✅ **1.13x faster**) | | |
| **`Prove-StepCircuitSize-514444`** | `115.08 ms` (✅ **1.00x**) | `103.71 ms` (✅ **1.11x faster**) | | |
| **`Verify-StepCircuitSize-514444`** | `67.81 ms` (✅ **1.00x**) | `66.97 ms` (✅ **1.01x faster**) | | |
| **`Prove-StepCircuitSize-1038732`** | `180.85 ms` (✅ **1.00x**) | `171.44 ms` (✅ **1.05x faster**) | | |
| **`Verify-StepCircuitSize-1038732`** | `124.33 ms` (✅ **1.00x**) | `120.19 ms` (✅ **1.03x faster**) | | |
--- | |
Made with [criterion-table](https://github.com/nu11ptr/criterion-table) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment