Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimization #44

Closed
5 of 9 tasks
ashWhiteHat opened this issue Jan 7, 2023 · 5 comments
Closed
5 of 9 tasks

Optimization #44

ashWhiteHat opened this issue Jan 7, 2023 · 5 comments

Comments

@ashWhiteHat
Copy link
Member

ashWhiteHat commented Jan 7, 2023

Improve Performance

Benchmark

Benchmark
Benchmark(msm)

Bls12 381

_ add sub double scalar / mul square invert pow
g1_affine 1.3802 µs 1.3856 µs 1.3925 µs 1.3730 µs 1.3738 µs 1.3744 µs 1.0493 µs 1.0498 µs 1.0503 µs 434.38 µs 434.51 µs 434.64 µs _ _ _
g1_projective 1.3702 µs 1.3706 µs 1.3709 µs 1.3729 µs 1.3736 µs 1.3742 µs 1.0494 µs 1.0498 µs 1.0502 µs 427.97 µs 428.12 µs 428.26 µs _ _ _
g2_affine 5.6784 µs 5.6795 µs 5.6805 µs 5.6940 µs 5.6953 µs 5.6963 µs 4.2977 µs 4.2981 µs 4.2985 µs 1.8001 ms 1.8007 ms 1.8012 ms _ _ _
g2_projective 5.6720 µs 5.6751 µs 5.6778 µs 5.6812 µs 5.6857 µs 5.6897 µs 4.2811 µs 4.2859 µs 4.2901 µs 1.7669 ms 1.7688 ms 1.7713 ms _ _ _
fr 8.9125 ns 8.9551 ns 9.0299 ns 8.4102 ns 8.4159 ns 8.4214 ns 8.1814 ns 8.1863 ns 8.1911 ns 48.537 ns 48.568 ns 48.599 ns 42.951 ns 42.958 ns 42.965 ns 21.729 µs 21.735 µs 21.740 µs 15.083 µs 15.086 µs 15.088 µs
fq 15.142 ns 15.155 ns 15.166 ns 12.897 ns 12.907 ns 12.914 ns 13.669 ns 13.681 ns 13.691 ns 93.201 ns 93.223 ns 93.244 ns 92.196 ns 92.204 ns 92.214 ns 55.277 µs 55.282 µs 55.288 µs _
fq2 31.849 ns 31.886 ns 31.933 ns 29.618 ns 29.637 ns 29.658 ns 36.221 ns 36.264 ns 36.302 ns 384.25 ns 385.80 ns 387.77 ns 377.49 ns 377.84 ns 378.21 ns 55.623 µs 55.641 µs 55.656 µs _
fq6 152.50 ns 152.58 ns 152.65 ns 137.74 ns 137.76 ns 137.78 ns 144.41 ns 144.48 ns 144.55 ns 2.7686 µs 2.7725 µs 2.7774 µs 2.1881 µs 2.1896 µs 2.1908 µs 60.240 µs 60.262 µs 60.281 µs _
fq12 359.73 ns 359.96 ns 360.17 ns 329.51 ns 329.66 ns 329.77 ns 384.40 ns 384.75 ns 385.44 ns 8.8706 µs 8.8997 µs 8.9387 µs 6.1294 µs 6.1326 µs 6.1353 µs 70.075 µs 70.126 µs 70.174 µs _

Confidential Transfer

_ Time
setup 8.4388 s 8.4458 s 8.4534 s
gen_proof 10.676 s 10.758 s 10.879 s
verify_proof 13.477 ms 13.557 ms 13.680 ms

Jubjub

_ add sub double scalar / mul square invert pow
extended 547.36 ns 548.05 ns 548.78 ns 546.90 ns 547.04 ns 547.16 ns 375.16 ns 375.22 ns 375.29 ns 193.98 µs 194.00 µs 194.02 µs _ _ _
fp 8.9547 ns 9.0156 ns 9.0807 ns 8.4317 ns 8.4358 ns 8.4426 ns 8.1919 ns 8.1933 ns 8.1945 ns 48.469 ns 48.482 ns 48.494 ns 42.423 ns 42.428 ns 42.432 ns 18.334 µs 18.336 µs 18.338 µs 14.313 µs 14.314 µs 14.316 µs

Plonk

  • msm
_ Time
8 15.518 ms 15.528 ms 15.541 ms
9 26.011 ms 26.013 ms 26.015 ms
10 47.973 ms 47.988 ms 48.015 ms
11 86.871 ms 86.875 ms 86.880 ms
12 152.99 ms 152.99 ms 153.00 ms
13 281.96 ms 282.00 ms 282.05 ms
14 523.59 ms 523.63 ms 523.69 ms
15 931.85 ms 931.89 ms 931.93 ms
16 1.8141 s 1.8142 s 1.8142 s
17 3.3891 s 3.3892 s 3.3893 s
18 6.1931 s 6.1937 s 6.1948 s
  • pairing
_ Time
tate 2.9226 ms 2.9228 ms 2.9231 ms
final_exp 1.8184 ms 1.8187 ms 1.8189 ms
miller_loop 1.1021 ms 1.1023 ms 1.1025 ms
multi_miller_loop 2.4157 ms 2.4163 ms 2.4168 ms

Todo List

@ashWhiteHat
Copy link
Member Author

ashWhiteHat commented Jan 22, 2023

NAF

PR
Bench

Bench

It's necessary to think that 18% faster overall even we don't change so it's the noise.

g1_affine, g1_projective, g2_affine, g2_projective scalar are the target.

_ before after improve clear noise
g1_affine 434.38 µs 434.51 µs 434.64 µs 316.11 µs 316.12 µs 316.15 µs 27.3% 10.7%
g1_projective 427.97 µs 428.12 µs 428.26 µs 315.87 µs 315.89 µs 315.91 µs 26.2% 8.2%
g2_affine 1.8001 ms 1.8007 ms 1.8012 ms 1.3028 ms 1.3029 ms 1.3030 ms 27.7% 9.7%
g2_projective 1.7669 ms 1.7688 ms 1.7713 ms 1.2943 ms 1.2944 ms 1.2944 ms 26.8% 8.8%

Bls12 381

_ add sub double scalar / mul square invert pow
g1_affine 1.1416 µs 1.1417 µs 1.1418 µs 1.1489 µs 1.1489 µs 1.1490 µs 874.59 ns 874.65 ns 874.73 ns 316.11 µs 316.12 µs 316.15 µs _ _ _
g1_projective 1.1415 µs 1.1416 µs 1.1417 µs 1.1487 µs 1.1488 µs 1.1488 µs 874.61 ns 874.69 ns 874.80 ns 315.87 µs 315.89 µs 315.91 µs _ _ _
g2_affine 4.6932 µs 4.6935 µs 4.6938 µs 4.7453 µs 4.7456 µs 4.7459 µs 3.5764 µs 3.5765 µs 3.5767 µs 1.3028 ms 1.3029 ms 1.3030 ms _ _ _
g2_projective 4.7302 µs 4.7304 µs 4.7306 µs 4.7452 µs 4.7455 µs 4.7458 µs 3.5769 µs 3.5772 µs 3.5775 µs 1.2943 ms 1.2944 ms 1.2944 ms _ _ _
fr 7.4475 ns 7.4480 ns 7.4486 ns 7.0244 ns 7.0252 ns 7.0259 ns 6.8258 ns 6.8267 ns 6.8277 ns 40.472 ns 40.476 ns 40.480 ns 35.782 ns 35.784 ns 35.787 ns 18.092 µs 18.094 µs 18.096 µs 12.312 µs 12.318 µs 12.330 µs
fq 12.646 ns 12.647 ns 12.648 ns 10.757 ns 10.758 ns 10.759 ns 11.458 ns 11.462 ns 11.470 ns 77.585 ns 77.594 ns 77.603 ns 76.454 ns 76.459 ns 76.466 ns 46.042 µs 46.045 µs 46.049 µs _
fq2 26.543 ns 26.545 ns 26.548 ns 24.732 ns 24.733 ns 24.735 ns 30.243 ns 30.246 ns 30.249 ns 319.70 ns 319.73 ns 319.77 ns 313.93 ns 313.94 ns 313.96 ns 46.358 µs 46.378 µs 46.417 µs _
fq6 127.08 ns 127.09 ns 127.10 ns 114.64 ns 114.66 ns 114.69 ns 120.55 ns 120.55 ns 120.56 ns 2.3071 µs 2.3072 µs 2.3073 µs 1.8253 µs 1.8254 µs 1.8256 µs 50.156 µs 50.172 µs 50.183 µs _
fq12 300.32 ns 300.33 ns 300.35 ns 274.95 ns 274.97 ns 274.99 ns 293.11 ns 293.13 ns 293.14 ns 7.3698 µs 7.3702 µs 7.3709 µs 5.1097 µs 5.1100 µs 5.1105 µs 58.295 µs 58.298 µs 58.300 µs _

