automate profiling & reduce memory usage
- Dominant language
- Rust
- Stars
- 285
- Forks
- 97
- PR merge metrics
- No merged PRs in 30d
Description
I've been trying to use Nova to fold Circom & arkworks circuits in this repo: https://github.com/arnaucube/hash-chain-sonobe
and specially when folding arkworks circuits, the memory usage keeps growing while the `prove_step` is being called over and over.
I've started to update Sonobe removing a bunch of `.clone()`s and removed the usage of `Vec<_>` along the `nova.prove_step` method in the branch https://github.com/privacy-scaling-explorations/sonobe/tree/reduce-memory-usage, but more work needs to be done on it.
To test it, there is a branch in the hash-chain-sonobe repo that uses the `reduce-memory-usage` branch of sonobe: https://github.com/arnaucube/hash-chain-sonobe/tree/reduce-memory-usage , since the interfaces have changed in sonobe's branch.
The task of this issue would be:
1. Automating the usage of profiling tools of the memory usage, so that we can be aware of the concrete improvements (for this time but also for the future)
2. Reduce memory usage, specially focusing on the `.prove_step()` method
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the reduce-memory-usage branches in Sonobe and hash-chain-sonobe, then trace repeated calls to Nova's `prove_step()` while folding arkworks circuits. Establish an automated way to measure memory usage and use it to verify concrete reductions, especially during `prove_step()`.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- performance, tooling
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100