Commit Graph

6 Commits

Author SHA1 Message Date
arnaucube
5b77df54b7 Update proof sync.WaitGroup scooped variables & Add time prints in cli proof generation 2020-04-26 21:20:41 +02:00
arnaucube
3691785054 Add paralelization of polynomials in GenerateProof
- before:
BenchmarkGenerateProof-4               1        1553842743 ns/op
For a circuit of 9094 constraints takes 7.761949512s seconds to generate the proof.

- now:
BenchmarkGenerateProof-4               1        1331576862 ns/op
For a circuit of 9094 constraints takes 5.745279126s to generate the proof.

For bigger circuits (more constraints) the difference will be bigger.

Executed on a Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz, with 16GB of RAM
2020-04-24 10:50:28 +02:00
arnaucube
6256fcc9db Update go mod & usage 2020-04-21 19:22:35 +02:00
arnaucube
9b93bad028 Use fft on calculateH polynomial multiplication
For a circuit arround 22500 constraints:
- before: the proof was generated aprox in `80 seconds`
- now: the proof is generated aprox in `16 seconds`
2020-04-21 15:38:50 +02:00
arnaucube
324c817d42 Add polynomials arithmetic in goff
Polynomials and ifft moved to goff (iden3/go-iden3-crypto/ff) instead of *big.Int.

Benchmarks:

- Before:
BenchmarkArithmetic/polynomialSub-4         	    2774	    441063 ns/op
BenchmarkArithmetic/polynomialMul-4         	       1	1135732757 ns/op
BenchmarkArithmetic/polynomialDiv-4         	     768	   1425192 ns/op
BenchmarkGenerateProof-4                    	       1	2844488975 ns/op

- With this commit:
BenchmarkArithmetic/polynomialSubE-4        	   23097	     54152 ns/op
BenchmarkArithmetic/polynomialMulE-4        	      25	  44914327 ns/op
BenchmarkArithmetic/polynomialDivE-4        	    8703	    132573 ns/op
BenchmarkGenerateProof-4                    	       1	1530398526 ns/op
2020-04-20 12:49:00 +02:00
arnaucube
e1147db72f refactor in sub packages 2020-04-17 20:31:53 +02:00