diff --git a/benchmark/msm/README.md b/benchmark/msm/README.md index 0ffaf18f7..3869f29b8 100644 --- a/benchmark/msm/README.md +++ b/benchmark/msm/README.md @@ -4,6 +4,7 @@ ``` Run on 13th Gen Intel(R) Core(TM) i9-13900K (32 X 5500 MHz CPU s) +Compiler: clang-15 CPU Caches: L1 Data 48 KiB (x16) L1 Instruction 32 KiB (x16) @@ -17,24 +18,26 @@ CPU Caches: L2 Unified 4096 KiB (x12) ``` +Note: Run with `build --@rules_rust//:extra_rustc_flags="-Ctarget-cpu=native"` in your .bazelrc.user + ### Uniform points ```shell -bazel run --config opt --//:has_matplotlib //benchmark/msm:msm_benchmark -- -k 16 -k 17 -k 18 -k 19 -k 20 -k 21 -k 22 -k 23 --vendor arkworks --vendor bellman --vendor halo2 --check_results +GOMP_SPINCOUNT=0 bazel run --config maxopt --//:has_matplotlib //benchmark/msm:msm_benchmark -- -k 16 -k 17 -k 18 -k 19 -k 20 -k 21 -k 22 -k 23 --vendor arkworks --vendor bellman --vendor halo2 --check_results ``` #### On Intel i9-13900K | Exponent | Tachyon | Arkworks | Bellman | Halo2 | | :------: | ------------ | -------- | -------- | -------- | -| 16 | **0.037107** | 0.043005 | 0.079576 | 0.04854 | -| 17 | **0.051857** | 0.078176 | 0.11077 | 0.087005 | -| 18 | **0.10235** | 0.15416 | 0.179148 | 0.146375 | -| 19 | **0.185314** | 0.301129 | 0.360499 | 0.273742 | -| 20 | **0.352276** | 0.592931 | 0.516447 | 0.533842 | -| 21 | **0.630413** | 1.07979 | 1.00715 | 1.01114 | -| 22 | **1.22393** | 2.18742 | 2.00827 | 1.99418 | -| 23 | **2.34737** | 4.34471 | 3.2081 | 3.62107 | +| 16 | **0.028461** | 0.037741 | 0.077416 | 0.045742 | +| 17 | **0.059648** | 0.074936 | 0.105104 | 0.08211 | +| 18 | **0.08743** | 0.12735 | 0.196602 | 0.151715 | +| 19 | **0.181646** | 0.252424 | 0.319185 | 0.282056 | +| 20 | **0.303829** | 0.454595 | 0.471094 | 0.526231 | +| 21 | **0.549287** | 0.951397 | 0.886244 | 1.00624 | +| 22 | **1.11021** | 2.00783 | 1.72011 | 1.9662 | +| 23 | **2.06762** | 3.78478 | 2.76673 | 3.68139 | ![image](/benchmark/msm/msm_benchmark_uniform_ubuntu_i9.png) @@ -42,35 +45,35 @@ bazel run --config opt --//:has_matplotlib //benchmark/msm:msm_benchmark -- -k 1 | Exponent | Tachyon | Arkworks | Bellman | Halo2 | | :------: | ------------ | -------- | -------- | -------- | -| 16 | **0.049285** | 0.052368 | 0.118564 | 0.079168 | -| 17 | **0.088628** | 0.105875 | 0.16704 | 0.142758 | -| 18 | **0.157609** | 0.19186 | 0.299953 | 0.278592 | -| 19 | **0.282686** | 0.351326 | 0.578682 | 0.506371 | -| 20 | **0.571241** | 0.702036 | 0.901252 | 0.974515 | -| 21 | **1.106550** | 1.54553 | 1.63521 | 1.85615 | -| 22 | **2.276600** | 3.35888 | 3.274 | 3.68391 | -| 23 | **4.191330** | 6.41272 | 5.86292 | 6.89936 | +| 16 | **0.046099** | 0.051773 | 0.110882 | 0.09505 | +| 17 | **0.079298** | 0.097698 | 0.166183 | 0.174984 | +| 18 | **0.151962** | 0.173607 | 0.296879 | 0.337657 | +| 19 | **0.287848** | 0.34129 | 0.5563 | 0.592885 | +| 20 | **0.504987** | 0.630489 | 0.840907 | 1.07097 | +| 21 | **0.980302** | 1.33391 | 1.56196 | 1.98335 | +| 22 | **1.89977** | 2.86768 | 3.04392 | 3.9341 | +| 23 | **3.73015** | 5.71419 | 5.45636 | 7.51033 | ![image](/benchmark/msm/msm_benchmark_uniform_mac_m3.png) ### Non-uniform points ```shell -bazel run --config opt --//:has_matplotlib //benchmark/msm:msm_benchmark -- -k 16 -k 17 -k 18 -k 19 -k 20 -k 21 -k 22 -k 23 --vendor arkworks --vendor bellman --vendor halo2 --test_set non_uniform --check_results +GOMP_SPINCOUNT=0 bazel run --config maxopt --//:has_matplotlib //benchmark/msm:msm_benchmark -- -k 16 -k 17 -k 18 -k 19 -k 20 -k 21 -k 22 -k 23 --vendor arkworks --vendor bellman --vendor halo2 --test_set non_uniform --check_results ``` #### On Intel i9-13900K -| Exponent | Tachyon | Arkworks | Bellman | Halo2 | -| :------: | ------------ | ------------ | -------- | -------- | -| 16 | 0.041756 | **0.038514** | 0.050397 | 0.040222 | -| 17 | **0.06304** | 0.069963 | 0.067314 | 0.07276 | -| 18 | **0.09546** | 0.137724 | 0.126665 | 0.138729 | -| 19 | **0.189892** | 0.261193 | 0.262439 | 0.26166 | -| 20 | **0.313575** | 0.475754 | 0.387448 | 0.51257 | -| 21 | **0.550828** | 0.901562 | 0.666334 | 0.955411 | -| 22 | **1.14408** | 1.61699 | 1.29853 | 1.88522 | -| 23 | **1.91659** | 3.13911 | 2.16368 | 3.46701 | +| Exponent | Tachyon | Arkworks | Bellman | Halo2 | +| :------: | ------------ | -------- | -------- | -------- | +| 16 | **0.030188** | 0.033608 | 0.057795 | 0.060642 | +| 17 | **0.048851** | 0.064059 | 0.132584 | 0.099568 | +| 18 | **0.080146** | 0.121525 | 0.124192 | 0.147496 | +| 19 | **0.147626** | 0.227517 | 0.234429 | 0.27793 | +| 20 | **0.289661** | 0.445139 | 0.341189 | 0.509375 | +| 21 | **0.495707** | 0.801975 | 0.702259 | 1.0386 | +| 22 | **0.993738** | 1.51266 | 1.24812 | 1.88462 | +| 23 | **1.69944** | 3.07904 | 2.00071 | 3.57452 | ![image](/benchmark/msm/msm_benchmark_non_uniform_ubuntu_i9.png) @@ -78,14 +81,14 @@ bazel run --config opt --//:has_matplotlib //benchmark/msm:msm_benchmark -- -k 1 | Exponent | Tachyon | Arkworks | Bellman | Halo2 | | :------: | ------------ | -------- | -------- | -------- | -| 16 | **0.040045** | 0.049862 | 0.083292 | 0.082423 | -| 17 | **0.074318** | 0.091205 | 0.128679 | 0.157111 | -| 18 | **0.140125** | 0.177842 | 0.232212 | 0.310648 | -| 19 | **0.287691** | 0.330268 | 0.437016 | 0.535915 | -| 20 | **0.55437** | 0.651841 | 0.713282 | 1.01238 | -| 21 | **1.01053** | 1.36348 | 1.29945 | 1.75816 | -| 22 | **2.00677** | 2.56 | 2.49532 | 3.55769 | -| 23 | **4.02119** | 5.2982 | 4.56454 | 7.11582 | +| 16 | **0.040954** | 0.046663 | 0.076068 | 0.089352 | +| 17 | **0.069956** | 0.089339 | 0.119363 | 0.166812 | +| 18 | **0.146869** | 0.163578 | 0.225768 | 0.326553 | +| 19 | **0.268475** | 0.302439 | 0.460063 | 0.579915 | +| 20 | **0.501956** | 0.627272 | 0.723071 | 1.09316 | +| 21 | **0.920728** | 1.20662 | 1.22352 | 1.98457 | +| 22 | **1.78902** | 2.40124 | 2.24543 | 3.83765 | +| 23 | **3.47906** | 4.70651 | 4.13381 | 7.43978 | ![image](/benchmark/msm/msm_benchmark_non_uniform_mac_m3.png) @@ -94,41 +97,41 @@ bazel run --config opt --//:has_matplotlib //benchmark/msm:msm_benchmark -- -k 1 ### Uniform points ```shell -bazel run --config opt --//:has_matplotlib --config cuda //benchmark/msm:msm_benchmark_gpu -- -k 16 -k 17 -k 18 -k 19 -k 20 -k 21 -k 22 -k 23 --test_set non_uniform --check_results +GOMP_SPINCOUNT=0 bazel run --config maxopt --//:has_matplotlib --config cuda //benchmark/msm:msm_benchmark_gpu -- -k 16 -k 17 -k 18 -k 19 -k 20 -k 21 -k 22 -k 23 --test_set non_uniform --check_results ``` #### On RTX-4090 | Exponent | Tachyon CPU | Tachyon GPU | | :------: | ----------- | ------------ | -| 16 | 0.044828 | **0.02644** | -| 17 | 0.070154 | **0.008896** | -| 18 | 0.120668 | **0.015391** | -| 19 | 0.191098 | **0.021299** | -| 20 | 0.369561 | **0.032302** | -| 21 | 0.675571 | **0.060279** | -| 22 | 1.26675 | **0.166554** | -| 23 | 2.41323 | **0.219751** | +| 16 | 0.026688 | **0.01981** | +| 17 | 0.041291 | **0.006624** | +| 18 | 0.081467 | **0.008306** | +| 19 | 0.148929 | **0.012553** | +| 20 | 0.260831 | **0.02423** | +| 21 | 0.474542 | **0.044591** | +| 22 | 0.921276 | **0.088349** | +| 23 | 1.70264 | **0.162646** | ![image](/benchmark/msm/msm_benchmark_uniform_ubuntu_rtx_4090.png) ### Non-uniform points ```shell -bazel run --config opt --//:has_matplotlib --config cuda //benchmark/msm:msm_benchmark_gpu -- -k 16 -k 17 -k 18 -k 19 -k 20 -k 21 -k 22 -k 23 --check_results +GOMP_SPINCOUNT=0 bazel run --config maxopt --//:has_matplotlib --config cuda //benchmark/msm:msm_benchmark_gpu -- -k 16 -k 17 -k 18 -k 19 -k 20 -k 21 -k 22 -k 23 --check_results ``` #### On RTX-4090 | Exponent | Tachyon CPU | Tachyon GPU | | :------: | ----------- | ------------ | -| 16 | 0.044986 | **0.025648** | -| 17 | 0.061027 | **0.010882** | -| 18 | 0.108204 | **0.012794** | -| 19 | 0.182035 | **0.022456** | -| 20 | 0.326646 | **0.033684** | -| 21 | 0.589097 | **0.060135** | -| 22 | 1.11816 | **0.169485** | -| 23 | 2.11566 | **0.219624** | +| 16 | 0.029045 | **0.020228** | +| 17 | 0.047588 | **0.006565** | +| 18 | 0.089673 | **0.008864** | +| 19 | 0.164875 | **0.012308** | +| 20 | 0.29135 | **0.023396** | +| 21 | 0.541067 | **0.043512** | +| 22 | 1.0379 | **0.08407** | +| 23 | 2.08601 | **0.157046** | ![image](/benchmark/msm/msm_benchmark_non_uniform_ubuntu_rtx_4090.png) diff --git a/benchmark/msm/msm_benchmark_non_uniform_mac_m3.png b/benchmark/msm/msm_benchmark_non_uniform_mac_m3.png index ea7962ee0..85e14d747 100644 Binary files a/benchmark/msm/msm_benchmark_non_uniform_mac_m3.png and b/benchmark/msm/msm_benchmark_non_uniform_mac_m3.png differ diff --git a/benchmark/msm/msm_benchmark_non_uniform_ubuntu_i9.png b/benchmark/msm/msm_benchmark_non_uniform_ubuntu_i9.png index 80eb790a9..cbfa22832 100644 Binary files a/benchmark/msm/msm_benchmark_non_uniform_ubuntu_i9.png and b/benchmark/msm/msm_benchmark_non_uniform_ubuntu_i9.png differ diff --git a/benchmark/msm/msm_benchmark_non_uniform_ubuntu_rtx_4090.png b/benchmark/msm/msm_benchmark_non_uniform_ubuntu_rtx_4090.png index 345013b02..50015ffe3 100644 Binary files a/benchmark/msm/msm_benchmark_non_uniform_ubuntu_rtx_4090.png and b/benchmark/msm/msm_benchmark_non_uniform_ubuntu_rtx_4090.png differ diff --git a/benchmark/msm/msm_benchmark_uniform_mac_m3.png b/benchmark/msm/msm_benchmark_uniform_mac_m3.png index 2ad4fa8b9..13d487118 100644 Binary files a/benchmark/msm/msm_benchmark_uniform_mac_m3.png and b/benchmark/msm/msm_benchmark_uniform_mac_m3.png differ diff --git a/benchmark/msm/msm_benchmark_uniform_ubuntu_i9.png b/benchmark/msm/msm_benchmark_uniform_ubuntu_i9.png index 187158ca4..106d7f9a5 100644 Binary files a/benchmark/msm/msm_benchmark_uniform_ubuntu_i9.png and b/benchmark/msm/msm_benchmark_uniform_ubuntu_i9.png differ diff --git a/benchmark/msm/msm_benchmark_uniform_ubuntu_rtx_4090.png b/benchmark/msm/msm_benchmark_uniform_ubuntu_rtx_4090.png index 4e5ccee25..e2774ec9e 100644 Binary files a/benchmark/msm/msm_benchmark_uniform_ubuntu_rtx_4090.png and b/benchmark/msm/msm_benchmark_uniform_ubuntu_rtx_4090.png differ