Issue 1: Security parameter exploration
MAPLE explicitly explores key CKKS parameter choices, including:
the maximum multiplicative depth, and
the number of slots.
Issue 2: Preventing large MLIR from dominating back-end compilation time
MAPLE’s lowering can generate extremely large MLIR. For instance, lowering MNIST produces 279 MB of IR because loops are explicitly unrolled. This substantially increases compilation time in downstream compilers such as OpenFHE.
Keeping loops in the generated MLIR would help, but bootstrapping complicates this design: bootstrap insertion depends on analyzing the remaining level budget, which currently relies on partially unrolled code.
A practical workaround is for MAPLE to manually split loops and insert bootstrap annotations via mgmt.bootstrap:
https://heir.dev/docs/dialects/mgmt/#mgmtbootstrap-heirmgmtbootstrapop
@j2kun @asraa @akashmadhu4
Suggestions are appreciated!
Issue 1: Security parameter exploration
MAPLE explicitly explores key CKKS parameter choices, including:
the maximum multiplicative depth, and
the number of slots.
Issue 2: Preventing large MLIR from dominating back-end compilation time
MAPLE’s lowering can generate extremely large MLIR. For instance, lowering MNIST produces 279 MB of IR because loops are explicitly unrolled. This substantially increases compilation time in downstream compilers such as OpenFHE.
Keeping loops in the generated MLIR would help, but bootstrapping complicates this design: bootstrap insertion depends on analyzing the remaining level budget, which currently relies on partially unrolled code.
A practical workaround is for MAPLE to manually split loops and insert bootstrap annotations via mgmt.bootstrap:
https://heir.dev/docs/dialects/mgmt/#mgmtbootstrap-heirmgmtbootstrapop
@j2kun @asraa @akashmadhu4
Suggestions are appreciated!