Skip to content

[DO NOT MERGE] Memory Profiler#196

Draft
zhiyong1997 wants to merge 8 commits intomasterfrom
zf/memory_profiler
Draft

[DO NOT MERGE] Memory Profiler#196
zhiyong1997 wants to merge 8 commits intomasterfrom
zf/memory_profiler

Conversation

@zhiyong1997
Copy link
Contributor

@zhiyong1997 zhiyong1997 commented Sep 15, 2025

From the implementation side:

The most extensive part of memory usage now:

  1. PCS Peak: ~60GB (root only).
  2. GKR Peak: ~5.59 GB/core
  • Export to Expander Format: ~1.2GB
  • ScratchPad: ~2.7 GB
  • Input Intermediate Result: ~0.5 GB
  • All witness: ~1.2 GB
  1. PCS Target: TBD
  2. GKR Target:
  • Export to Expander Format: 0. (Store shared expander circuit instead of ECC circuit in the very beginning)
  • ScratchPad: ~1.4GB
  • Input Intermediate Result: 0 (Simply drop it)
  • All witness: ~1.2GB (No change)

gemini-code-assist[bot]

This comment was marked as off-topic.

@zhiyong1997 zhiyong1997 changed the title Zf/memory profiler [DO NOT MERGE] Memory Profiler Sep 15, 2025
@zhiyong1997 zhiyong1997 marked this pull request as draft September 15, 2025 23:57
gemini-code-assist[bot]

This comment was marked as off-topic.

@zhiyong1997
Copy link
Contributor Author

zhiyong1997 commented Sep 16, 2025

From system design:

Backend

  1. Goldilocks, but what PCS?.
  2. Variable-length BN Field.
  3. Optimize Sumcheck (Currently 4X input size overhead).
  4. (Fallback) Auto detect available memory and split large parallelism into several smaller ones (will either hurt proving time or proof size and verification time).

Frontend

  1. Minimize circuit and witness size.

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