-
Notifications
You must be signed in to change notification settings - Fork 4
BGV Relin Bug Fixes #43
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
Conversation
…stopherngutierrez/relin
…r reconsidered in the future
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, confirmed passing validation tests
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, passing as well
Two comments: I have some questions about the python constructs used in relin.py, particularly storing the "opts" or lists in a variable just to return them at the end of the code block. Since the code block already builds a list, it could be returned directly. Since you already stated the need for refactoring, and this PR seems to be passing the validation tests, why not use this as your base and refactor now? -Flavio |
Removed variable from opts from relin.
f12d252
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, Ran E2E for me with recent change
This PR implements the an experimental fix for a few issues in the RELIN kernel. Namely, the RELIN kernel generated code that was segmented due issues with composing DigitalDecompExtend and Keymul together. This fix uses internal temporary variables output_tmp , which will be refactored out in a following PR. Further, the input polynomials parts are hardcoded to 3 and output parts to 2 since the code assumes those sizes (also to be refactored to be more generic in the future). Today the RELIN kernel only supports 16k polynomials due to a limitation of the NTT/INTT kernels. This limitation is being removed and the RELIN kernel will be updated accordingly.
Proposed changes
This PR implements the an experimental fix for a few issues in the RELIN kernel. Namely, the RELIN kernel generated code that was segmented due issues with composing DigitalDecompExtend and Keymul together. This fix uses internal temporary variables output_tmp , which will be refactored out in a following PR. Further, the input polynomials parts are hardcoded to 3 and output parts to 2 since the code assumes those sizes (also to be refactored to be more generic in the future).
Today the RELIN kernel only supports 16k polynomials due to a limitation of the NTT/INTT kernels. This limitation is being removed and the RELIN kernel will be updated accordingly.
Types of changes
What types of changes does your code introduce to the HE Toolkit project?
Put an
x
in the boxes that applyChecklist
Put an
x
in the boxes that apply. You can also fill these out after creatingthe PR. If you are unsure about any of them, do not hesitate to ask. We are
here to help! This is simply a reminder of what we are going to look for before
merging your code.
Further comments