Confidential Transfer

_ Time
setup 6.2100 s 6.2167 s 6.2271 s
gen_proof 9.6197 s 9.6249 s 9.6301 s
verify_proof 10.266 ms 10.279 ms 10.286 ms

Jubjub

_ add sub double scalar / mul square invert pow
extended 457.08 ns 457.13 ns 457.20 ns 455.83 ns 455.85 ns 455.88 ns 313.74 ns 313.76 ns 313.80 ns 161.60 µs 161.61 µs 161.62 µs _ _ _
fp 7.3248 ns 7.3478 ns 7.3741 ns 7.0184 ns 7.0213 ns 7.0235 ns 6.8232 ns 6.8240 ns 6.8249 ns 40.395 ns 40.397 ns 40.399 ns 39.863 ns 39.865 ns 39.868 ns 15.279 µs 15.281 µs 15.282 µs 12.042 µs 12.043 µs 12.043 µs

Plonk

  • msm
_ Time
8 14.499 ms 14.501 ms 14.502 ms
9 23.292 ms 23.294 ms 23.296 ms
10 41.528 ms 41.530 ms 41.531 ms
11 78.069 ms 78.073 ms 78.077 ms
12 135.47 ms 135.48 ms 135.48 ms
13 235.74 ms 235.75 ms 235.76 ms
14 459.86 ms 459.91 ms 459.97 ms
  • pairing
_ Time
tate 2.4314 ms 2.4336 ms 2.4376 ms
final_exp 1.5014 ms 1.5015 ms 1.5016 ms
miller_loop 919.17 µs 919.21 µs 919.26 µs
multi_miller_loop 2.0125 ms 2.0126 ms 2.0127 ms

@ashWhiteHat
Copy link
Member Author

ashWhiteHat commented Aug 23, 2023

Complete Addition Law

PR
Bench

Bench

Bls12 381

_ add sub double scalar / mul square invert pow
g1_affine 1.1421 µs 1.1431 µs 1.1450 µs 1.1481 µs 1.1482 µs 1.1485 µs 745.42 ns 745.49 ns 745.56 ns 280.48 µs 280.50 µs 280.52 µs _ _ _
g1_projective 1.1465 µs 1.1466 µs 1.1466 µs 1.1478 µs 1.1479 µs 1.1480 µs 745.33 ns 745.37 ns 745.41 ns 284.85 µs 284.88 µs 284.90 µs _ _ _
g2_affine 4.8460 µs 4.8465 µs 4.8470 µs 4.8607 µs 4.8610 µs 4.8613 µs 3.0689 µs 3.0692 µs 3.0696 µs 1.1929 ms 1.1930 ms 1.1931 ms _ _ _
g2_projective 4.8486 µs 4.8488 µs 4.8490 µs 4.8632 µs 4.8634 µs 4.8638 µs 3.0695 µs 3.0697 µs 3.0700 µs 1.1597 ms 1.1597 ms 1.1598 ms _ _ _
fr 7.4267 ns 7.4271 ns 7.4276 ns 7.0238 ns 7.0246 ns 7.0254 ns 6.7983 ns 6.7994 ns 6.8004 ns 35.633 ns 35.636 ns 35.639 ns 31.024 ns 31.027 ns 31.030 ns 9.1747 µs 9.1752 µs 9.1757 µs 13.274 µs 13.275 µs 13.276 µs
fq 12.676 ns 12.677 ns 12.678 ns 10.756 ns 10.757 ns 10.758 ns 11.407 ns 11.408 ns 11.409 ns 78.988 ns 79.048 ns 79.159 ns 66.583 ns 66.590 ns 66.600 ns 38.605 µs 38.607 µs 38.608 µs _
fq2 26.975 ns 26.977 ns 26.978 ns 24.728 ns 24.730 ns 24.732 ns 30.258 ns 30.260 ns 30.262 ns 325.92 ns 325.96 ns 326.00 ns 319.90 ns 319.92 ns 319.95 ns 38.917 µs 38.920 µs 38.923 µs _
fq6 128.53 ns 128.54 ns 128.56 ns 113.77 ns 113.78 ns 113.79 ns 119.63 ns 119.63 ns 119.64 ns 2.3498 µs 2.3500 µs 2.3504 µs 1.8638 µs 1.8639 µs 1.8641 µs 42.861 µs 42.864 µs 42.867 µs _
fq12 300.80 ns 300.84 ns 300.88 ns 275.09 ns 275.11 ns 275.14 ns 314.02 ns 314.05 ns 314.08 ns 7.5149 µs 7.5154 µs 7.5160 µs 5.1996 µs 5.1999 µs 5.2002 µs 51.424 µs 51.428 µs 51.432 µs _

