Batch and multivalue bootstrapping

I have been following TFHE for some time now. I would really like to know if the latest version of tfhe-rs supports batch and multivalue bootstrapping. If I remember correctly, there was an idea about multivalue bootstrapping in first papers of TFHE, but it was for binary coefficients, has it been implemented for FheUint8 and so data structures?

1 Like

hello @divyesh we now have added the many lut PBS allowing to evaluate several functions on a single input if you have some MSB in the message that are unused

See e.g. ServerKey in tfhe::shortint::server_key - Rust

This is good. I am actually asking about whether it is possible to perform same look up table evaluation on multiple inputs using single bootstrap function

We do not have that at the moment, we were thinking about doing a batch PBS potentially

If I want to do a batch bootstrap, how should I proceed, do I need to make changes in source code? Correct me if I am wrong, one idea that I have is packing multiple LWE ciphers using a TLWE cipher and apply bootstrap on TLWE. Am I correct in thinking it this way?

how would the packing and PBS work ?

This is something I have been thinking for some time for which I currently don’t have an answer

The reason I ask @divyesh is because we do not have code for bootstrapping a GLWE with TFHE-rs, we can bootstrap an LWE with an auxiliary GLWE but not a GLWE itself

I understand that. Can you give a sample code on doing PBS with auxiliary GLWE cipher?

sorry what I meant is the auxiliary GLWE is the Lookup Table you are used to

1 Like