From 7c0be5cb236595bea2df1d639ede5bf32e5f3220 Mon Sep 17 00:00:00 2001 From: ashjeong Date: Tue, 13 Aug 2024 13:34:58 +0900 Subject: [PATCH] docs(benchmark): add baby bear poseidon2 benchmark results --- benchmark/poseidon2/README.md | 90 ++++++++++++++++++ ...on2_benchmark_baby_bear_horizen_mac_m2.png | Bin 0 -> 20910 bytes ..._benchmark_baby_bear_horizen_ubuntu_i9.png | Bin 0 -> 25674 bytes ...on2_benchmark_baby_bear_plonky3_mac_m2.png | Bin 0 -> 26743 bytes ..._benchmark_baby_bear_plonky3_ubuntu_i9.png | Bin 0 -> 24088 bytes 5 files changed, 90 insertions(+) create mode 100644 benchmark/poseidon2/poseidon2_benchmark_baby_bear_horizen_mac_m2.png create mode 100644 benchmark/poseidon2/poseidon2_benchmark_baby_bear_horizen_ubuntu_i9.png create mode 100644 benchmark/poseidon2/poseidon2_benchmark_baby_bear_plonky3_mac_m2.png create mode 100644 benchmark/poseidon2/poseidon2_benchmark_baby_bear_plonky3_ubuntu_i9.png diff --git a/benchmark/poseidon2/README.md b/benchmark/poseidon2/README.md index e48d48987..c91c6cb0b 100644 --- a/benchmark/poseidon2/README.md +++ b/benchmark/poseidon2/README.md @@ -59,3 +59,93 @@ bazel run -c opt --//:has_openmp --//:has_rtti --//:has_matplotlib //benchmark/p | avg | 9.5e-06 | **7.6e-06** | 1.06e-05 | --> ![image](/benchmark/poseidon2/poseidon2_benchmark_bn254_mac_m3.png) + +## Baby Bear + +Note: Plonky3 and Horizen compute values with a different internal matrix, requiring them to be compared with Tachyon separately. + +### Plonky3 + +```shell +bazel run -c opt --//:has_openmp --//:has_rtti --//:has_matplotlib //benchmark/poseidon2:poseidon2_benchmark -- -p baby_bear --vendor plonky3 --check_results +``` + +### Horizen + +```shell +bazel run -c opt --//:has_openmp --//:has_rtti --//:has_matplotlib //benchmark/poseidon2:poseidon2_benchmark -- -p baby_bear --vendor horizen --check_results +``` + +### On Intel i9-13900K - Plonky3 + +| Trial Number | Tachyon | Plonky3 | +| :----------- | --------- | ------------ | +| 0 | 0.000112 | **6.6e-05** | +| 1 | 0.000111 | **6.5e-05** | +| 2 | 0.000111 | **6.6e-05** | +| 3 | 0.000111 | **6.6e-05** | +| 4 | 0.00011 | **6.6e-05** | +| 5 | 0.000116 | **6.6e-05** | +| 6 | 0.00011 | **6.5e-05** | +| 7 | 0.000109 | **6.6e-05** | +| 8 | 0.00011 | **6.6e-05** | +| 9 | 0.000109 | **6.5e-05** | +| avg | 0.0001109 | **6.57e-05** | + +![image](/benchmark/poseidon2/poseidon2_benchmark_baby_bear_plonky3_ubuntu_i9.png) + +### On Intel i9-13900K - Horizen + +| Trial Number | Tachyon | Horizen | +| :----------- | ------------- | --------- | +| 0 | **0.000127** | 0.000381 | +| 1 | **0.000126** | 0.00036 | +| 2 | **0.000125** | 0.00037 | +| 3 | **0.000125** | 0.000356 | +| 4 | **0.000125** | 0.000354 | +| 5 | **0.000125** | 0.000354 | +| 6 | **0.000125** | 0.000354 | +| 7 | **0.000125** | 0.00036 | +| 8 | **0.000125** | 0.000359 | +| 9 | **0.000125** | 0.000353 | +| avg | **0.0001253** | 0.0003601 | + +![image](/benchmark/poseidon2/poseidon2_benchmark_baby_bear_horizen_ubuntu_i9.png) + +#### On Mac M3 Pro - Plonky3 + + + + +![image](/benchmark/poseidon2/poseidon2_benchmark_baby_bear_plonky3_mac_m2.png) + +#### On Mac M3 Pro - Horizen + + + + +![image](/benchmark/poseidon2/poseidon2_benchmark_baby_bear_horizen_mac_m2.png) diff --git a/benchmark/poseidon2/poseidon2_benchmark_baby_bear_horizen_mac_m2.png b/benchmark/poseidon2/poseidon2_benchmark_baby_bear_horizen_mac_m2.png new file mode 100644 index 0000000000000000000000000000000000000000..8916792ffac9019043c1b135dd4bfb9f0d04f090 GIT binary patch literal 20910 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 literal 0 HcmV?d00001 diff --git a/benchmark/poseidon2/poseidon2_benchmark_baby_bear_horizen_ubuntu_i9.png b/benchmark/poseidon2/poseidon2_benchmark_baby_bear_horizen_ubuntu_i9.png new file mode 100644 index 0000000000000000000000000000000000000000..e56d89e31508bdd59ee8b5f6e58c1d35fa8c572b GIT binary patch literal 25674 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 literal 0 HcmV?d00001 diff --git a/benchmark/poseidon2/poseidon2_benchmark_baby_bear_plonky3_mac_m2.png b/benchmark/poseidon2/poseidon2_benchmark_baby_bear_plonky3_mac_m2.png new file mode 100644 index 0000000000000000000000000000000000000000..89a8eae9a548d9da3ea6eb4eafad361f285745b5 GIT binary patch literal 26743 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 SBbwMLYS)f^s*hC+z5gE{POQ%W literal 0 HcmV?d00001 diff --git a/benchmark/poseidon2/poseidon2_benchmark_baby_bear_plonky3_ubuntu_i9.png b/benchmark/poseidon2/poseidon2_benchmark_baby_bear_plonky3_ubuntu_i9.png new file mode 100644 index 0000000000000000000000000000000000000000..2002933ad223e04ad3963cf7d80b863452fd0838 GIT binary patch literal 24088 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%0Asw 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