Confidential Transfer

_ Time
setup 5.4340 s 5.4345 s 5.4351 s
gen_proof 8.9409 s 8.9493 s 8.9584 s
verify_proof 9.2449 ms 9.2563 ms 9.2740 ms

Jubjub

_ add sub double scalar / mul square invert pow
extended 416.56 ns 416.86 ns 417.41 ns 423.94 ns 424.11 ns 424.45 ns 329.82 ns 329.84 ns 329.86 ns 119.09 µs 119.10 µs 119.11 µs _ _ _
fp 7.5693 ns 7.5728 ns 7.5778 ns 7.0877 ns 7.0885 ns 7.0894 ns 6.8003 ns 6.8012 ns 6.8024 ns 35.863 ns 35.867 ns 35.872 ns 30.645 ns 30.648 ns 30.650 ns 8.7005 µs 8.7013 µs 8.7022 µs 11.779 µs 11.780 µs 11.781 µs

Plonk

  • msm
_ Time
8 13.485 ms 13.486 ms 13.487 ms
9 23.741 ms 23.742 ms 23.743 ms
10 40.152 ms 40.159 ms 40.167 ms
11 74.619 ms 74.630 ms 74.641 ms
12 140.90 ms 140.91 ms 140.92 ms
13 259.60 ms 259.62 ms 259.63 ms
14 476.88 ms 476.96 ms 477.05 ms
  • pairing
_ Time
tate 2.4689 ms 2.4692 ms 2.4695 ms
final_exp 1.5327 ms 1.5328 ms 1.5330 ms
miller_loop 940.08 µs 940.14 µs 940.21 µs
multi_miller_loop 2.0533 ms 2.0534 ms 2.0536 ms

@ashWhiteHat
Copy link
Member Author

Affine Addition

PR
Bench

Bench

Bls12 381

_ add sub double scalar / mul square invert pow
g1_affine 1.1421 µs 1.1431 µs 1.1450 µs 1.1481 µs 1.1482 µs 1.1485 µs 745.42 ns 745.49 ns 745.56 ns 280.48 µs 280.50 µs 280.52 µs _ _ _
g1_projective 1.1465 µs 1.1466 µs 1.1466 µs 1.1478 µs 1.1479 µs 1.1480 µs 745.33 ns 745.37 ns 745.41 ns 284.85 µs 284.88 µs 284.90 µs _ _ _
g2_affine 4.8460 µs 4.8465 µs 4.8470 µs 4.8607 µs 4.8610 µs 4.8613 µs 3.0689 µs 3.0692 µs 3.0696 µs 1.1929 ms 1.1930 ms 1.1931 ms _ _ _
g2_projective 4.8486 µs 4.8488 µs 4.8490 µs 4.8632 µs 4.8634 µs 4.8638 µs 3.0695 µs 3.0697 µs 3.0700 µs 1.1597 ms 1.1597 ms 1.1598 ms _ _ _
fr 7.4267 ns 7.4271 ns 7.4276 ns 7.0238 ns 7.0246 ns 7.0254 ns 6.7983 ns 6.7994 ns 6.8004 ns 35.633 ns 35.636 ns 35.639 ns 31.024 ns 31.027 ns 31.030 ns 9.1747 µs 9.1752 µs 9.1757 µs 13.274 µs 13.275 µs 13.276 µs
fq 12.676 ns 12.677 ns 12.678 ns 10.756 ns 10.757 ns 10.758 ns 11.407 ns 11.408 ns 11.409 ns 78.988 ns 79.048 ns 79.159 ns 66.583 ns 66.590 ns 66.600 ns 38.605 µs 38.607 µs 38.608 µs _
fq2 26.975 ns 26.977 ns 26.978 ns 24.728 ns 24.730 ns 24.732 ns 30.258 ns 30.260 ns 30.262 ns 325.92 ns 325.96 ns 326.00 ns 319.90 ns 319.92 ns 319.95 ns 38.917 µs 38.920 µs 38.923 µs _
fq6 128.53 ns 128.54 ns 128.56 ns 113.77 ns 113.78 ns 113.79 ns 119.63 ns 119.63 ns 119.64 ns 2.3498 µs 2.3500 µs 2.3504 µs 1.8638 µs 1.8639 µs 1.8641 µs 42.861 µs 42.864 µs 42.867 µs _
fq12 300.80 ns 300.84 ns 300.88 ns 275.09 ns 275.11 ns 275.14 ns 314.02 ns 314.05 ns 314.08 ns 7.5149 µs 7.5154 µs 7.5160 µs 5.1996 µs 5.1999 µs 5.2002 µs 51.424 µs 51.428 µs 51.432 µs _

