-
Notifications
You must be signed in to change notification settings - Fork 18
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
implement (non-)volatile table modular circuits and e2e public io #457
Conversation
f5862e9
to
3dd90be
Compare
641e64d
to
f98ca7e
Compare
What does 'volatile' mean in this context? |
// Find the final mem data and cycles. | ||
// TODO retrieve max address access | ||
// as we already support non-uniform proving of memory | ||
let num_entry = 1 << 12; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where does this magic number come from?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is just the previous hardcode value in memory gadget. We will have "max address access" in trace to replace it.
@hero78119 I resolved the merge conflicts in here; hope you don’t mind. |
@hero78119 Ready to merge? |
@kunxian-xia is under reviewing and will finish sooner (BTW thanks for help resolving conflicts 🙏) |
@hero78119 I think I don't have time to do the review by this week. You can merge it. We can follow up in future PRs. |
okay, I will address above typo then merge first ! |
Have address most of comments and clarified and resolve conflicts. To unlock developments, I will merge to master first and track issue in follow up tasks |
@hero78119 Do you have a link to that PR, please? |
for instance_num_vars in args.start..args.end { | ||
// The performance benchmark is hook on number of "add" opcode instances. | ||
// Each iteration in the loop contributes 2 add instances, | ||
// so we divide by 2 here to ensure "instance_num_vars" aligns with the actual number of add instances. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It means the number of variables in the multilinear polynomial which encodes witnesses of the add opcode circuit. For example, if we have 2^10 add execution traces, then we can use ml polynomials of nv = 10 to encode the witnesses (rs1.value: UInt, rs2.value: UInt, rd.value: UInt
).
Working items & Scope
DynVolatileRamTable
for memory,NonVolatileRamCircuit
for Register/Public IO/ProgramDataCircuit.DynVolatileRamTable
table address on verifier succinctlysuccinctly address vector argument refer here: #378 (comment)
Public IO Auxiliary will cover in next PR