Hi!
I’m currently leveraging TPU to accelerate CKKS scheme of OpenFHE - our experiments show that TPU favors large batch data, i.e. perform a single EvalMultandRelinearization for thousands of independent pairs of ciphertext. Because this way amortizes the control overhead and memory consumption of parameters among all thousands pairs of ciphertext.
Might I seek whether does OpenFHE offer a way for batchEvalMultandRelinearization?
Thanks!
Typically operations are defined in OpenFHE at the level of single ciphertexts. It is up to the application developer to extend them to data structures with many ciphertexts. For example, one could add a simple procedure that would take an STL vector of ciphertexts and would process them in a loop by calling EvalMult on each ciphertext. If you want to split EvalMult into EvalMultNoRelin (which does not require a relinearization key) and Relinearize, you could use those calls separately inside the application-level procedure. In other words, it is fully up to the application developer. For instance, when developing application-level procedures and running them on CPU, we often turn on OMP parallelization to enable running these on different cores as part of the same loop.
1 Like