Intel’s HERACLES accelerator technology aims at improving the computational performance of Fully Homomorphic Encryption (FHE). FHE allows computation to be performed on encrypted data without having to decrypt the data which brings in profound and beneficial implications for data privacy and data confidentiality. However, these benefits come with a significant performance cost which has so far confined FHE based applications to specific use case archetypes primarily in use by the regulated industries and government.
Most of the FHE schemes of today perform the computation using very large polynomial rings, thus requiring considerable compute power and data movement between main memory and the CPU's registers. HERACLES improves the performance of FHE by accelerating the computation over the large polynomials and optimizing the data movement involved in the computation.
HERACLES introduces a new Polynomial Data type which does not exist in today's traditional CPUs. For this new polynomial data type, it supports a new set of novel and fundamental instructions, the Polynomial Instructions Set Architecture (P-ISA), that operates directly on large polynomials in a SIMD fashion. We at Intel Labs are developing a new compiler pipeline, the Encrypted Computing SDK, to make it easier for developers to develop new implementations of FHE schemes and also integrate with existing libraries.
The Encrypted Computing SDK (or HERACLES SDK) will realize a multistage transformation (compiler) pipeline, inspired by the LLVM Compiler Infrastructure. We have adopted a modular approach based on language independent intermediate representations (IR) that promotes the separation of concerns at each stage of the pipeline and allowing for dedicated transformations and optimizations.
This approach also allows for integration with 3rd Party compilers and
transpilers.
We are currently at Phase 1, more specifically developing the P-ISA Tools component which comprises three main tools, a) Kernel Generator, b) Program Mapper, and c) Functional Modeler Simulator. Each tool in this repo is self contained and has its own local README.
Current development is focussed on the Kernel Generator. Follow the instructions here to start experimenting with it.
Intel P-ISA Tools project welcomes external contributions through pull
requests to the main
branch.
Please refer to the Contributing and Code of Conduct documents for additional information on the contribution acceptance guidelines.
We use signed commits, please remember to sign your commits before making a pull request. See instructions here for how to sign commits.
We also use pre-commit
, so before contributing, please ensure that you run
pre-commit and make sure all checks pass with
pre-commit install
pre-commit run --all-files
Please run the tests provided in each of the components and make sure the tests pass.
We encourage feedback and suggestions via GitHub Issues as well as via GitHub Discussions.