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
509 stars 142 forks source link

Hash Relocatables over compact form #1505

Open Oppen opened 9 months ago

codecov[bot] commented 9 months ago

Codecov Report

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

Project coverage is 96.82%. Comparing base (f47f760) to head (7f87e32). Report is 1 commits behind head on main.

:exclamation: Current head 7f87e32 differs from pull request most recent head 6667d89. Consider uploading reports for the commit 6667d89 to get more accurate results

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #1505 +/- ## ========================================== + Coverage 94.76% 96.82% +2.05% ========================================== Files 101 96 -5 Lines 38826 39689 +863 ========================================== + Hits 36795 38428 +1633 + Misses 2031 1261 -770 ```

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

github-actions[bot] commented 9 months ago

Benchmark Results for unmodified programs :rocket:

Command Mean [s] Min [s] Max [s] Relative
base big_factorial 2.076 ± 0.020 2.048 2.109 1.00
head big_factorial 2.099 ± 0.017 2.086 2.142 1.01 ± 0.01
Command Mean [s] Min [s] Max [s] Relative
base big_fibonacci 2.029 ± 0.041 1.992 2.131 1.00 ± 0.02
head big_fibonacci 2.029 ± 0.012 2.019 2.053 1.00
Command Mean [s] Min [s] Max [s] Relative
base blake2s_integration_benchmark 7.660 ± 0.093 7.543 7.818 1.00
head blake2s_integration_benchmark 7.761 ± 0.080 7.636 7.854 1.01 ± 0.02
Command Mean [s] Min [s] Max [s] Relative
base compare_arrays_200000 2.130 ± 0.016 2.110 2.152 1.00
head compare_arrays_200000 2.238 ± 0.116 2.159 2.490 1.05 ± 0.06
Command Mean [s] Min [s] Max [s] Relative
base dict_integration_benchmark 1.414 ± 0.007 1.406 1.429 1.00
head dict_integration_benchmark 1.453 ± 0.015 1.438 1.492 1.03 ± 0.01
Command Mean [s] Min [s] Max [s] Relative
base field_arithmetic_get_square_benchmark 1.296 ± 0.017 1.281 1.339 1.00
head field_arithmetic_get_square_benchmark 1.320 ± 0.015 1.299 1.344 1.02 ± 0.02
Command Mean [s] Min [s] Max [s] Relative
base integration_builtins 7.692 ± 0.051 7.600 7.746 1.00
head integration_builtins 7.954 ± 0.664 7.590 9.826 1.03 ± 0.09
Command Mean [s] Min [s] Max [s] Relative
base keccak_integration_benchmark 7.992 ± 0.306 7.783 8.822 1.00
head keccak_integration_benchmark 7.998 ± 0.048 7.914 8.048 1.00 ± 0.04
Command Mean [s] Min [s] Max [s] Relative
base linear_search 2.111 ± 0.023 2.083 2.144 1.00
head linear_search 2.172 ± 0.058 2.138 2.332 1.03 ± 0.03
Command Mean [s] Min [s] Max [s] Relative
base math_cmp_and_pow_integration_benchmark 1.704 ± 0.013 1.689 1.735 1.00
head math_cmp_and_pow_integration_benchmark 1.741 ± 0.008 1.733 1.756 1.02 ± 0.01
Command Mean [s] Min [s] Max [s] Relative
base math_integration_benchmark 1.619 ± 0.027 1.600 1.685 1.00
head math_integration_benchmark 1.642 ± 0.005 1.634 1.650 1.01 ± 0.02
Command Mean [s] Min [s] Max [s] Relative
base memory_integration_benchmark 1.214 ± 0.026 1.194 1.280 1.00
head memory_integration_benchmark 1.237 ± 0.011 1.224 1.263 1.02 ± 0.02
Command Mean [s] Min [s] Max [s] Relative
base operations_with_data_structures_benchmarks 1.830 ± 0.007 1.822 1.847 1.00
head operations_with_data_structures_benchmarks 1.875 ± 0.013 1.844 1.896 1.02 ± 0.01
Command Mean [ms] Min [ms] Max [ms] Relative
base pedersen 521.7 ± 8.9 515.4 546.3 1.00 ± 0.02
head pedersen 519.8 ± 2.0 517.5 523.7 1.00
Command Mean [ms] Min [ms] Max [ms] Relative
base poseidon_integration_benchmark 955.3 ± 3.9 950.2 961.7 1.00
head poseidon_integration_benchmark 963.9 ± 7.7 950.7 977.9 1.01 ± 0.01
Command Mean [s] Min [s] Max [s] Relative
base secp_integration_benchmark 1.851 ± 0.006 1.841 1.857 1.00
head secp_integration_benchmark 1.901 ± 0.044 1.872 2.018 1.03 ± 0.02
Command Mean [ms] Min [ms] Max [ms] Relative
base set_integration_benchmark 643.4 ± 4.5 638.8 654.1 1.00
head set_integration_benchmark 674.5 ± 1.4 672.4 676.7 1.05 ± 0.01
Command Mean [s] Min [s] Max [s] Relative
base uint256_integration_benchmark 4.277 ± 0.031 4.230 4.317 1.00
head uint256_integration_benchmark 4.323 ± 0.026 4.285 4.356 1.01 ± 0.01
github-actions[bot] commented 4 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 ± σ):     26.983 s ±  0.005 s    [User: 26.265 s, System: 0.716 s]
  Range (min … max):   26.979 s … 26.987 s    2 runs

Benchmark 2: hyper_threading_pr threads: 1
  Time (mean ± σ):     27.649 s ±  0.024 s    [User: 26.868 s, System: 0.779 s]
  Range (min … max):   27.632 s … 27.666 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 ± σ):     14.553 s ±  0.009 s    [User: 26.870 s, System: 0.743 s]
  Range (min … max):   14.547 s … 14.560 s    2 runs

Benchmark 2: hyper_threading_pr threads: 2
  Time (mean ± σ):     14.789 s ±  0.017 s    [User: 27.626 s, System: 0.805 s]
  Range (min … max):   14.777 s … 14.801 s    2 runs

Summary
  'hyper_threading_main threads: 2' ran
    1.02 ± 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 ± σ):     10.886 s ±  0.659 s    [User: 38.780 s, System: 0.921 s]
  Range (min … max):   10.420 s … 11.353 s    2 runs

Benchmark 2: hyper_threading_pr threads: 4
  Time (mean ± σ):     10.812 s ±  0.053 s    [User: 39.839 s, System: 0.994 s]
  Range (min … max):   10.775 s … 10.850 s    2 runs

Summary
  'hyper_threading_pr threads: 4' ran
    1.01 ± 0.06 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.561 s ±  0.280 s    [User: 39.129 s, System: 0.980 s]
  Range (min … max):   10.363 s … 10.758 s    2 runs

Benchmark 2: hyper_threading_pr threads: 6
  Time (mean ± σ):     11.422 s ±  0.167 s    [User: 39.493 s, System: 1.003 s]
  Range (min … max):   11.304 s … 11.540 s    2 runs

Summary
  'hyper_threading_main threads: 6' ran
    1.08 ± 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 ± σ):     10.471 s ±  0.035 s    [User: 39.324 s, System: 1.010 s]
  Range (min … max):   10.447 s … 10.496 s    2 runs

Benchmark 2: hyper_threading_pr threads: 8
  Time (mean ± σ):     10.932 s ±  0.110 s    [User: 39.980 s, System: 1.027 s]
  Range (min … max):   10.854 s … 11.009 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 ± σ):     10.776 s ±  0.169 s    [User: 39.268 s, System: 1.043 s]
  Range (min … max):   10.656 s … 10.896 s    2 runs

Benchmark 2: hyper_threading_pr threads: 16
  Time (mean ± σ):     10.797 s ±  0.174 s    [User: 40.509 s, System: 1.079 s]
  Range (min … max):   10.675 s … 10.920 s    2 runs

Summary
  'hyper_threading_main threads: 16' ran
    1.00 ± 0.02 times faster than 'hyper_threading_pr threads: 16'