-
Notifications
You must be signed in to change notification settings - Fork 101
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Relations vs widgets benchmarking (#3931)
Add code to measure Plonk widget execution vs Honk relation execution. Outputs below. ## Summary of results Here are values of widget time/relation time: ``` Arithmetic 0.8342541436464088 GenPermSort 1.0814663951120163 Elliptic 0.8155940594059405 Auxiliary 0.7053435114503817 Plookup 0.7008310249307479 Permutation 1.192233009708738 ``` ## Benchmark outputs ``` % ./bin/relations_bench 17s ~/barretenberg-cpp/build cg/relation-check-bench + mainframe 2024-01-10T19:27:00+00:00 Running ./bin/relations_bench Run on (128 X 2649.99 MHz CPU s) CPU Caches: L1 Data 32 KiB (x64) L1 Instruction 32 KiB (x64) L2 Unified 512 KiB (x64) L3 Unified 32768 KiB (x8) Load Average: 12.24, 23.55, 50.13 -------------------------------------------------------------------------------------------------------------------------------------------- Benchmark Time CPU Iterations -------------------------------------------------------------------------------------------------------------------------------------------- execute_relation<honk::flavor::Ultra, UltraArithmeticRelation<Fr>> 543 ns 543 ns 1289230 execute_relation<honk::flavor::Ultra, GenPermSortRelation<Fr>> 491 ns 491 ns 1423778 execute_relation<honk::flavor::Ultra, EllipticRelation<Fr>> 808 ns 808 ns 866448 execute_relation<honk::flavor::Ultra, AuxiliaryRelation<Fr>> 1965 ns 1965 ns 357614 execute_relation<honk::flavor::Ultra, LookupRelation<Fr>> 722 ns 722 ns 969890 execute_relation<honk::flavor::Ultra, UltraPermutationRelation<Fr>> 515 ns 515 ns 1358778 ``` ``` % taskset -c 0 ./bin/widget_bench 1m 57s ~/barretenberg-cpp/build cg/relation-check-bench + mainframe 2024-01-10T19:15:11+00:00 Running ./bin/widget_bench Run on (128 X 2649.99 MHz CPU s) CPU Caches: L1 Data 32 KiB (x64) L1 Instruction 32 KiB (x64) L2 Unified 512 KiB (x64) L3 Unified 32768 KiB (x8) Load Average: 25.77, 74.54, 79.34 ---------------------------------------------------------------------------------------------------------------------------------------- Benchmark Time CPU Iterations ---------------------------------------------------------------------------------------------------------------------------------------- quotient_contribution<ProverPlookupArithmeticWidget<ultra_settings>>/iterations:1/manual_time 453 ns 186172 ns 1 quotient_contribution<ProverGenPermSortWidget<ultra_settings>>/iterations:1/manual_time 531 ns 165501 ns 1 quotient_contribution<ProverEllipticWidget<ultra_settings>>/iterations:1/manual_time 659 ns 174561 ns 1 quotient_contribution<ProverPlookupAuxiliaryWidget<ultra_settings>>/iterations:1/manual_time 1386 ns 206071 ns 1 quotient_contribution<ProverPlookupWidget<4>>/iterations:1/manual_time 506 ns 188280 ns 1 quotient_contribution<ProverPermutationWidget<4, true>>/iterations:1/manual_time 614 ns 167110 ns 1 ```
- Loading branch information
1 parent
8222995
commit 571ae25
Showing
4 changed files
with
104 additions
and
139 deletions.
There are no files selected for viewing
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
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
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
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