Confidential Transfer

_ Time
setup 5.4340 s 5.4345 s 5.4351 s
gen_proof 8.9409 s 8.9493 s 8.9584 s
verify_proof 9.2449 ms 9.2563 ms 9.2740 ms

Jubjub

_ add sub double scalar / mul square invert pow
extended 416.56 ns 416.86 ns 417.41 ns 423.94 ns 424.11 ns 424.45 ns 329.82 ns 329.84 ns 329.86 ns 119.09 µs 119.10 µs 119.11 µs _ _ _
fp 7.5693 ns 7.5728 ns 7.5778 ns 7.0877 ns 7.0885 ns 7.0894 ns 6.8003 ns 6.8012 ns 6.8024 ns 35.863 ns 35.867 ns 35.872 ns 30.645 ns 30.648 ns 30.650 ns 8.7005 µs 8.7013 µs 8.7022 µs 11.779 µs 11.780 µs 11.781 µs

Plonk

  • msm
_ Time
8 13.485 ms 13.486 ms 13.487 ms
9 23.741 ms 23.742 ms 23.743 ms
10 40.152 ms 40.159 ms 40.167 ms
11 74.619 ms 74.630 ms 74.641 ms
12 140.90 ms 140.91 ms 140.92 ms
13 259.60 ms 259.62 ms 259.63 ms
14 476.88 ms 476.96 ms 477.05 ms
  • pairing
_ Time
tate 2.4689 ms 2.4692 ms 2.4695 ms
final_exp 1.5327 ms 1.5328 ms 1.5330 ms
miller_loop 940.08 µs 940.14 µs 940.21 µs
multi_miller_loop 2.0533 ms 2.0534 ms 2.0536 ms

@ashWhiteHat
Copy link
Member Author

ashWhiteHat commented Sep 1, 2023

Mixed Coordinate

PR
Bench

Bls12 381

