lambdaclass / cairo-vm

cairo-vm is a Rust implementation of the Cairo VM. Cairo (CPU Algebraic Intermediate Representation) is a programming language for writing provable programs, where one party can prove to another that a certain computation was executed correctly without the need for this party to re-execute the same program.
https://lambdaclass.github.io/cairo-vm
Apache License 2.0
488 stars 133 forks source link

Release 1.0.0 :rocket: #1801

Closed fmoletta closed 2 weeks ago

github-actions[bot] commented 2 weeks ago
**Hyper Thereading Benchmark results**

hyperfine -r 2 -n "hyper_threading_main threads: 1" 'RAYON_NUM_THREADS=1 ./hyper_threading_main' -n "hyper_threading_pr threads: 1" 'RAYON_NUM_THREADS=1 ./hyper_threading_pr'
Benchmark 1: hyper_threading_main threads: 1
  Time (mean ± σ):     26.057 s ±  0.012 s    [User: 25.203 s, System: 0.852 s]
  Range (min … max):   26.048 s … 26.065 s    2 runs

Benchmark 2: hyper_threading_pr threads: 1
  Time (mean ± σ):     26.012 s ±  0.045 s    [User: 25.244 s, System: 0.766 s]
  Range (min … max):   25.980 s … 26.043 s    2 runs

Summary
  'hyper_threading_pr threads: 1' ran
    1.00 ± 0.00 times faster than 'hyper_threading_main threads: 1'

hyperfine -r 2 -n "hyper_threading_main threads: 2" 'RAYON_NUM_THREADS=2 ./hyper_threading_main' -n "hyper_threading_pr threads: 2" 'RAYON_NUM_THREADS=2 ./hyper_threading_pr'
Benchmark 1: hyper_threading_main threads: 2
  Time (mean ± σ):     14.746 s ±  0.050 s    [User: 26.108 s, System: 0.818 s]
  Range (min … max):   14.710 s … 14.781 s    2 runs

Benchmark 2: hyper_threading_pr threads: 2
  Time (mean ± σ):     14.673 s ±  0.032 s    [User: 25.990 s, System: 0.805 s]
  Range (min … max):   14.650 s … 14.695 s    2 runs

Summary
  'hyper_threading_pr threads: 2' ran
    1.00 ± 0.00 times faster than 'hyper_threading_main threads: 2'

hyperfine -r 2 -n "hyper_threading_main threads: 4" 'RAYON_NUM_THREADS=4 ./hyper_threading_main' -n "hyper_threading_pr threads: 4" 'RAYON_NUM_THREADS=4 ./hyper_threading_pr'
Benchmark 1: hyper_threading_main threads: 4
  Time (mean ± σ):     10.743 s ±  0.329 s    [User: 37.961 s, System: 0.964 s]
  Range (min … max):   10.510 s … 10.976 s    2 runs

Benchmark 2: hyper_threading_pr threads: 4
  Time (mean ± σ):     10.277 s ±  0.091 s    [User: 38.169 s, System: 0.979 s]
  Range (min … max):   10.213 s … 10.341 s    2 runs

Summary
  'hyper_threading_pr threads: 4' ran
    1.05 ± 0.03 times faster than 'hyper_threading_main threads: 4'

hyperfine -r 2 -n "hyper_threading_main threads: 6" 'RAYON_NUM_THREADS=6 ./hyper_threading_main' -n "hyper_threading_pr threads: 6" 'RAYON_NUM_THREADS=6 ./hyper_threading_pr'
Benchmark 1: hyper_threading_main threads: 6
  Time (mean ± σ):     10.692 s ±  0.015 s    [User: 37.777 s, System: 1.050 s]
  Range (min … max):   10.682 s … 10.703 s    2 runs

Benchmark 2: hyper_threading_pr threads: 6
  Time (mean ± σ):     10.198 s ±  0.168 s    [User: 38.426 s, System: 0.905 s]
  Range (min … max):   10.079 s … 10.317 s    2 runs

Summary
  'hyper_threading_pr threads: 6' ran
    1.05 ± 0.02 times faster than 'hyper_threading_main threads: 6'

hyperfine -r 2 -n "hyper_threading_main threads: 8" 'RAYON_NUM_THREADS=8 ./hyper_threading_main' -n "hyper_threading_pr threads: 8" 'RAYON_NUM_THREADS=8 ./hyper_threading_pr'
Benchmark 1: hyper_threading_main threads: 8
  Time (mean ± σ):     10.639 s ±  0.436 s    [User: 38.275 s, System: 0.983 s]
  Range (min … max):   10.331 s … 10.947 s    2 runs

Benchmark 2: hyper_threading_pr threads: 8
  Time (mean ± σ):     10.306 s ±  0.148 s    [User: 37.926 s, System: 1.036 s]
  Range (min … max):   10.201 s … 10.411 s    2 runs

Summary
  'hyper_threading_pr threads: 8' ran
    1.03 ± 0.04 times faster than 'hyper_threading_main threads: 8'

hyperfine -r 2 -n "hyper_threading_main threads: 16" 'RAYON_NUM_THREADS=16 ./hyper_threading_main' -n "hyper_threading_pr threads: 16" 'RAYON_NUM_THREADS=16 ./hyper_threading_pr'
Benchmark 1: hyper_threading_main threads: 16
  Time (mean ± σ):     10.420 s ±  0.125 s    [User: 38.540 s, System: 1.033 s]
  Range (min … max):   10.331 s … 10.509 s    2 runs

Benchmark 2: hyper_threading_pr threads: 16
  Time (mean ± σ):     10.358 s ±  0.230 s    [User: 38.042 s, System: 1.104 s]
  Range (min … max):   10.196 s … 10.520 s    2 runs

Summary
  'hyper_threading_pr threads: 16' ran
    1.01 ± 0.03 times faster than 'hyper_threading_main threads: 16'
codecov[bot] commented 2 weeks ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 94.79%. Comparing base (6c276fc) to head (21c6aca).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #1801 +/- ## ======================================= Coverage 94.79% 94.79% ======================================= Files 102 102 Lines 40138 40138 ======================================= Hits 38047 38047 Misses 2091 2091 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

github-actions[bot] commented 2 weeks ago

Benchmark Results for unmodified programs :rocket:

Command Mean [s] Min [s] Max [s] Relative
base big_factorial 2.062 ± 0.040 2.037 2.174 1.01 ± 0.02
head big_factorial 2.051 ± 0.014 2.032 2.074 1.00
Command Mean [s] Min [s] Max [s] Relative
base big_fibonacci 2.025 ± 0.064 1.993 2.203 1.01 ± 0.03
head big_fibonacci 1.998 ± 0.010 1.981 2.014 1.00
Command Mean [s] Min [s] Max [s] Relative
base blake2s_integration_benchmark 7.697 ± 0.254 7.484 8.376 1.01 ± 0.04
head blake2s_integration_benchmark 7.600 ± 0.101 7.438 7.717 1.00
Command Mean [s] Min [s] Max [s] Relative
base compare_arrays_200000 2.168 ± 0.107 2.115 2.466 1.02 ± 0.05
head compare_arrays_200000 2.133 ± 0.030 2.098 2.185 1.00
Command Mean [s] Min [s] Max [s] Relative
base dict_integration_benchmark 1.403 ± 0.031 1.388 1.490 1.01 ± 0.02
head dict_integration_benchmark 1.393 ± 0.005 1.389 1.404 1.00
Command Mean [s] Min [s] Max [s] Relative
base field_arithmetic_get_square_benchmark 1.213 ± 0.009 1.195 1.225 1.00
head field_arithmetic_get_square_benchmark 1.221 ± 0.029 1.196 1.298 1.01 ± 0.02
Command Mean [s] Min [s] Max [s] Relative
base integration_builtins 7.708 ± 0.098 7.563 7.863 1.00
head integration_builtins 7.825 ± 0.284 7.533 8.494 1.02 ± 0.04
Command Mean [s] Min [s] Max [s] Relative
base keccak_integration_benchmark 7.938 ± 0.082 7.751 8.026 1.00
head keccak_integration_benchmark 7.957 ± 0.126 7.777 8.143 1.00 ± 0.02
Command Mean [s] Min [s] Max [s] Relative
base linear_search 2.119 ± 0.015 2.098 2.147 1.00
head linear_search 2.133 ± 0.042 2.097 2.243 1.01 ± 0.02
Command Mean [s] Min [s] Max [s] Relative
base math_cmp_and_pow_integration_benchmark 1.482 ± 0.016 1.460 1.516 1.00 ± 0.01
head math_cmp_and_pow_integration_benchmark 1.479 ± 0.010 1.468 1.497 1.00
Command Mean [s] Min [s] Max [s] Relative
base math_integration_benchmark 1.425 ± 0.010 1.409 1.442 1.00
head math_integration_benchmark 1.431 ± 0.031 1.403 1.492 1.00 ± 0.02
Command Mean [s] Min [s] Max [s] Relative
base memory_integration_benchmark 1.198 ± 0.024 1.176 1.237 1.01 ± 0.03
head memory_integration_benchmark 1.191 ± 0.023 1.165 1.252 1.00
Command Mean [s] Min [s] Max [s] Relative
base operations_with_data_structures_benchmarks 1.543 ± 0.007 1.533 1.553 1.00
head operations_with_data_structures_benchmarks 1.545 ± 0.029 1.524 1.601 1.00 ± 0.02
Command Mean [ms] Min [ms] Max [ms] Relative
base pedersen 525.2 ± 10.0 517.6 549.0 1.01 ± 0.02
head pedersen 521.3 ± 2.5 518.2 527.5 1.00
Command Mean [ms] Min [ms] Max [ms] Relative
base poseidon_integration_benchmark 737.4 ± 6.1 729.9 748.8 1.00
head poseidon_integration_benchmark 740.0 ± 4.1 734.5 747.1 1.00 ± 0.01
Command Mean [s] Min [s] Max [s] Relative
base secp_integration_benchmark 1.797 ± 0.014 1.783 1.834 1.00 ± 0.01
head secp_integration_benchmark 1.790 ± 0.013 1.777 1.822 1.00
Command Mean [ms] Min [ms] Max [ms] Relative
base set_integration_benchmark 641.9 ± 2.6 637.7 646.4 1.00
head set_integration_benchmark 644.6 ± 1.7 641.2 647.3 1.00 ± 0.00
Command Mean [s] Min [s] Max [s] Relative
base uint256_integration_benchmark 4.202 ± 0.042 4.120 4.268 1.00 ± 0.01
head uint256_integration_benchmark 4.187 ± 0.032 4.123 4.215 1.00