Is adapting a NTT done in a GPU to OpenFHE difficult?

Hello, I am currently developing a GPU-based NTT. How difficult would it be to “replace” the existing NumberTheoreticTransformNat::ForwardTransformToBitReverseInPlace by my own implementation ?

You will need to integrate your GPU kernels and the associated kernel launch functions into OpenFHE.

Specifically, you will need to provide your custom definitions of NativeInteger, NativeVector and Transforms. You will also need to write the logic related to memory management, whether you will be using unified memory or explicit memory allocation/deallocation.

Also, depending on your implementation of NTT, you need to ensure that precomputed constants are stored in the GPU memory.

Consider studying the Intel HEXL (see below) integration into OpenFHE.

The following projects might be helpful to learn how to do the integration:

Intel HEXL

OpenFHE-HEXL

OpenFHE-configurator