Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

### License

The Intel HERACLES P-ISA Tools project is licensed under the terms in [LICENSE](https://github.com/IntelLabs/hec-p-isa-tools/blob/main/LICENSE). By contributing to the project, you agree to the license and copyright terms therein and release your contribution under these terms.
The Intel Encrypted Computing SDK project is licensed under the terms in [LICENSE](https://github.com/IntelLabs/hec-p-isa-tools/blob/main/LICENSE). By contributing to the project, you agree to the license and copyright terms therein and release your contribution under these terms.

### Sign your work

Expand Down
82 changes: 40 additions & 42 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,75 +1,73 @@
# HERACLES Polynomial Instruction Set Architecture Tools
[![CodeQL](https://github.com/ossf/scorecard-action/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/IntelLabs/hec-p-isa-tools/actions/workflows/codeql-analysis.yml)
[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/IntelLabs/hec-p-isa-tools/badge)](https://scorecard.dev/viewer/?uri=github.com/IntelLabs/hec-p-isa-tools)
# Encrypted Computing Software Development Kit
[![CodeQL](https://github.com/ossf/scorecard-action/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/IntelLabs/encrypted-computing-sdk/actions/workflows/codeql-analysis.yml)
[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/IntelLabs/encrypted-computing-sdk/badge)](https://scorecard.dev/viewer/?uri=github.com/IntelLabs/encrypted-computing-sdk)
[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/9276/badge)](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.
[Fully Homomorphic Encryption (FHE)](https://en.wikipedia.org/wiki/Homomorphic_encryption)
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.
movement between main memory and the CPU's registers, which introduces large
computational overheds. New FHE hardware accelerator architectures aim at
accelerate the computation over large polynomial rings while minimizing
the data movement between the memory and the compute elements.

The Encrypted Computing SDK introduces a multistage transformation
(compiler) pipeline that breaks down the large polynomial computation into
the various abstraction layers to make it easier for developers to target
different hardware architectures as well as to develop new implementations
of FHE schemes, and integrate with existing 3rd Party libraries, compilers
and transpilers. The SDK is inspired by the
[LLVM Compiler Infrastructure](https://llvm.org/), and adopts a
modular approach based on language independent intermediate
representations (IRs) that promotes the separation of concerns at each
stage of the pipeline and allowing for dedicated transformations and
optimizations.

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
Our first target hardware platform is Intel’s
[HERACLES accelerator technology](https://dl.acm.org/doi/10.1145/3560810.3565290)
which 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.
a SIMD fashion.

<p>
<img src="docs/images/HERACLES_SDK_Integration_3rd_Party.png" align="left" width="600" />

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.
<p>
<img src="docs/images/SDK_Integration_3rd_party.png" align="left" width="600" />

This approach also allows for integration with 3rd Party compilers and
transpilers.
<br clear="left">
<br/>
<br/>
</p>

## HERACLES SDK Roadmap: Phased Approach
## Encrypted Computing SDK Roadmap: Phased Approach
<p>
<img src="docs/images/HERACLES_SDK_Phased_Approach.png" width=80% height=80% />
<img src="docs/images/SDK_Roadmap.png" width=80% height=80% />
<br/>
<br/>
<br/>
</p>

### HERACLES SDK Phase 1: Components and Tasks
### Encrypted Computing SDK Phase 1: Components and Tasks
<p>
<img src="docs/images/HERACLES_SDK_Phase_1.png" width=80% height=80% />
<img src="docs/images/SDK_Phase_1.png" width=80% height=80% />
<br>
<br/>
<br/>
</p>

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.
We are currently at Phase 1, developing the P-ISA tools and Assembler tools
component which comprises a) Kernel Generator, b) Program
Mapper, c) Functional Modeler Simulator, and d) HERACLES Assembler.
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.
Expand Down
Binary file not shown.
Binary file not shown.
1 change: 1 addition & 0 deletions docs/Encrypted-Computing-SDK/empty_file.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

Binary file not shown.
Binary file removed docs/images/HERACLES_SDK_Phase_1.png
Binary file not shown.
Binary file removed docs/images/HERACLES_SDK_Phase_2.png
Binary file not shown.
Binary file removed docs/images/HERACLES_SDK_Phased_Approach.png
Binary file not shown.
Binary file removed docs/images/HERACLES_SDK_Stack.png
Binary file not shown.
Binary file added docs/images/SDK_Integration_3rd_party.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/SDK_Phase_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/SDK_Roadmap.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.