Skip to content

feat: unify cpu / gpu provers under same framework #923

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

Draft
wants to merge 12 commits into
base: master
Choose a base branch
from

Conversation

kunxian-xia
Copy link
Collaborator

No description provided.

@kunxian-xia kunxian-xia marked this pull request as draft April 24, 2025 08:25
github-merge-queue bot pushed a commit that referenced this pull request May 21, 2025
## Motivation

We want to unify the prover's workflow for opcode circuits and table
circuits. As they follow the same kind of workflow, i.e.

1. infer tower witness;
2. run tower prover;
3. run main sumcheck which is optional for table circuits.

Before this pr, the **opcode** circuit includes multiple
read/write/logup records in a **single** tower while **table** circuit
packs read/write/logup records into one dedicated tower for each
read/write/logup expression. We found that the way that's used by table
circuit to build tower tree is better than that of opcode.

## Performance

| benchmark | proof size (MB) | proving time |
|------------|-----------------|-------------|
| fibonacci 2^20 | 1.14 -> 1.2 (5%) | -0.8% |
| fibonacci 2^21 | 1.22 -> 1.28 (5%) |  -5% |
| fibonacci 2^22 | 1.3 -> 1.37 (5%) | -10%|
    
**New issue**: The proof size increase is due to we have more `ProdSpec`
and `LogupSpec` which implies more points and evaluations in the `struct
TowerProof`. Note that after we abandon the old "interleaving" method,
the number of rounds per product spec and lougup spec are same now,
therefore, we can remove this new overhead in follow up pr.

## Impact 
Blocker for #923.

---------

Co-authored-by: sm.wu <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant