Skip to content

Intel HEXL library backend for OpenFHE, which uses AVX-512 instructions to accelerate the execution of OpenFHE cryptographic capabilities.

License

Notifications You must be signed in to change notification settings

openfheorg/openfhe-hexl

Repository files navigation

OpenFHE HEXL Acceleration

This repository contains code that can be staged into OpenFHE to enable Intel HEXL acceleration.

How To Use

This repository is typically used in conjunction with openfhe-configurator.

Before following the steps below, we recommend following the guidelines outlined in the Notes specific to the Intel HEXL backend section of Building OpenFHE for Best Performance.

% git clone https://github.com/openfheorg/openfhe-configurator.git
% cd openfhe-configurator
% scripts/configure.sh

OpenFHE configurator

Would you like to stage an openfhe-development build?     [y/n] : n
Would you like to stage an openfhe-hexl build?            [y/n] : y

===============================================================================

Cloning openfhe-development repository.

===============================================================================

Switching to openfhe-development branch v1.1.4.

===============================================================================

Status of openfhe-development brach v1.1.4.

===============================================================================

Staging [default] build.

===============================================================================

Build [default] is staged.
You may now run scripts/build-openfhe-development.sh to perform a default build.

===============================================================================

Cloning openfhe-hexl repository.

===============================================================================

Switching to openfhe-hexl branch v1.1.4.0.

===============================================================================

Status of openfhe-hexl branch v1.1.4.0.

===============================================================================

Staging [hexl-enabled] build.

===============================================================================

Build [hexl-enabled] is staged.
You may now run scripts/build-openfhe-development.sh to perform a hexl-enabled build.

% scripts/build-openfhe-development.sh
[ OpenFHE HEXL-enabled build commences]

By default, the OpenFHE and HEXL libraries are built and installed at openfhe-configurator/openfhe-staging/install. If you want to change the install location, pass an OPENFHE_INSTALL_DIR value to the build script e.g.,

% OPENFHE_INSTALL_DIR=~/local scripts/build-openfhe-development.sh

If you want to change OpenFHE build paramaters, pass those changes as CMAKE_FLAGS e.g.,

% CMAKE_FLAGS="-DWITH_OPENMP=OFF -DCMAKE_BUILD_TYPE=Debug" scripts/build-openfhe-development.sh

If you want to use a preinstalled build of the Intel HEXL library with your openfhe-hexl build, include the following:

% CMAKE_FLAGS="-DINTEL_HEXL_PREBUILT=ON -DINTEL_HEXL_HINT_DIR=[PATH TO INTEL HEXL]" scripts/build-openfhe-development.sh

For More Information

Please see OpenFHE Development

About

Intel HEXL library backend for OpenFHE, which uses AVX-512 instructions to accelerate the execution of OpenFHE cryptographic capabilities.

Resources

License

Stars

Watchers

Forks

Packages

No packages published