snarkOS
snarkOS copied to clipboard
Initial GPU prover
Motivation
This PR enables basic GPU support for underlying snarkVM operations (MSMs and NTTs). This is still UNDER ACTIVE DEVELOPMENT as there are many additional optimizations to be made (and audits to be conducted).
At this time, the optimizations are only available for Nvidia GPUs with support for Cuda 9 or later.
Requirements:
Cuda sm_70 or later Cuda Toolkit (nvcc)
Notes:
- This PR relies on rev dafd8cc from https://github.com/AleoHQ/snarkVM/pull/1288. Once this is added to a new snarkVM release, we can update this dependency.
- The resource pool in snarkOS should also be updated to ensure more optimal use of the GPU resources.
Note: We need to add a README section for this PR too.