google / google/heir

Support a target level for CKKS bootstrapping

Open
#2,436 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
MLIR
Stars
906
Forks
171
Avg merge
4d 12h
Merged PRs (30d)
32

Description

CKKS bootstrapping to a configurable lower level than the max effective level (max level - levels that bootstrapping consumes) can be used when not all levels need to be used. This can lower latency, since the bootstrap op will be faster, and subsequent ops at lower levels will also run with lower latency.

But this is not supported by any open-source backends, while this technique is used in Halo / Dacapo - (cf https://github.com/google/heir/issues/2376 https://github.com/google/heir/issues/289).

Linking in the corresponding issues for support in OpenFHE
https://github.com/openfheorg/openfhe-development/issues/927

In the meantime, I'm adding an optional attr to the ckks.bootstrap op with this info to mirror the Halo / Dacapo semantics. What we can do as a workaround is add a regular bootstrap + level reduce in the IR to ensure type consistency.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.