Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce VectorLWECipherText with cached validation flag #737

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

arcturusannamalai
Copy link

@arcturusannamalai arcturusannamalai commented Apr 15, 2024

  • Introduce VectorLWECipherText with cached validation flag
    • this has potential to speedup the evaluation of binary operators etc.
  • early exit when possible

@arcturusannamalai arcturusannamalai changed the title (minor change) example code to early exit Introduce VectorLWECipherText with cached validation flag Apr 15, 2024
…ith known validation status.

- This can reduce time for running binary operations potentially
  speedup the computations
@yspolyakov
Copy link
Contributor

I suggest discussing this further. The idea of adding a vector of LWE ciphertexts is reasonable but it is worth discussing how to do it first.

@yspolyakov yspolyakov marked this pull request as draft April 19, 2024 18:39
@yspolyakov yspolyakov added this to the Release 1.2.0 milestone Apr 19, 2024
@arcturusannamalai
Copy link
Author

@yspolyakov - thank you for the note; there are few use cases:

  • the same argument sets are used to compute functions f and g and this type of caching can help
  • lowering primitives from various transpilers maybe ensuring uniqueness of the cipher-text arguments to the OPenFHE primitives we can indicate uniqueness already

As for the implementation I can think of two strategies,

  • Global register of vectors which are unique or not and update it (not my choice of implementation since its hard to do it threadsafe)
  • Current implementation (need polish perhaps to propagate the solution through the OPenFHE API instead of wrap the arguments locally like I have done) where each vector stores its validation flag within it; perhaps the validate() method could be private and set only at c-tor time or by invoking at the time of OPenFHE binary operator etc.

Let me know what are your thoughts

@yspolyakov yspolyakov removed this from the Release 1.4.0 milestone Nov 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants