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

Convert kernel ROM chiplet into a lookup table #1518

Open
plafer opened this issue Sep 30, 2024 · 1 comment
Open

Convert kernel ROM chiplet into a lookup table #1518

plafer opened this issue Sep 30, 2024 · 1 comment
Labels
air Related to Miden AIR and constraints enhancement New feature or request processor Related to Miden VM processor

Comments

@plafer
Copy link
Contributor

plafer commented Sep 30, 2024

The current kernel ROM chiplet was designed with the assumption that it would be proved using a running product column (i.e. a "vanilla multiset check"). Specifically, if a program makes 10 syscalls to the same kernel procedure, we will add 10 entries to the kernel ROM (with the same addr).

After we've switched to LogUp-GKR, we could make this a simple lookup table, where the s0 and addr columns are converted to a single multiplicity column.

The "kernel lookup table" would have 5 columns:

| multiplicity | root0 | root1 | root2 | root3 |

Each kernel procedure (whether it's called or not) would be added exactly once to the table, with multiplicity = 0 for all kernel procedures that were not called during a program so that the kernel virtual table can account for them.

@plafer plafer added enhancement New feature or request processor Related to Miden VM processor air Related to Miden AIR and constraints labels Sep 30, 2024
@bobbinth
Copy link
Contributor

bobbinth commented Oct 1, 2024

I think this approach would work for regular LogUp as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
air Related to Miden AIR and constraints enhancement New feature or request processor Related to Miden VM processor
Projects
None yet
Development

No branches or pull requests

2 participants