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

Add Icicle GPU acceleration to Plonk BN254 Prover #7

Open
wants to merge 60 commits into
base: master
Choose a base branch
from

Conversation

bigsky77
Copy link

@bigsky77 bigsky77 commented Feb 7, 2024

Description

This PR adds experimental support for Icicle GPU acceleration library for Plonk backend and the BN254 curve.

Type of change

[X] New feature (non-breaking change which adds functionality)

How has this been tested?

[X] Using the circuits in gnark/examples/plonk/main.go

  1. Follow the instructions for setting up Icicle in the linked fork above
  2. From gnark run go run examples/plonk/main.go

[X] Using Ingonyama's fork of Succinct Lab's Gnark-Plonky2-Verifier

  1. From Gnark-Plonky2-Verifier run go run benchmarks.go --icicle

How has this been benchmarked?

Benchmarks ran on Gnark-Plonky2-Verifier using AWS: g5.8xlarge A10g 32 core 128GB.

Benchmarks can be seen here.

Dependencies

This merge requests depends on modifications to the following two repositories.

  1. IcicleGnark - Pull Request
  2. Gnark-Crypto - Branch

Checklist:

  • [X ] I have performed a self-review of my code
  • [ X] I have commented my code, particularly in hard-to-understand areas
  • [ X] I have made corresponding changes to the documentation
  • [ X] I have added tests that prove my fix is effective or that my feature works
  • [ X] I did not modify files generated from templates
  • [ X] golangci-lint does not output errors locally
  • [ X] New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

jeremyfelder and others added 30 commits October 2, 2023 09:48
…th BN254.

Full replacement of CPU prove with GPU prove can be used with the build tag 'gpu'.
…or NTT and MSM.

Add GPU memory cleanup using cudaFree
Add GPU version of marshal
…erations

Update iciclegnark dependency to v0.1.0
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.

3 participants