Design of traces #41
Replies: 4 comments 6 replies
-
Attaching a trace generated with OlaVM for a Fibonacci program. Mainly it has following columns:
if we go by this design our main(processor) trace will be very large :
So above can be roughly 170-180 columns. This feels a large table. Although we can do something similar to https://github.com/zcash/halo2/blob/main/halo2_proofs/src/plonk/circuit/compress_selectors.rs and https://hackmd.io/@daira/SkjDVkLCd |
Beta Was this translation helpful? Give feedback.
-
Just to note Triton-VM's trace looks much different compare to OlaVM. Is it because OlaVM is plonk based on Triton is not? |
Beta Was this translation helpful? Give feedback.
-
PROCESSOR_TRACE
Constraints:CLK: clk is always incremented by 1
Registers: Except destination registers, all other reg values stay the same between 2 rows.
Only one opcode selector is enabled
Program counter (PC)
constraints for each opcode except opcodes handled in builtins.
last row should be ECALL 93 (i.e exit system call)? |
Beta Was this translation helpful? Give feedback.
-
#121 might help with the traces. |
Beta Was this translation helpful? Give feedback.
-
#6
Let's discuss what format we want our traces to be in, and how to record and use them.
As a first step, we will have to capture execution. We can do that as a
Vec<State>
(with persistent data structures insideState
to keep memory usage from becoming O(memory * cycles). That can decouples the dynamic aspect of the execution from the work of converting into a trace proper.Beta Was this translation helpful? Give feedback.
All reactions