You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Running with -curve=bls12-381
DEBU[0000] Order of field "in the exponent" F_r: 52435875175126190479447740508185965837690552500527637822603658699938581184513
DEBU[0000] Order of multiplicative subgroup G_{r-1}: 52435875175126190479447740508185965837690552500527637822603658699938581184512
DEBU[0000] Selected curve: bls12-381 (5)
DEBU[0000] GetMaxOpUnitSize() = 6
DEBU[0000] GetFrUnitSize() = 4
goos: linux
goarch: amd64
pkg: github.com/alinush/go-mcl
cpu: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
BenchmarkG1mul
BenchmarkG1mul-8 4000 106616 ns/op
PASS
ok github.com/alinush/go-mcl 0.965s
DEBU[0000] Order of field "in the exponent" F_r: 52435875175126190479447740508185965837690552500527637822603658699938581184513
DEBU[0000] Order of multiplicative subgroup G_{r-1}: 52435875175126190479447740508185965837690552500527637822603658699938581184512
DEBU[0000] Selected curve: bls12-381 (5)
DEBU[0000] GetMaxOpUnitSize() = 6
DEBU[0000] GetFrUnitSize() = 4
goos: linux
goarch: amd64
pkg: github.com/alinush/go-mcl
cpu: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
BenchmarkG2mul
BenchmarkG2mul-8 2000 245678 ns/op
PASS
ok github.com/alinush/go-mcl 1.085s
DEBU[0000] Order of field "in the exponent" F_r: 52435875175126190479447740508185965837690552500527637822603658699938581184513
DEBU[0000] Order of multiplicative subgroup G_{r-1}: 52435875175126190479447740508185965837690552500527637822603658699938581184512
DEBU[0000] Selected curve: bls12-381 (5)
DEBU[0000] GetMaxOpUnitSize() = 6
DEBU[0000] GetFrUnitSize() = 4
goos: linux
goarch: amd64
pkg: github.com/alinush/go-mcl
cpu: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
BenchmarkPairing
BenchmarkPairing-8 1000 1069554 ns/op
PASS
ok github.com/alinush/go-mcl 1.491s
size = 32
Average time per G1 multiexp (784 iters of size 32 each): 1.497ms
Average time per G1 exp: 46µs
Average time per G2 multiexp (238 iters of size 32 each): 5.062ms
Average time per G2 exp: 158µs
size = 3
Average time per multi-pairing (687 iters of size 3 each): 1.723ms
Average time per pairing: 574µs
size = 10
Average time per multi-pairing (306 iters of size 10 each): 3.855ms
Average time per pairing: 385µs
s
Running with -curve=bls12-381
DEBU[0000] Order of field "in the exponent" F_r: 52435875175126190479447740508185965837690552500527637822603658699938581184513
DEBU[0000] Order of multiplicative subgroup G_{r-1}: 52435875175126190479447740508185965837690552500527637822603658699938581184512
DEBU[0000] Selected curve: bls12-381 (5)
DEBU[0000] GetMaxOpUnitSize() = 6
DEBU[0000] GetFrUnitSize() = 4
goos: linux
goarch: amd64
pkg: github.com/alinush/go-mcl
cpu: Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz
BenchmarkG1mul
BenchmarkG1mul-8 4000 91384 ns/op
PASS
ok github.com/alinush/go-mcl 0.882s
DEBU[0000] Order of field "in the exponent" F_r: 52435875175126190479447740508185965837690552500527637822603658699938581184513
DEBU[0000] Order of multiplicative subgroup G_{r-1}: 52435875175126190479447740508185965837690552500527637822603658699938581184512
DEBU[0000] Selected curve: bls12-381 (5)
DEBU[0000] GetMaxOpUnitSize() = 6
DEBU[0000] GetFrUnitSize() = 4
goos: linux
goarch: amd64
pkg: github.com/alinush/go-mcl
cpu: Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz
BenchmarkG2mul
BenchmarkG2mul-8 2000 166923 ns/op
PASS
ok github.com/alinush/go-mcl 0.805s
DEBU[0000] Order of field "in the exponent" F_r: 52435875175126190479447740508185965837690552500527637822603658699938581184513
DEBU[0000] Order of multiplicative subgroup G_{r-1}: 52435875175126190479447740508185965837690552500527637822603658699938581184512
DEBU[0000] Selected curve: bls12-381 (5)
DEBU[0000] GetMaxOpUnitSize() = 6
DEBU[0000] GetFrUnitSize() = 4
goos: linux
goarch: amd64
pkg: github.com/alinush/go-mcl
cpu: Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz
BenchmarkPairing
BenchmarkPairing-8 1000 806713 ns/op
PASS
ok github.com/alinush/go-mcl 1.170s
size = 32
Average time per G1 multiexp (898 iters of size 32 each): 1.314ms
Average time per G1 exp: 41µs
Average time per G2 multiexp (352 iters of size 32 each): 3.434ms
Average time per G2 exp: 107µs
size = 3
Average time per multi-pairing (937 iters of size 3 each): 1.239ms
Average time per pairing: 413µs
size = 10
Average time per multi-pairing (432 iters of size 10 each): 2.875ms
Average time per pairing: 287µs
Amazon EC2 c4 32GB machine
DEBU[0000] Order of field "in the exponent" F_r: 52435875175126190479447740508185965837690552500527637822603658699938581184513
DEBU[0000] Order of multiplicative subgroup G_{r-1}: 52435875175126190479447740508185965837690552500527637822603658699938581184512
DEBU[0000] Selected curve: bls12-381 (5)
DEBU[0000] GetMaxOpUnitSize() = 6
DEBU[0000] GetFrUnitSize() = 4
goos: linux
goarch: amd64
pkg: github.com/alinush/go-mcl
BenchmarkG1mul
BenchmarkG1mul-16 4000 120781 ns/op
PASS
ok github.com/alinush/go-mcl 1.182s
DEBU[0000] Order of field "in the exponent" F_r: 52435875175126190479447740508185965837690552500527637822603658699938581184513
DEBU[0000] Order of multiplicative subgroup G_{r-1}: 52435875175126190479447740508185965837690552500527637822603658699938581184512
DEBU[0000] Selected curve: bls12-381 (5)
DEBU[0000] GetMaxOpUnitSize() = 6
DEBU[0000] GetFrUnitSize() = 4
goos: linux
goarch: amd64
pkg: github.com/alinush/go-mcl
BenchmarkG2mul
BenchmarkG2mul-16 2000 285207 ns/op
PASS
ok github.com/alinush/go-mcl 1.297s
DEBU[0000] Order of field "in the exponent" F_r: 52435875175126190479447740508185965837690552500527637822603658699938581184513
DEBU[0000] Order of multiplicative subgroup G_{r-1}: 52435875175126190479447740508185965837690552500527637822603658699938581184512
DEBU[0000] Selected curve: bls12-381 (5)
DEBU[0000] GetMaxOpUnitSize() = 6
DEBU[0000] GetFrUnitSize() = 4
goos: linux
goarch: amd64
pkg: github.com/alinush/go-mcl
BenchmarkPairing
BenchmarkPairing-16 1000 1311386 ns/op
PASS
ok github.com/alinush/go-mcl 1.830s
size = 32
Average time per G1 multiexp (661 iters of size 32 each): 1.814ms
Average time per G1 exp: 56µs
Average time per G2 multiexp (193 iters of size 32 each): 6.069ms
Average time per G2 exp: 189µs
size = 3
Average time per multi-pairing (582 iters of size 3 each): 2.114ms
Average time per pairing: 704µs
size = 10
Average time per multi-pairing (254 iters of size 10 each): 4.699ms
Average time per pairing: 469µs
New benchmarks
desktop
Hello, World!
Done generating the data
Time per G1Neg (100 iters): 0.064 us
Time per G1Add (100 iters): 0.898 us
Time per G1Sub (100 iters): 0.927 us
Time per G1Mul (100 iters): 106.441 us
Time per G1MulVec (size 2; 100 iters): 149.072 us
Time per G1MulVec (per exp; 100 iters): 74.536 us
Time per G1MulVec (size 32; 100 iters): 1,493.833 us
Time per G1MulVec (per exp; 100 iters): 46.682 us
Time per G1MulVec (size 1,000; 100 iters): 46,566.230 us
Time per G1MulVec (per exp; 100 iters): 46.566 us
=============================================
Time per G2Neg (100 iters): 0.070 us
Time per G2Add (100 iters): 2.969 us
Time per G2Sub (100 iters): 3.021 us
Time per G2Mul (100 iters): 250.233 us
Time per G2MulVec (size 2; 100 iters): 414.164 us
Time per G2MulVec (per exp; 100 iters): 207.082 us
Time per G2MulVec (size 32; 100 iters): 4,986.298 us
Time per G2MulVec (per exp; 100 iters): 155.822 us
Time per G2MulVec (size 1,000; 100 iters): 155,958.569 us
Time per G2MulVec (per exp; 100 iters): 155.959 us
=============================================
Time per FrNeg (100 iters): 0.055 us
Time per FrInv (100 iters): 2.275 us
Time per FrAdd (100 iters): 0.061 us
Time per FrSub (100 iters): 0.068 us
Time per FrMul (100 iters): 0.074 us
Time per FrCopy (100 iters): 0.006 us
=============================================
Done generating the data
Time per GTMul (100 iters): 3.121 us
Time per GTPow (100 iters): 338.382 us
Time per FinalExp (100 iters): 585.454 us
Time per MillerLoop (100 iters): 465.129 us
Time per MillerLoopVec (size 2; 100 iters): 767.928 us
Time per MillerLoopVec (per MillerLoop; 100 iters): 383.964 us
Time per MillerLoopVec (size 32; 100 iters): 10,169.551 us
Time per MillerLoopVec (per MillerLoop; 100 iters): 317.798 us
Time per MillerLoopVec (size 1,000; 100 iters): 317,412.341 us
Time per MillerLoopVec (per MillerLoop; 100 iters): 317.412 us
=============================================
Time per Pairing (100 iters): 1,077.021 us
Time per Multi-Pairing (size 2; 100 iters): 1,361.435 us
Time per Multi-Pairing (per pairing; 100 iters): 680.717 us
Time per Multi-Pairing (size 32; 100 iters): 10,814.381 us
Time per Multi-Pairing (per pairing; 100 iters): 337.949 us
Time per Multi-Pairing (size 1,000; 100 iters): 317,680.259 us
Time per Multi-Pairing (per pairing; 100 iters): 317.680 us
=============================================
Time per FrIsEqual (size 1,000; 100 iters): 0.058 us
Time per G1IsEqual (size 1,000; 100 iters): 0.276 us
Time per G2IsEqual (size 1,000; 100 iters): 0.739 us
Time per GTIsEqual (size 1,000; 100 iters): 0.060 us
=============================================
s
Hello, World!
Done generating the data
Time per G1Neg (100 iters): 0.076 us
Time per G1Add (100 iters): 0.752 us
Time per G1Sub (100 iters): 0.732 us
Time per G1Mul (100 iters): 94.906 us
Time per G1MulVec (size 2; 100 iters): 121.065 us
Time per G1MulVec (per exp; 100 iters): 60.532 us
Time per G1MulVec (size 32; 100 iters): 1,289.067 us
Time per G1MulVec (per exp; 100 iters): 40.283 us
Time per G1MulVec (size 1,000; 100 iters): 42,561.404 us
Time per G1MulVec (per exp; 100 iters): 42.561 us
=============================================
Time per G2Neg (100 iters): 0.093 us
Time per G2Add (100 iters): 1.964 us
Time per G2Sub (100 iters): 1.974 us
Time per G2Mul (100 iters): 173.934 us
Time per G2MulVec (size 2; 100 iters): 274.295 us
Time per G2MulVec (per exp; 100 iters): 137.148 us
Time per G2MulVec (size 32; 100 iters): 3,250.826 us
Time per G2MulVec (per exp; 100 iters): 101.588 us
Time per G2MulVec (size 1,000; 100 iters): 103,910.564 us
Time per G2MulVec (per exp; 100 iters): 103.911 us
=============================================
Time per FrNeg (100 iters): 0.066 us
Time per FrInv (100 iters): 2.857 us
Time per FrAdd (100 iters): 0.068 us
Time per FrSub (100 iters): 0.067 us
Time per FrMul (100 iters): 0.093 us
Time per FrCopy (100 iters): 0.006 us
=============================================
Done generating the data
Time per GTMul (100 iters): 2.529 us
Time per GTPow (100 iters): 273.752 us
Time per FinalExp (100 iters): 476.427 us
Time per MillerLoop (100 iters): 342.475 us
Time per MillerLoopVec (size 2; 100 iters): 565.719 us
Time per MillerLoopVec (per MillerLoop; 100 iters): 282.860 us
Time per MillerLoopVec (size 32; 100 iters): 7,148.412 us
Time per MillerLoopVec (per MillerLoop; 100 iters): 223.388 us
Time per MillerLoopVec (size 1,000; 100 iters): 225,803.023 us
Time per MillerLoopVec (per MillerLoop; 100 iters): 225.803 us
=============================================
Time per Pairing (100 iters): 802.207 us
Time per Multi-Pairing (size 2; 100 iters): 1,014.362 us
Time per Multi-Pairing (per pairing; 100 iters): 507.181 us
Time per Multi-Pairing (size 32; 100 iters): 7,441.721 us
Time per Multi-Pairing (per pairing; 100 iters): 232.554 us
Time per Multi-Pairing (size 1,000; 100 iters): 220,443.293 us
Time per Multi-Pairing (per pairing; 100 iters): 220.443 us
=============================================
Time per FrIsEqual (size 1,000; 100 iters): 0.077 us
Time per G1IsEqual (size 1,000; 100 iters): 0.247 us
Time per G2IsEqual (size 1,000; 100 iters): 0.518 us
Time per GTIsEqual (size 1,000; 100 iters): 0.075 us
=============================================