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
485 stars 133 forks source link

release v1.0.0-rc2 #1748

Closed pefontana closed 2 months ago

pefontana commented 2 months ago

Release v1.0.0-rc2

Description

Description of the pull request changes and motivation.

Checklist

github-actions[bot] commented 2 months 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 ± σ):     30.108 s ±  0.002 s    [User: 29.397 s, System: 0.710 s]
  Range (min … max):   30.106 s … 30.110 s    2 runs

Benchmark 2: hyper_threading_pr threads: 1
  Time (mean ± σ):     30.163 s ±  0.024 s    [User: 29.430 s, System: 0.731 s]
  Range (min … max):   30.146 s … 30.180 s    2 runs

Summary
  'hyper_threading_main threads: 1' ran
    1.00 ± 0.00 times faster than 'hyper_threading_pr 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 ± σ):     16.251 s ±  0.011 s    [User: 29.945 s, System: 0.712 s]
  Range (min … max):   16.243 s … 16.259 s    2 runs

Benchmark 2: hyper_threading_pr threads: 2
  Time (mean ± σ):     16.439 s ±  0.256 s    [User: 30.128 s, System: 0.662 s]
  Range (min … max):   16.259 s … 16.620 s    2 runs

Summary
  'hyper_threading_main threads: 2' ran
    1.01 ± 0.02 times faster than 'hyper_threading_pr 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 ± σ):     11.663 s ±  0.393 s    [User: 41.767 s, System: 0.927 s]
  Range (min … max):   11.385 s … 11.941 s    2 runs

Benchmark 2: hyper_threading_pr threads: 4
  Time (mean ± σ):     11.810 s ±  0.238 s    [User: 41.774 s, System: 0.906 s]
  Range (min … max):   11.641 s … 11.979 s    2 runs

Summary
  'hyper_threading_main threads: 4' ran
    1.01 ± 0.04 times faster than 'hyper_threading_pr 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 ± σ):     11.579 s ±  0.190 s    [User: 41.483 s, System: 1.045 s]
  Range (min … max):   11.445 s … 11.714 s    2 runs

Benchmark 2: hyper_threading_pr threads: 6
  Time (mean ± σ):     11.522 s ±  0.245 s    [User: 41.736 s, System: 0.973 s]
  Range (min … max):   11.349 s … 11.695 s    2 runs

Summary
  'hyper_threading_pr threads: 6' ran
    1.00 ± 0.03 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 ± σ):     11.360 s ±  0.089 s    [User: 42.189 s, System: 0.996 s]
  Range (min … max):   11.297 s … 11.422 s    2 runs

Benchmark 2: hyper_threading_pr threads: 8
  Time (mean ± σ):     11.395 s ±  0.111 s    [User: 42.257 s, System: 0.963 s]
  Range (min … max):   11.316 s … 11.473 s    2 runs

Summary
  'hyper_threading_main threads: 8' ran
    1.00 ± 0.01 times faster than 'hyper_threading_pr 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 ± σ):     11.404 s ±  0.362 s    [User: 42.202 s, System: 1.035 s]
  Range (min … max):   11.148 s … 11.660 s    2 runs

Benchmark 2: hyper_threading_pr threads: 16
  Time (mean ± σ):     11.275 s ±  0.004 s    [User: 42.324 s, System: 1.031 s]
  Range (min … max):   11.272 s … 11.277 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 months ago

Codecov Report

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

Project coverage is 94.80%. Comparing base (6c554e7) to head (13b654a).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #1748 +/- ## ======================================= Coverage 94.80% 94.80% ======================================= Files 101 101 Lines 38689 38689 ======================================= Hits 36679 36679 Misses 2010 2010 ```

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

github-actions[bot] commented 2 months ago

Benchmark Results for unmodified programs :rocket:

