You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Partial loop unrolling considers the number of ciphertext slots. For example, if there are 256 slots then 256 iterations are unrolled to enable simultaneous execution using SIMD capabilities of the underlying FHE scheme. The remaining loops are executed using a cleanup loop For example, if the initial number of iteration is 500 then the remaining 244 iterations would be executed using the cleanup loop.
Currently, the cleanup loop only executes a single operation at once. This could be improved by generating a binary series of cleanup loops, for example, the unrolled loop uses 256 slots, followed by a 128-unrolled cleanup loop, then a 64-unrolled cleanup loop, then a 32-unrolled cleanup loop, etc. See TODO note in CompileTimeExpressionSimplifier.
A question involved in the implementation is to decide at which point to stop (minimum unroll factor of cleanup loop). Maybe this must be determined using an empirical approach.
The text was updated successfully, but these errors were encountered:
Partial loop unrolling considers the number of ciphertext slots. For example, if there are 256 slots then 256 iterations are unrolled to enable simultaneous execution using SIMD capabilities of the underlying FHE scheme. The remaining loops are executed using a cleanup loop For example, if the initial number of iteration is 500 then the remaining 244 iterations would be executed using the cleanup loop.
Currently, the cleanup loop only executes a single operation at once. This could be improved by generating a binary series of cleanup loops, for example, the unrolled loop uses 256 slots, followed by a 128-unrolled cleanup loop, then a 64-unrolled cleanup loop, then a 32-unrolled cleanup loop, etc. See TODO note in CompileTimeExpressionSimplifier.
A question involved in the implementation is to decide at which point to stop (minimum unroll factor of cleanup loop). Maybe this must be determined using an empirical approach.
The text was updated successfully, but these errors were encountered: