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
522 stars 150 forks source link

Release v2.0.0-rc0 #1859

Closed pefontana closed 3 weeks ago

pefontana commented 4 weeks ago

Release v2.0.0-rc0

Description

Description of the pull request changes and motivation.

Checklist

github-actions[bot] commented 4 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 ± σ):     33.208 s ±  0.158 s    [User: 32.417 s, System: 0.790 s]
  Range (min … max):   33.097 s … 33.320 s    2 runs

Benchmark 2: hyper_threading_pr threads: 1
  Time (mean ± σ):     34.022 s ±  0.030 s    [User: 33.157 s, System: 0.863 s]
  Range (min … max):   34.001 s … 34.043 s    2 runs

Summary
  'hyper_threading_main threads: 1' ran
    1.02 ± 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 ± σ):     17.729 s ±  0.022 s    [User: 30.943 s, System: 0.806 s]
  Range (min … max):   17.714 s … 17.745 s    2 runs

Benchmark 2: hyper_threading_pr threads: 2
  Time (mean ± σ):     18.331 s ±  0.040 s    [User: 32.023 s, System: 0.835 s]
  Range (min … max):   18.302 s … 18.359 s    2 runs

Summary
  'hyper_threading_main threads: 2' ran
    1.03 ± 0.00 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 ± σ):     12.155 s ±  0.206 s    [User: 43.055 s, System: 1.093 s]
  Range (min … max):   12.009 s … 12.301 s    2 runs

Benchmark 2: hyper_threading_pr threads: 4
  Time (mean ± σ):     12.111 s ±  0.258 s    [User: 44.350 s, System: 1.004 s]
  Range (min … max):   11.929 s … 12.293 s    2 runs

Summary
  'hyper_threading_pr threads: 4' ran
    1.00 ± 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 ± σ):     12.070 s ±  0.383 s    [User: 43.425 s, System: 1.031 s]
  Range (min … max):   11.799 s … 12.342 s    2 runs

Benchmark 2: hyper_threading_pr threads: 6
  Time (mean ± σ):     12.631 s ±  0.066 s    [User: 43.949 s, System: 1.017 s]
  Range (min … max):   12.584 s … 12.677 s    2 runs

Summary
  'hyper_threading_main threads: 6' ran
    1.05 ± 0.03 times faster than 'hyper_threading_pr 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.681 s ±  0.146 s    [User: 44.066 s, System: 1.031 s]
  Range (min … max):   11.578 s … 11.784 s    2 runs

Benchmark 2: hyper_threading_pr threads: 8
  Time (mean ± σ):     12.097 s ±  0.032 s    [User: 44.700 s, System: 1.088 s]
  Range (min … max):   12.074 s … 12.119 s    2 runs

Summary
  'hyper_threading_main threads: 8' ran
    1.04 ± 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.899 s ±  0.110 s    [User: 44.167 s, System: 1.111 s]
  Range (min … max):   11.821 s … 11.977 s    2 runs

Benchmark 2: hyper_threading_pr threads: 16
  Time (mean ± σ):     11.925 s ±  0.110 s    [User: 45.021 s, System: 1.067 s]
  Range (min … max):   11.847 s … 12.003 s    2 runs

Summary
  'hyper_threading_main threads: 16' ran
    1.00 ± 0.01 times faster than 'hyper_threading_pr threads: 16'
codecov[bot] commented 4 weeks ago

Codecov Report

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

Project coverage is 96.32%. Comparing base (efecd4f) to head (db2c938). Report is 1 commits behind head on main.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #1859 +/- ## ======================================= Coverage 96.32% 96.32% ======================================= Files 102 102 Lines 40315 40315 ======================================= Hits 38832 38832 Misses 1483 1483 ```

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

github-actions[bot] commented 4 weeks ago

Benchmark Results for unmodified programs :rocket:

Command Mean [s] Min [s] Max [s] Relative
base big_factorial 2.503 ± 0.112 2.435 2.812 1.00
head big_factorial 2.553 ± 0.046 2.461 2.602 1.02 ± 0.05
Command Mean [s] Min [s] Max [s] Relative
base big_fibonacci 2.478 ± 0.130 2.395 2.834 1.01 ± 0.06
head big_fibonacci 2.445 ± 0.043 2.406 2.526 1.00
Command Mean [s] Min [s] Max [s] Relative
base blake2s_integration_benchmark 9.139 ± 0.106 9.011 9.334 1.00
head blake2s_integration_benchmark 9.297 ± 0.113 9.112 9.566 1.02 ± 0.02
Command Mean [s] Min [s] Max [s] Relative
base compare_arrays_200000 2.612 ± 0.066 2.519 2.729 1.00 ± 0.05
head compare_arrays_200000 2.608 ± 0.104 2.537 2.892 1.00
Command Mean [s] Min [s] Max [s] Relative
base dict_integration_benchmark 1.686 ± 0.023 1.655 1.734 1.01 ± 0.02
head dict_integration_benchmark 1.676 ± 0.022 1.652 1.719 1.00
Command Mean [s] Min [s] Max [s] Relative
base field_arithmetic_get_square_benchmark 1.432 ± 0.017 1.409 1.471 1.00 ± 0.02
head field_arithmetic_get_square_benchmark 1.425 ± 0.026 1.407 1.494 1.00
Command Mean [s] Min [s] Max [s] Relative
base integration_builtins 9.211 ± 0.129 9.072 9.469 1.00
head integration_builtins 9.293 ± 0.130 9.111 9.506 1.01 ± 0.02
Command Mean [s] Min [s] Max [s] Relative
base keccak_integration_benchmark 9.485 ± 0.096 9.326 9.632 1.00
head keccak_integration_benchmark 9.641 ± 0.202 9.384 9.982 1.02 ± 0.02
Command Mean [s] Min [s] Max [s] Relative
base linear_search 2.566 ± 0.028 2.532 2.610 1.00 ± 0.01
head linear_search 2.565 ± 0.025 2.537 2.605 1.00
Command Mean [s] Min [s] Max [s] Relative
base math_cmp_and_pow_integration_benchmark 1.749 ± 0.045 1.708 1.852 1.00
head math_cmp_and_pow_integration_benchmark 1.770 ± 0.043 1.721 1.867 1.01 ± 0.04
Command Mean [s] Min [s] Max [s] Relative
base math_integration_benchmark 1.699 ± 0.053 1.663 1.839 1.01 ± 0.03
head math_integration_benchmark 1.684 ± 0.017 1.665 1.709 1.00
Command Mean [s] Min [s] Max [s] Relative
base memory_integration_benchmark 1.432 ± 0.037 1.404 1.532 1.00
head memory_integration_benchmark 1.439 ± 0.028 1.404 1.492 1.00 ± 0.03
Command Mean [s] Min [s] Max [s] Relative
base operations_with_data_structures_benchmarks 1.818 ± 0.040 1.781 1.923 1.00 ± 0.03
head operations_with_data_structures_benchmarks 1.814 ± 0.023 1.788 1.849 1.00
Command Mean [ms] Min [ms] Max [ms] Relative
base pedersen 591.3 ± 6.5 587.3 609.1 1.00
head pedersen 592.3 ± 4.5 589.5 604.4 1.00 ± 0.01
Command Mean [ms] Min [ms] Max [ms] Relative
base poseidon_integration_benchmark 695.3 ± 6.2 683.8 705.9 1.00 ± 0.01
head poseidon_integration_benchmark 692.7 ± 6.4 685.2 704.6 1.00
Command Mean [s] Min [s] Max [s] Relative
base secp_integration_benchmark 2.069 ± 0.019 2.041 2.109 1.00
head secp_integration_benchmark 2.079 ± 0.025 2.050 2.127 1.00 ± 0.02
Command Mean [ms] Min [ms] Max [ms] Relative
base set_integration_benchmark 678.4 ± 4.1 672.2 684.4 1.00
head set_integration_benchmark 713.4 ± 42.3 695.2 833.5 1.05 ± 0.06
Command Mean [s] Min [s] Max [s] Relative
base uint256_integration_benchmark 5.035 ± 0.063 4.960 5.115 1.00
head uint256_integration_benchmark 5.119 ± 0.185 4.954 5.566 1.02 ± 0.04