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

Epic: Folding #4426

Closed
11 tasks done
vezenovm opened this issue Feb 26, 2024 · 9 comments
Closed
11 tasks done

Epic: Folding #4426

vezenovm opened this issue Feb 26, 2024 · 9 comments
Assignees
Labels
ACIR/ACVM enhancement New feature or request tracking Tracking issues
Milestone

Comments

@vezenovm
Copy link
Contributor

vezenovm commented Feb 26, 2024

Problem

With folding becoming a popular new recursion technique among SNARK proving systems we should implement a clean interface for backends to handle folding multiple ACIR function calls as they see fit.

We currently inline all function calls in ACIR. We pass one ACIR blob to the backend essentially representing a single ACIR function.

Happy Case

ACIR/ACVM circuits should support multiple function calls that backends can implement how they see fit (either by folding or inlining those calls).

Tasks

  1. ACIR/ACVM enhancement
    vezenovm
  2. acir-gen enhancement ssa
  3. acir-gen enhancement
  4. compiler compiler frontend enhancement
  5. ACIR/ACVM enhancement js
  6. enhancement js
  7. acir-gen enhancement
  8. acir-gen enhancement

Nice to have:

Tasks

  1. bug
    vezenovm
  2. enhancement nargo
  3. vezenovm

Project Impact

Blocker

Impact Context

This is needed for meaningfully fast client recursion by not only Aztec but any Noir program. Without folding backends can only implement vanilla IVC recursion which is significantly more expensive and restricts users.

Workaround

None

Workaround Description

No response

Additional Context

Both issues #4427 and #4428 will most likely be implemented in https://github.com/AztecProtocol/aztec-packages as they are both breaking changes.

Would you like to submit a PR for this Issue?

None

Support Needs

No response

@vezenovm vezenovm added enhancement New feature or request ACIR/ACVM labels Feb 26, 2024
@github-project-automation github-project-automation bot moved this to 📋 Backlog in Noir Feb 26, 2024
@vezenovm vezenovm self-assigned this Feb 26, 2024
@vezenovm vezenovm moved this from 📋 Backlog to 🏗 In progress in Noir Mar 8, 2024
@Savio-Sou Savio-Sou added this to the 1.0 Implementation milestone Mar 28, 2024
@TomAFrench TomAFrench added the tracking Tracking issues label Apr 20, 2024
@vezenovm
Copy link
Contributor Author

vezenovm commented May 2, 2024

I am going to close #4851 in the nice-to-have list above with the creation of #4962. I wanted to check on removing #4720 as well. #4962 states we plan to remove nargo info entirely. Does this include for ACIR opcodes? Or do we expect an info command from the backend to include this as part of their report? @TomAFrench

@TomAFrench
Copy link
Member

I think that it makes sense to for the backend to return both the opcodes and constraints rather than trying to stitch them together from two different tools. Having a json response from the backend is the priority so we can maintain usage of the noir-gates-diff action but we'll need to have some form of report at some point.

@TomAFrench
Copy link
Member

We can close #4851 but can you open an issue in aztec-packages for adding a human readable report for bb gates?

@vezenovm
Copy link
Contributor Author

vezenovm commented May 3, 2024

We can close #4851 but can you open an issue in aztec-packages for adding a human readable report for bb gates?

Looks like you made it here AztecProtocol/aztec-packages#6168?

@TomAFrench
Copy link
Member

That's slightly different as I'm just wanting to get the JSON report as an MVP for this feature so we don't brick the github action. A human readable report can come in a separate PR imo.

@TomAFrench
Copy link
Member

Feel free to tackle in the same PR if that's more convenient.

@vezenovm
Copy link
Contributor Author

vezenovm commented May 3, 2024

A human readable report can come in a separate PR imo.

Ah I didn't see the distinction for human readable report I'll make a separate issue

@vezenovm
Copy link
Contributor Author

vezenovm commented May 3, 2024

Issue to replace #4720 can be found here (AztecProtocol/aztec-packages#6190). Human readable report issue can be found here (AztecProtocol/aztec-packages#6189)

@vezenovm
Copy link
Contributor Author

vezenovm commented May 3, 2024

All issues in this epic have been completed. If new bugs or features come up, they will be created as separate issues.

@vezenovm vezenovm closed this as completed May 3, 2024
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in Noir May 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ACIR/ACVM enhancement New feature or request tracking Tracking issues
Projects
Status: Done
Development

No branches or pull requests

3 participants