https://github.com/intellabs/hec-p-isa-tools
Intel’s HERACLES accelerator introduces a new set of fundamental instructions, the Polynomial Instructions Set Architecture (P-ISA) that operates directly on polynomials requiring a completely new programming environment. This open-source project aims at developing the building blocks for a compiler toolchain for HERACLES.
https://github.com/intellabs/hec-p-isa-tools
accelerator code-generation compiler-toolset polynomial-data-type polynomial-rings
Last synced: about 1 year ago
JSON representation
Intel’s HERACLES accelerator introduces a new set of fundamental instructions, the Polynomial Instructions Set Architecture (P-ISA) that operates directly on polynomials requiring a completely new programming environment. This open-source project aims at developing the building blocks for a compiler toolchain for HERACLES.
- Host: GitHub
- URL: https://github.com/intellabs/hec-p-isa-tools
- Owner: IntelLabs
- License: apache-2.0
- Created: 2024-03-12T18:30:56.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-05T23:47:59.000Z (over 1 year ago)
- Last Synced: 2024-11-06T00:31:26.190Z (over 1 year ago)
- Topics: accelerator, code-generation, compiler-toolset, polynomial-data-type, polynomial-rings
- Language: Python
- Homepage:
- Size: 1.97 MB
- Stars: 28
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# HERACLES Polynomial Instruction Set Architecture Tools
[](https://github.com/IntelLabs/hec-p-isa-tools/actions/workflows/codeql-analysis.yml)
[](https://scorecard.dev/viewer/?uri=github.com/IntelLabs/hec-p-isa-tools)
[](https://www.bestpractices.dev/projects/9276)
## Overview
Intel’s [HERACLES accelerator technology](https://dl.acm.org/doi/10.1145/3560810.3565290)
aims at improving the computational performance of
[Fully Homomorphic Encryption (FHE)](https://en.wikipedia.org/wiki/Homomorphic_encryption).
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](https://llvm.org/). 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.
## HERACLES SDK Roadmap: Phased Approach
### HERACLES SDK Phase 1: Components and Tasks
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](./kerngen) to start experimenting with it.
# Contributing
Intel P-ISA Tools project welcomes external contributions through pull
requests to the `main` branch.
Please refer to the [Contributing](CONTRIBUTING.md) and
[Code of Conduct](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](https://docs.github.com/en/github/authenticating-to-github/managing-commit-signature-verification/signing-commits)
for how to sign commits.
We also use `pre-commit`, so before contributing, please ensure that you run
[pre-commit](https://pre-commit.com) and make sure all checks pass with
```bash
pre-commit install
pre-commit run --all-files
```
Please run the tests provided in each of the components and make sure
the tests pass.
# Feedback
We encourage feedback and suggestions via
[GitHub Issues](https://github.com/IntelLabs/hec-p-isa-tools/issues) as well
as via
[GitHub Discussions](https://github.com/IntelLabs/hec-p-isa-tools/discussions).