Skip to content

Instantly share code, notes, and snippets.

@mmagician
Last active November 30, 2022 12:13
Show Gist options
  • Save mmagician/ee80f60e402a9e29ad8dff0a62424edd to your computer and use it in GitHub Desktop.
Save mmagician/ee80f60e402a9e29ad8dff0a62424edd to your computer and use it in GitHub Desktop.
Square benchmarks

For montgomery squaring

const SAMPLES: usize = 10000;

inside the loop

for i in 1..(2 * N) {
	r[2 * N - i] = (r[2 * N - i] << 1) | (r[2 * N - (i + 1)] >> 63);
}
Arithmetic for Bls12_381::Fr/Square
                        time:   [30.370 ns 30.449 ns 30.532 ns]
                        change: [-1.5441% -0.9966% -0.4829%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild

Arithmetic for Bls12_381::Fq/Square
                        time:   [52.632 ns 52.870 ns 53.177 ns]
                        change: [-0.8976% -0.3219% +0.4062%] (p = 0.31 > 0.05)
                        No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high severe

Arithmetic for Bls12_381::Fq2/Square
                        time:   [153.00 ns 154.10 ns 155.58 ns]
                        change: [-1.3551% -0.7011% +0.0050%] (p = 0.04 < 0.05)
                        Change within noise threshold.
Found 3 outliers among 100 measurements (3.00%)
  1 (1.00%) high mild
  2 (2.00%) high severe

Arithmetic for Bls12_381::Fq12/Square
                        time:   [3.8019 µs 3.8110 µs 3.8204 µs]
                        change: [-1.2884% -0.7969% -0.3504%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

Arithmetic for BN384::Fr/Square
                        time:   [52.714 ns 53.004 ns 53.386 ns]
                        change: [-0.3841% +0.0762% +0.5834%] (p = 0.76 > 0.05)
                        No change in performance detected.
Found 8 outliers among 100 measurements (8.00%)
  3 (3.00%) low mild
  3 (3.00%) high mild
  2 (2.00%) high severe

Arithmetic for BN384::Fq/Square
                        time:   [52.549 ns 52.669 ns 52.796 ns]
                        change: [-0.1589% +0.3815% +0.9242%] (p = 0.18 > 0.05)
                        No change in performance detected.
Found 3 outliers among 100 measurements (3.00%)
  3 (3.00%) high mild

Arithmetic for EdOnBls12_381::Fr/Square
                        time:   [28.006 ns 28.072 ns 28.143 ns]
                        change: [-0.9525% -0.3487% +0.2287%] (p = 0.23 > 0.05)
                        No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

Arithmetic for EdOnBls12_381::Fq/Square
                        time:   [29.844 ns 29.917 ns 29.990 ns]
                        change: [-0.5271% +1.8384% +7.4968%] (p = 0.46 > 0.05)
                        No change in performance detected.
Found 3 outliers among 100 measurements (3.00%)
  1 (1.00%) high mild
  2 (2.00%) high severe

Arithmetic for MNT4_753::Fr/Square
                        time:   [201.24 ns 201.72 ns 202.21 ns]
                        change: [-1.6319% -1.1513% -0.6508%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
  1 (1.00%) high mild
  1 (1.00%) high severe

Arithmetic for MNT4_753::Fq/Square
                        time:   [187.77 ns 188.18 ns 188.58 ns]
                        change: [-1.3392% -0.8873% -0.4441%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild

Arithmetic for MNT6_753::Fq/Square
                        time:   [200.91 ns 201.35 ns 201.81 ns]
                        change: [-0.5475% -0.0663% +0.3918%] (p = 0.78 > 0.05)
                        No change in performance detected.

Arithmetic for MNT6_753::Fr/Square
                        time:   [201.15 ns 201.56 ns 201.99 ns]
                        change: [-0.2827% +0.2318% +0.8082%] (p = 0.42 > 0.05)
                        No change in performance detected.
Found 9 outliers among 100 measurements (9.00%)
  7 (7.00%) high mild
  2 (2.00%) high severe

Arithmetic for MNT6_753::Fq3/Square
                        time:   [1.6565 µs 1.6598 µs 1.6631 µs]
                        change: [-1.3094% -0.8119% -0.2842%] (p = 0.00 < 0.05)
                        Change within noise threshold.

outside the loop

r.b1[N - 1] = r.b1[N - 2] >> 63;
for i in 2..(2 * N - 1) {
	r[2 * N - i] = (r[2 * N - i] << 1) | (r[2 * N - (i + 1)] >> 63);
}
r.b0[1] <<= 1;
Arithmetic for Bls12_381::Fr/Square
                        time:   [30.330 ns 30.388 ns 30.447 ns]
                        change: [-0.5657% -0.0693% +0.4281%] (p = 0.79 > 0.05)
                        No change in performance detected.
Found 5 outliers among 100 measurements (5.00%)
  1 (1.00%) low mild
  4 (4.00%) high mild

Arithmetic for Bls12_381::Fq/Square
                        time:   [52.492 ns 52.601 ns 52.713 ns]
                        change: [-0.9936% -0.3445% +0.2308%] (p = 0.29 > 0.05)
                        No change in performance detected.
Found 5 outliers among 100 measurements (5.00%)
  5 (5.00%) high mild

Arithmetic for Bls12_381::Fq2/Square
                        time:   [152.98 ns 153.36 ns 153.78 ns]
                        change: [-0.4356% +0.2947% +0.9594%] (p = 0.42 > 0.05)
                        No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

Arithmetic for Bls12_381::Fq12/Square
                        time:   [3.7986 µs 3.8053 µs 3.8121 µs]
                        change: [-0.5086% +0.0052% +0.5223%] (p = 0.99 > 0.05)
                        No change in performance detected.
Found 5 outliers among 100 measurements (5.00%)
  5 (5.00%) high mild

Arithmetic for BN384::Fr/Square
                        time:   [52.649 ns 52.732 ns 52.814 ns]
                        change: [-0.5506% -0.1049% +0.3207%] (p = 0.64 > 0.05)
                        No change in performance detected.
Found 10 outliers among 100 measurements (10.00%)
  5 (5.00%) low mild
  5 (5.00%) high mild

Arithmetic for BN384::Fq/Square
                        time:   [52.228 ns 52.338 ns 52.447 ns]
                        change: [-1.4749% -0.9615% -0.4379%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

Arithmetic for EdOnBls12_381::Fr/Square
                        time:   [27.959 ns 28.024 ns 28.087 ns]
                        change: [-1.1587% -0.6365% -0.0754%] (p = 0.02 < 0.05)
                        Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild

Arithmetic for EdOnBls12_381::Fq/Square
                        time:   [29.877 ns 29.941 ns 30.004 ns]
                        change: [-5.8413% -1.9594% +0.3991%] (p = 0.37 > 0.05)
                        No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild

Arithmetic for MNT4_753::Fr/Square
                        time:   [201.19 ns 201.69 ns 202.27 ns]
                        change: [+0.0438% +0.6606% +1.2641%] (p = 0.03 < 0.05)
                        Change within noise threshold.
Found 5 outliers among 100 measurements (5.00%)
  3 (3.00%) high mild
  2 (2.00%) high severe

Arithmetic for MNT4_753::Fq/Square
                        time:   [187.67 ns 188.08 ns 188.49 ns]
                        change: [-0.3912% +0.1734% +0.7682%] (p = 0.55 > 0.05)
                        No change in performance detected.
Found 4 outliers among 100 measurements (4.00%)
  4 (4.00%) high mild

Arithmetic for MNT6_753::Fq/Square
                        time:   [200.98 ns 201.39 ns 201.79 ns]
                        change: [-0.5082% +0.0120% +0.5052%] (p = 0.96 > 0.05)
                        No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild

Arithmetic for MNT6_753::Fr/Square
                        time:   [200.93 ns 201.30 ns 201.66 ns]
                        change: [-0.9151% -0.3377% +0.2000%] (p = 0.25 > 0.05)
                        No change in performance detected.
Found 6 outliers among 100 measurements (6.00%)
  6 (6.00%) high mild

Arithmetic for MNT6_753::Fq3/Square
                        time:   [1.6565 µs 1.6600 µs 1.6636 µs]
                        change: [-0.2182% +0.2711% +0.7647%] (p = 0.28 > 0.05)
                        No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment