Porcupine: A synthesizing compiler for vectorized homomorphic encryption
Proceedings of the 42nd ACM SIGPLAN International Conference on Programming …, 2021•dl.acm.org
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 …
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 …
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.
ACM Digital Library
以上显示的是最相近的搜索结果。 查看全部搜索结果