Command Mean [s] Min [s] Max [s] Relative
base big_factorial 2.393 ± 0.018 2.368 2.423 1.01 ± 0.02
head big_factorial 2.380 ± 0.039 2.350 2.469 1.00
Command Mean [s] Min [s] Max [s] Relative
base big_fibonacci 2.361 ± 0.024 2.337 2.415 1.00 ± 0.03
head big_fibonacci 2.354 ± 0.057 2.301 2.465 1.00
Command Mean [s] Min [s] Max [s] Relative
base blake2s_integration_benchmark 8.785 ± 0.229 8.596 9.268 1.00
head blake2s_integration_benchmark 8.799 ± 0.251 8.579 9.428 1.00 ± 0.04
Command Mean [s] Min [s] Max [s] Relative
base compare_arrays_200000 2.457 ± 0.028 2.421 2.512 1.00 ± 0.03
head compare_arrays_200000 2.450 ± 0.057 2.400 2.582 1.00
Command Mean [s] Min [s] Max [s] Relative
base dict_integration_benchmark 1.574 ± 0.016 1.559 1.614 1.00 ± 0.01
head dict_integration_benchmark 1.568 ± 0.007 1.558 1.582 1.00
Command Mean [s] Min [s] Max [s] Relative
base field_arithmetic_get_square_benchmark 1.443 ± 0.024 1.420 1.496 1.00 ± 0.02
head field_arithmetic_get_square_benchmark 1.436 ± 0.009 1.422 1.450 1.00
Command Mean [s] Min [s] Max [s] Relative
base integration_builtins 8.693 ± 0.107 8.601 8.898 1.00
head integration_builtins 8.759 ± 0.146 8.542 9.069 1.01 ± 0.02
Command Mean [s] Min [s] Max [s] Relative
base keccak_integration_benchmark 9.029 ± 0.121 8.864 9.223 1.01 ± 0.03
head keccak_integration_benchmark 8.966 ± 0.235 8.783 9.591 1.00
Command Mean [s] Min [s] Max [s] Relative
base linear_search 2.442 ± 0.016 2.422 2.465 1.00 ± 0.01
head linear_search 2.439 ± 0.025 2.413 2.494 1.00
Command Mean [s] Min [s] Max [s] Relative
base math_cmp_and_pow_integration_benchmark 1.923 ± 0.027 1.904 1.989 1.00 ± 0.02
head math_cmp_and_pow_integration_benchmark 1.914 ± 0.010 1.903 1.936 1.00
Command Mean [s] Min [s] Max [s] Relative
base math_integration_benchmark 1.728 ± 0.033 1.699 1.807 1.00 ± 0.02
head math_integration_benchmark 1.720 ± 0.017 1.702 1.748 1.00
Command Mean [s] Min [s] Max [s] Relative
base memory_integration_benchmark 1.353 ± 0.015 1.339 1.393 1.01 ± 0.01
head memory_integration_benchmark 1.335 ± 0.007 1.328 1.350 1.00
Command Mean [s] Min [s] Max [s] Relative
base operations_with_data_structures_benchmarks 2.000 ± 0.018 1.984 2.050 1.01 ± 0.01
head operations_with_data_structures_benchmarks 1.989 ± 0.014 1.974 2.021 1.00
Command Mean [ms] Min [ms] Max [ms] Relative
base pedersen 562.0 ± 2.9 558.8 568.4 1.01 ± 0.01
head pedersen 558.2 ± 6.2 555.3 575.7 1.00
Command Mean [s] Min [s] Max [s] Relative
base poseidon_integration_benchmark 1.010 ± 0.002 1.008 1.014 1.00 ± 0.01
head poseidon_integration_benchmark 1.008 ± 0.007 1.002 1.025 1.00
Command Mean [s] Min [s] Max [s] Relative
base secp_integration_benchmark 2.010 ± 0.017 1.981 2.036 1.01 ± 0.01
head secp_integration_benchmark 1.996 ± 0.009 1.983 2.012 1.00
Command Mean [ms] Min [ms] Max [ms] Relative
base set_integration_benchmark 753.6 ± 13.2 746.8 791.0 1.00 ± 0.02
head set_integration_benchmark 752.1 ± 2.4 748.1 755.2 1.00
Command Mean [s] Min [s] Max [s] Relative
base uint256_integration_benchmark 4.807 ± 0.035 4.773 4.887 1.00
head uint256_integration_benchmark 4.850 ± 0.078 4.780 5.024 1.01 ± 0.02