Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: Use IsEqual instead of IsEqualVec in core air #467

Merged
merged 1 commit into from
Sep 24, 2024

Conversation

zlangley
Copy link
Contributor

No description provided.

@zlangley zlangley force-pushed the is_equal_cols branch 2 times, most recently from d1f16ae to 8367b40 Compare September 24, 2024 18:24
@jonathanpwang jonathanpwang added the run-benchmark triggers benchmark workflows on the pr label Sep 24, 2024

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

@jonathanpwang
Copy link
Contributor

Rerunning one more time after rebasing main so the diffs are correct.

Copy link

single_filter

Benchmark for Predicate

Total Cells Total Prove (ms) Main Trace Gen (ms) Perm Trace Gen (ms) Calc Quotient Values (ms) Rest of Prove (ms)
19_202_048 870.00 174.00 8.55 32.20 655.25

AIR metrics

Name Rows Cells Prep Cols Main Cols Perm Cols
PageIndexScanInputAir 32_768 9_830_400 0 [97, 131] [72]
PageIndexScanOutputAir 32_768 8_192_000 0 [97, 81] [72]
VariableRangeCheckerAir 131_072 1_179_648 2 [1] [8]

Commit: 28a4a60
AWS Instance Type: r7g.8xlarge
Benchmark Workflow

Copy link

single_rw

Benchmark for ReadWrite

Total Cells Total Prove (ms) Main Trace Gen (ms) Perm Trace Gen (ms) Calc Quotient Values (ms) Rest of Prove (ms)
36_405_248 1440.00 213.00 20.60 173.00 1033.40

AIR metrics

Name Rows Cells Prep Cols Main Cols Perm Cols
PageReadAir 32_768 1_343_488 0 [33] [8]
IndexedPageWriteAir 32_768 5_079_040 0 [33, 82] [40]
PageOfflineChecker 131_072 27_394_048 0 [161] [48]
VariableRangeCheckerAir 131_072 1_179_648 2 [1] [8]
ExecutionAir 32_768 1_409_024 0 [35] [8]

Commit: 28a4a60
AWS Instance Type: r7g.8xlarge
Benchmark Workflow

Copy link

vm_verify_fibair

stark_prove_excluding_trace_time_ms total_cells total_cells_used trace_gen_time_ms verify_program_compile_ms
7785.0 (+0.2%) 66134036 30396086 1674.0 (-0.2%) 51.0
chip_name rows_used
ByteXor 65536
Core 320143
FieldArithmetic 164539
FieldExtension 7914
Memory 107130
Poseidon2 3309
Program 54734
RangeChecker 131072
opcode cells_used frequency
FADD 4231056 134354
BNE 4897555 75347
STOREW 5665012 74011
LOADW 3273235 49216
LOADW2 2473799 38007
SHINTW 2791488 33232
STOREW2 1667208 21346
FMUL 702623 20715
JAL 834554 12839
FSUB 355778 9467
HINT_INPUT 309985 4769
CT_END 254865 3921
CT_START 254865 3921
BBE4MUL 258120 3759
BEQ 222885 3429
COMP_POS2 1344356 2678
FE4ADD 115016 1678
BBE4DIV 84328 1239
FE4SUB 84336 1238
PERM_POS2 316762 631
HINT_BITS 6760 104
FDIV 93 3
TERMINATE 65 1
dsl_ir frequency
For 117162
StoreHintWord 58471
AddVI 39783
Alloc 39094
StoreE 37932
LoadV 30112
LoadE 19400
LoadF 17279
IfEqI 14495
StoreV 13848
ImmV 13024
StoreF 10962
ImmF 7243
SubEF 6612
AddEI 6244
AssertEqF 5048
HintInputVec 4769
CycleTrackerEnd 3921
CycleTrackerStart 3921
SubVI 3900
MulE 3726
AssertEqV 3640
SubV 3502
AddFI 3309
MulVI 3300
MulV 3224
IfNe 2817
MulF 2682
Poseidon2CompressBabyBear 2678
AddV 2274
ImmE 2068
AddE 1678
MulEF 1656
DivE 1238
SubE 1238
IfEq 743
Poseidon2PermuteBabyBear 631
IfNeI 619
AddEFFI 524
AssertEqE 416
SubVIN 412
MulEI 165
HintBitsF 104
AssertEqVI 16
SubEI 8
DivEIN 5
AssertEqEI 4
DivFIN 3
Halt 1
MulFI 1
air_name cells constraints interactions main_cols perm_cols prep_cols quotient_deg rows
CoreAir 44564480 112 (+0.9%) 19 65 20 0 8 524288
FieldArithmeticAir 12320768 23 15 31 16 0 8 262144
MemoryAuditAir 3538944 19 6 19 8 0 8 131072
VariableRangeCheckerAir 1179648 4 1 1 8 2 1 131072
ProgramAir 589824 4 1 1 8 9 1 65536
XorLookupAir 589824 4 1 1 8 3 1 65536
FieldExtensionArithmeticAir 884736 38 51 68 40 0 8 8192
Poseidon2VmAir 2465792 419 144 502 100 0 8 4096
VmConnectorAir 20 4 2 2 8 1 2 2