_ add sub double scalar / mul square invert pow
g1_affine 621.17 ns 621.69 ns 622.69 ns 627.10 ns 627.14 ns 627.18 ns 733.91 ns 735.29 ns 736.97 ns 273.76 µs 273.77 µs 273.78 µs _ _ _
g1_projective 1.1399 µs 1.1399 µs 1.1399 µs 1.1397 µs 1.1397 µs 1.1398 µs 745.99 ns 746.07 ns 746.19 ns 284.59 µs 284.61 µs 284.62 µs _ _ _
g2_affine 2.4581 µs 2.4582 µs 2.4583 µs 2.4801 µs 2.4803 µs 2.4805 µs 2.8567 µs 2.8569 µs 2.8572 µs 1.0777 ms 1.0778 ms 1.0778 ms _ _ _
g2_projective 4.6670 µs 4.6699 µs 4.6763 µs 4.6868 µs 4.6870 µs 4.6873 µs 2.8717 µs 2.8719 µs 2.8721 µs 1.0897 ms 1.0897 ms 1.0898 ms _ _ _
fr 7.1372 ns 7.1375 ns 7.1378 ns 6.9010 ns 6.9023 ns 6.9040 ns 6.7942 ns 6.7954 ns 6.7966 ns 35.348 ns 35.352 ns 35.356 ns 30.999 ns 31.004 ns 31.009 ns 9.0088 µs 9.0093 µs 9.0098 µs 13.272 µs 13.273 µs 13.275 µs
fq 12.534 ns 12.534 ns 12.535 ns 10.700 ns 10.701 ns 10.702 ns 11.072 ns 11.074 ns 11.078 ns 78.849 ns 78.853 ns 78.859 ns 66.812 ns 66.814 ns 66.816 ns 38.595 µs 38.598 µs 38.601 µs _
fq2 26.559 ns 26.564 ns 26.573 ns 24.731 ns 24.732 ns 24.733 ns 28.007 ns 28.009 ns 28.012 ns 325.60 ns 325.63 ns 325.68 ns 228.49 ns 228.50 ns 228.52 ns 38.903 µs 38.908 µs 38.915 µs _
fq6 126.80 ns 126.80 ns 126.81 ns 113.93 ns 113.94 ns 113.95 ns 116.99 ns 117.05 ns 117.15 ns 2.3381 µs 2.3383 µs 2.3386 µs 1.5873 µs 1.5874 µs 1.5875 µs 42.575 µs 42.578 µs 42.581 µs _
fq12 302.11 ns 302.14 ns 302.17 ns 275.50 ns 275.52 ns 275.55 ns 274.61 ns 274.71 ns 274.87 ns 7.4848 µs 7.4854 µs 7.4860 µs 5.1477 µs 5.1483 µs 5.1493 µs 50.556 µs 50.559 µs 50.564 µs _

Confidential Transfer

_ Time
setup 5.4329 s 5.4335 s 5.4342 s
gen_proof 8.0852 s 8.0914 s 8.0972 s
verify_proof 8.8808 ms 8.9095 ms 8.9462 ms

Jubjub

_ add sub double scalar / mul square invert pow
affine 360.94 ns 360.97 ns 361.01 ns 364.16 ns 364.19 ns 364.22 ns 269.75 ns 269.78 ns 269.82 ns 114.60 µs 114.60 µs 114.61 µs _ _ _
extended 411.40 ns 411.43 ns 411.47 ns 418.72 ns 418.79 ns 418.92 ns 328.01 ns 328.03 ns 328.06 ns 116.81 µs 116.81 µs 116.82 µs _ _ _
fp 7.1353 ns 7.1361 ns 7.1372 ns 6.9012 ns 6.9020 ns 6.9029 ns 6.7940 ns 6.7948 ns 6.7958 ns 35.018 ns 35.021 ns 35.025 ns 30.542 ns 30.544 ns 30.546 ns 8.8258 µs 8.8262 µs 8.8268 µs 11.713 µs 11.714 µs 11.715 µs

Plonk

  • msm
_ Time
8 12.025 ms 12.030 ms 12.039 ms
9 20.655 ms 20.656 ms 20.657 ms
10 33.843 ms 33.849 ms 33.856 ms
11 62.727 ms 62.734 ms 62.743 ms
12 109.80 ms 109.81 ms 109.82 ms
13 199.29 ms 199.33 ms 199.39 ms
14 374.47 ms 374.53 ms 374.61 ms
  • pairing
_ Time
tate 2.1492 ms 2.1493 ms 2.1496 ms
final_exp 1.2683 ms 1.2683 ms 1.2684 ms
miller_loop 882.33 µs 882.38 µs 882.42 µs
multi_miller_loop 2.0523 ms 2.0524 ms 2.0526 ms

@ashWhiteHat
Copy link
Member Author

Parallelize Msm

g1_affine
add 620.55 ns 620.76 ns 621.15 ns
sub 625.15 ns 625.52 ns 626.07 ns
double 731.85 ns 731.92 ns 732.00 ns
scalar 285.36 µs 285.39 µs 285.43 µs

g1_projective
add 1.1451 µs 1.1452 µs 1.1454 µs
sub 1.1446 µs 1.1455 µs 1.1469 µs
double 744.44 ns 744.49 ns 744.54 ns
scalar 277.21 µs 277.23 µs 277.27 µs

g2_affine
add 2.4564 µs 2.4567 µs 2.4569 µs
sub 2.4663 µs 2.4665 µs 2.4667 µs
double 2.8543 µs 2.8545 µs 2.8548 µs
scalar 1.1051 ms 1.1055 ms 1.1062 ms
add 4.6645 µs 4.6647 µs 4.6649 µs
sub 4.6754 µs 4.6757 µs 4.6761 µs
double 2.8674 µs 2.8677 µs 2.8681 µs
scalar 1.0927 ms 1.0928 ms 1.0929 ms

bls12_381_fr
add 7.4035 ns 7.4041 ns 7.4048 ns
sub 7.0270 ns 7.0308 ns 7.0385 ns
double 6.8026 ns 6.8049 ns 6.8086 ns
mul 35.918 ns 35.922 ns 35.926 ns
square 30.748 ns 30.752 ns 30.757 ns
pow 8.2964 µs 8.2975 µs 8.2991 µs
invert 13.054 µs 13.055 µs 13.056 µs

fq
add 12.640 ns 12.641 ns 12.642 ns
sub 10.762 ns 10.763 ns 10.764 ns
double 11.412 ns 11.413 ns 11.414 ns
mul 78.685 ns 78.709 ns 78.733 ns
square 65.733 ns 65.739 ns 65.746 ns
invert 37.751 µs 37.754 µs 37.757 µs

fq2
add 26.173 ns 26.174 ns 26.175 ns
sub 24.781 ns 24.785 ns 24.788 ns
double 27.939 ns 27.941 ns 27.943 ns
mul 325.89 ns 325.91 ns 325.94 ns
square 226.81 ns 226.83 ns 226.86 ns
invert 38.049 µs 38.051 µs 38.054 µs

fq6
add 127.70 ns 127.71 ns 127.72 ns
sub 113.79 ns 113.81 ns 113.83 ns
double 112.81 ns 112.82 ns 112.83 ns
mul 2.3351 µs 2.3353 µs 2.3355 µs
square 1.5803 µs 1.5804 µs 1.5806 µs
invert 41.710 µs 41.713 µs 41.717 µs

fq12
add 301.26 ns 301.29 ns 301.32 ns
sub 273.99 ns 274.01 ns 274.02 ns
double 271.98 ns 272.00 ns 272.02 ns
mul 7.4961 µs 7.4968 µs 7.4979 µs
square 5.1628 µs 5.1631 µs 5.1634 µs
invert 49.625 µs 49.630 µs 49.636 µs

circuit
setup 5.3997 s 5.4004 s 5.4012 s
gen_proof 5.7353 s 5.7491 s 5.7613 s
verify_proof 13.864 ms 14.084 ms 14.376 ms

jubjub_affine
add 362.14 ns 362.20 ns 362.28 ns
sub 362.55 ns 362.59 ns 362.64 ns
double 266.95 ns 266.98 ns 267.00 ns
scalar 118.20 µs 118.22 µs 118.23 µs

jubjub_extended
add 412.22 ns 412.26 ns 412.32 ns
sub 416.17 ns 416.21 ns 416.25 ns
double 326.42 ns 326.44 ns 326.46 ns
scalar 115.77 µs 115.78 µs 115.80 µs

jubjub_fp
add 7.5686 ns 7.5705 ns 7.5723 ns
sub 7.0942 ns 7.0952 ns 7.0964 ns
double 6.8011 ns 6.8020 ns 6.8028 ns
mul 35.685 ns 35.702 ns 35.730 ns
square 30.328 ns 30.333 ns 30.339 ns
pow 8.8137 µs 8.8150 µs 8.8164 µs
invert 11.482 µs 11.483 µs 11.485 µs

msm
8 7.8856 ms 8.0120 ms 8.2027 ms
9 12.017 ms 12.083 ms 12.170 ms
10 19.905 ms 19.981 ms 20.082 ms
11 32.857 ms 32.985 ms 33.181 ms
12 57.546 ms 57.616 ms 57.693 ms
13 108.49 ms 108.96 ms 109.51 ms
14 199.26 ms 199.65 ms 200.08 ms

pairing
tate 2.1409 ms 2.1411 ms 2.1412 ms
final_exp 1.2604 ms 1.2608 ms 1.2614 ms
miller_loop 881.84 µs 881.91 µs 882.00 µs
multi_miller_loop 2.0554 ms 2.0555 ms 2.0557 ms

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant