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: Profiler MVP #2941

Closed
4 of 5 tasks
kobyhallx opened this issue Oct 2, 2023 · 1 comment
Closed
4 of 5 tasks

Epic: Profiler MVP #2941

kobyhallx opened this issue Oct 2, 2023 · 1 comment
Assignees
Milestone

Comments

@kobyhallx
Copy link
Contributor

kobyhallx commented Oct 2, 2023

MVP Scope

It would be great to have a profiler that helps quickly estimate resource costs each line of a Noir program contributes, hence more easily optimizing proving performance of Noir programs.

The MVP user workflow should look something like:

  1. Developer runs nargo info --verbose
  2. Nargo prints # of ACIR opcodes associated with each line, e.g.
    fn main(x : Field) {
      foo(x) // -> 100 opcodes
      bar(x) // -> 200 opcodes
      let y = x + x; // -> 1 opcode
    }
    

Tasks

Preview Give feedback
  1. TomAFrench

Additional context - full vision

Not to be achieved with this Issue. More as extra context and for discussions where necessary.

The full vision could be:

  1. VS Code extension always display the # of ACIR opcodes next to each line of Noir code
  2. When the developer hovers over the #, it additionally displays:
    a. # of backend constraints
    b. Estimated proving time
    c. Estimated proving memory needs

Based on:

  1. Developer's proving backend of choice
  2. Developer's machine / simulated sample environment (e.g. Safari on iPhone 14)
@Savio-Sou Savio-Sou added this to Noir May 11, 2023
@kobyhallx kobyhallx converted this from a draft issue Oct 2, 2023
@Savio-Sou Savio-Sou added this to the 1.0 milestone Oct 16, 2023
@Savio-Sou Savio-Sou changed the title Epic: Resource Guesstimation MVP Epic: Profiler MVP Oct 23, 2023
@Savio-Sou
Copy link
Collaborator

Assigning P-MEDIUM as this greatly helps the Private Kernel Circuit rewrite project and Noir gate golfers out there, but not necessarily blocking any works.

Guessing E-MEDIUM.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

No branches or pull requests

3 participants