We want to be able to leverage GPUs in halo2, via the ec-gpu crate. This requires two changes:
The curve implementation needs to support producing the GPU kernel for finite field arithmetic.
halo2 needs to use GPU-aware MSM and FFT algorithms.
This issue covers the second change. We should implement the GpuEngine trait from the ec-gpu crate (behind a gpu feature flag), and then the ec-gpu-gen crate should be able to generate the necessary CUDA/OpenCL source code for MSMs and FFTs.
We want to be able to leverage GPUs in
halo2
, via theec-gpu
crate. This requires two changes:halo2
needs to use GPU-aware MSM and FFT algorithms.This issue covers the second change. We should implement the
GpuEngine
trait from theec-gpu
crate (behind agpu
feature flag), and then theec-gpu-gen
crate should be able to generate the necessary CUDA/OpenCL source code for MSMs and FFTs.