Flamegraphs: link
Commit: 28a4a60
AWS Instance Type: r7g.8xlarge
Benchmark Workflow

Copy link

tiny_e2e

group stark_prove_excluding_trace_time_ms total_cells total_cells_used trace_gen_time_ms
fibonacci_program_inner 467.0 (+0.6%) 1782300 200526 0.0
group chip_name rows_used
fibonacci_program_inner ByteXor 65536
fibonacci_program_inner Core 6
fibonacci_program_inner FieldArithmetic 90
fibonacci_program_inner Memory 35
fibonacci_program_inner Program 97
fibonacci_program_inner RangeChecker 131072
group opcode cells_used frequency
fibonacci_program_inner FADD 3360 90
fibonacci_program_inner STOREW 320 4
fibonacci_program_inner JAL 80 1
fibonacci_program_inner TERMINATE 61 1
group dsl_ir frequency
fibonacci_program_inner AddFI 60
fibonacci_program_inner AddF 30
fibonacci_program_inner ImmF 2
fibonacci_program_inner Halt 1
group air_name cells constraints interactions main_cols perm_cols prep_cols quotient_deg rows
fibonacci_program_inner VariableRangeCheckerAir 1179648 4 1 1 8 2 1 131072
fibonacci_program_inner XorLookupAir 589824 4 1 1 8 3 1 65536
fibonacci_program_inner ProgramAir 1152 4 1 1 8 9 1 128
fibonacci_program_inner FieldArithmeticAir 8576 28 15 31 36 0 2 128
fibonacci_program_inner MemoryAuditAir 2240 21 6 19 16 0 2 64
fibonacci_program_inner CoreAir 840 114 (+0.9%) 19 61 44 0 2 8
fibonacci_program_inner VmConnectorAir 20 4 2 2 8 1 2 2

Flamegraphs: link
Commit: 28a4a60
AWS Instance Type: r7g.16xlarge
Benchmark Workflow

@jonathanpwang
Copy link
Contributor

Purely a refactor, doesn't change column counts.

@jonathanpwang jonathanpwang merged commit c6f7c53 into main Sep 24, 2024
26 checks passed
@jonathanpwang jonathanpwang deleted the is_equal_cols branch September 24, 2024 22:32
Copy link

small_e2e

