@inproceedings{7c8fdc7c63f6414488683fe6253278ce,
title = "Porcupine: A synthesizing compiler for vectorized homomorphic encryption",
abstract = "Homomorphic encryption (HE) is a privacy-preserving technique that enables computation directly on encrypted data. Despite its promise, HE has seen limited use due to performance overheads and compilation challenges. Recent work has made significant advances to address the performance overheads but automatic compilation of efficient HE kernels remains relatively unexplored. This paper presents Porcupine, an optimizing compiler that generates vectorized HE code using program synthesis. HE poses three major compilation challenges: it only supports a limited set of SIMD-like operators, it uses long-vector operands, and decryption can fail if ciphertext noise growth is not managed properly. Porcupine captures the underlying HE operator behavior so that it can automatically reason about the complex trade-offs imposed by these challenges to generate optimized, verified HE kernels. To improve synthesis time, we propose a series of optimizations including a sketch design tailored to HE to narrow the program search space. We evaluate Porcupine using a set of kernels and show speedups of up to 52% (25% geometric mean) compared to heuristic-driven hand-optimized kernels. Analysis of Porcupine's synthesized code reveals that optimal solutions are not always intuitive, underscoring the utility of automated reasoning in this domain.",
keywords = "homomorphic encryption, program synthesis, vectorization",
author = "Meghan Cowan and Deeksha Dangwal and Armin Alaghi and Caroline Trippel and Lee, {Vincent T.} and Brandon Reagen",
note = "Publisher Copyright: {\textcopyright} 2021 ACM.; 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, PLDI 2021 ; Conference date: 20-06-2021 Through 25-06-2021",
year = "2021",
month = jun,
day = "18",
doi = "10.1145/3453483.3454050",
language = "English (US)",
series = "Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)",
publisher = "Association for Computing Machinery",
pages = "375--389",
editor = "Freund, {Stephen N.} and Eran Yahav",
booktitle = "PLDI 2021 - Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation",
}