group stark_prove_excluding_trace_time_ms total_cells total_cells_used trace_gen_time_ms verify_program_compile_ms
bench_program_inner 1200.0 (-0.2%) 1997712 287089 2.0
inner_verifier 112464.0 (-0.0%) 1191182356 633762188 (+0.0%) 33952.0 (-0.9%) 47069.0 (-0.5%)
group chip_name rows_used
bench_program_inner ByteXor 65536
bench_program_inner Core 28
bench_program_inner FieldArithmetic 13
bench_program_inner FieldExtension 1
bench_program_inner Keccak256 24
bench_program_inner Memory 59
bench_program_inner Program 37
bench_program_inner RangeChecker 131072
inner_verifier ByteXor 65536
inner_verifier Core 6488280 (+0.0%)
inner_verifier FieldArithmetic 2528695 (+0.0%)
inner_verifier FieldExtension 1492713 (+0.0%)
inner_verifier Memory 845320 (+0.0%)
inner_verifier Poseidon2 31034
inner_verifier Program 293203 (+0.0%)
inner_verifier RangeChecker 131072
group opcode cells_used frequency
bench_program_inner STOREW 1261 16
bench_program_inner FADD 398 11
bench_program_inner BNE 305 5
bench_program_inner FMUL 62 2
bench_program_inner JAL 141 2
bench_program_inner LOADW 160 2
bench_program_inner STOREW2 160 2
bench_program_inner FE4ADD 144 1
bench_program_inner KECCAK256 87752 1
bench_program_inner TERMINATE 61 1
inner_verifier LOADW 146620480 2237353
inner_verifier LOADW2 132802036 2043034
inner_verifier FADD 55771578 (+0.0%) 1750464 (+0.0%)
inner_verifier BNE 72456995 1114723
inner_verifier BBE4MUL 52045804 (+0.0%) 735013 (+0.0%)
inner_verifier FSUB 22410598 722423
inner_verifier FE4ADD 29181540 (+0.0%) 389266 (+0.0%)
inner_verifier BBE4DIV 24024280 353201
inner_verifier SHINTW 26291076 312989
inner_verifier STOREW2 14815581 219109
inner_verifier CT_END 11968775 184135
inner_verifier CT_START 11968775 184135
inner_verifier STOREW 10125609 (+0.0%) 142262 (+0.0%)
inner_verifier FMUL 1817042 55657
inner_verifier JAL 2010599 (+0.3%) 30932 (+0.3%)
inner_verifier PERM_POS2 11470700 22850
inner_verifier FE4SUB 2100528 (+0.0%) 15233 (+0.0%)
inner_verifier HINT_INPUT 696020 10708
inner_verifier BEQ 576810 8874
inner_verifier COMP_POS2 4108368 8184
inner_verifier FDIV 7493 151
inner_verifier HINT_BITS 1625 25
inner_verifier TERMINATE 65 1
group dsl_ir frequency
bench_program_inner ImmE 8
bench_program_inner For 7
bench_program_inner AddVI 6
bench_program_inner Alloc 6
bench_program_inner ImmV 3
bench_program_inner IfEqI 2
bench_program_inner ImmF 2
bench_program_inner StoreV 2
bench_program_inner AddE 1
bench_program_inner AddF 1
bench_program_inner Halt 1
bench_program_inner Keccak256 1
inner_verifier SubEF 2821704
inner_verifier For 1822082
inner_verifier LoadE 1498380
inner_verifier MulE 727858 (+0.0%)
inner_verifier StoreHintWord 614495
inner_verifier LoadF 554381
inner_verifier AddVI 438166
inner_verifier AddE 389266 (+0.0%)
inner_verifier DivE 353130
inner_verifier IfEqI 211872 (+0.0%)
inner_verifier StoreF 194952
inner_verifier CycleTrackerEnd 184135
inner_verifier CycleTrackerStart 184135
inner_verifier LoadV 83334
inner_verifier AddEI 80896 (+0.0%)
inner_verifier Alloc 69716
inner_verifier MulEI 35775
inner_verifier ImmV 32208
inner_verifier StoreV 27143
inner_verifier StoreE 25140
inner_verifier MulF 23762
inner_verifier Poseidon2PermuteBabyBear 22850
inner_verifier ImmE 17392 (+0.0%)
inner_verifier ImmF 15360
inner_verifier SubE 15233 (+0.0%)
inner_verifier SubV 15168
inner_verifier AddFI 13721 (+0.1%)
inner_verifier HintInputVec 10708
inner_verifier MulVI 9367
inner_verifier Poseidon2CompressBabyBear 8184
inner_verifier IfNe 7886
inner_verifier AddV 6720
inner_verifier IfEq 6140
inner_verifier AssertEqF 4633
inner_verifier MulEFI 2660
inner_verifier MulEF 2200
inner_verifier SubVI 1421
inner_verifier AssertEqV 1262
inner_verifier SubEFI 1248
inner_verifier IfNeI 1009
inner_verifier AddEFI 960
inner_verifier NegE 784
inner_verifier MulV 775
inner_verifier AddEFFI 696
inner_verifier SubEI 568
inner_verifier SubVIN 408
inner_verifier DivEIN 355
inner_verifier AssertEqVI 159
inner_verifier DivFIN 151
inner_verifier AssertEqE 132
inner_verifier HintBitsF 25
inner_verifier MulFI 9
inner_verifier AssertEqEI 4
inner_verifier Halt 1
group air_name cells constraints interactions main_cols perm_cols prep_cols quotient_deg rows
bench_program_inner VariableRangeCheckerAir 1179648 4 1 1 8 2 1 131072
bench_program_inner XorLookupAir 589824 4 1 1 8 3 1 65536
bench_program_inner ProgramAir 576 4 1 1 8 9 1 64
bench_program_inner MemoryAuditAir 1984 20 6 19 12 0 4 64
bench_program_inner CoreAir 2976 111 (+0.9%) 19 61 32 0 4 32
bench_program_inner KeccakVmAir 221664 2866 823 3631 3296 0 4 32
bench_program_inner FieldArithmeticAir 880 25 15 31 24 0 4 16
bench_program_inner VmConnectorAir 20 4 2 2 8 1 2 2
bench_program_inner FieldExtensionArithmeticAir 140 46 51 68 72 0 4 1
inner_verifier CoreAir 713031680 112 (+0.9%) 19 65 20 0 8 8388608
inner_verifier FieldArithmeticAir 197132288 23 15 31 16 0 8 4194304
inner_verifier FieldExtensionArithmeticAir 226492416 38 51 68 40 0 8 2097152
inner_verifier MemoryAuditAir 28311552 19 6 19 8 0 8 1048576
inner_verifier ProgramAir 4718592 4 1 1 8 9 1 524288
inner_verifier VariableRangeCheckerAir 1179648 4 1 1 8 2 1 131072
inner_verifier XorLookupAir 589824 4 1 1 8 3 1 65536
inner_verifier Poseidon2VmAir 19726336 419 144 502 100 0 8 32768
inner_verifier VmConnectorAir 20 4 2 2 8 1 2 2

Flamegraphs: link
Commit: 28a4a60
AWS Instance Type: r7g.16xlarge
Benchmark Workflow

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
run-benchmark triggers benchmark workflows on the pr
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants