Skip to content
This repository was archived by the owner on Dec 25, 2023. It is now read-only.

Commit 05a1524

Browse files
authored
Merge keyswitch development into main
* Added contents to prepare for v1.1 release Added keyswitch kernel support Added integrated kernel support for DyadicMultiply and Keyswitch Deprecated standalone NTT/INTT Updated documentation
1 parent cd209a1 commit 05a1524

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+5710
-477
lines changed

.clang-format

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ PointerAlignment: Left
88
IndentWidth: 4
99
AccessModifierOffset: -4
1010
IndentCaseLabels: false
11+
SortIncludes: false

.github/workflows/ci.yml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,24 @@ jobs:
6464
source /disk1/tools/init_env.sh
6565
source /disk1/tools/new_env_setup.sh
6666
cd build
67+
export FPGA_DATA_DIR="/disk1/hexl-fpga-data"
68+
export KEYSWITCH_DATA_DIR="${FPGA_DATA_DIR}/test-vectors"
69+
echo "Run tests with bitstream"
70+
export FPGA_BITSTREAM_DIR="${FPGA_DATA_DIR}/bitstreams"
71+
make tests
72+
echo "Run tests with emulation"
73+
export FPGA_BITSTREAM_DIR=
6774
RUN_CHOICE=1 make tests
6875
6976
- name: run_bench
7077
run: |
7178
source /disk1/tools/init_env.sh
7279
source /disk1/tools/new_env_setup.sh
7380
cd build
74-
RUN_CHOICE=1 make bench
81+
export FPGA_DATA_DIR="/disk1/hexl-fpga-data"
82+
export FPGA_BITSTREAM_DIR="${FPGA_DATA_DIR}/bitstreams"
83+
export KEYSWITCH_DATA_DIR="${FPGA_DATA_DIR}/test-vectors"
84+
make bench
7585
7686
- name: build_examples
7787
run: |

CHANGES.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# Changes
22

3+
## Version 1.1
4+
- Added KeySwitch FPGA kernel support.
5+
- Added integrated kernel support for DyadicMultiply and KeySwitch.
6+
- Deprecated standalone NTT and INTT support, which will be removed in the next release.
7+
- Documentation updates.
8+
9+
Co-Authored-by: @[ymeng-git](https://github.com/ymeng-git) <br/>
10+
Co-Authored-by: @[yzhou79](https://github.com/yzhou79) <br/>
11+
Co-Authored-by: @[tgonzalez89-intel](https://github.com/tgonzalez89-intel) <br/>
12+
313
## Version 1.0
414
- Initial release.
515
- Added NTT/INTT/DyadicMultiply FPGA kernel support.

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
cmake_minimum_required(VERSION 3.5.1)
55

66
project(hexl-fpga LANGUAGES C CXX)
7-
set(hexl-fpga_VERSION 1.0)
7+
set(hexl-fpga_VERSION 1.1)
88

99
set(CMAKE_CONFIGURATION_TYPES Debug Release CACHE STRING INTERNAL FORCE)
1010
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build Type: Debug or Release")

CPPLINT.cfg

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
# Copyright (C) 2020-2021 Intel Corporation
22
# SPDX-License-Identifier: Apache-2.0
33

4-
filter=-readability/casting
5-
filter=-whitespace/indent
64
filter=-build/header_guard
7-
filter=-runtime/references
8-
filter=-runtime/int
9-
filter=-readability/braces
5+
filter=-build/include_order
106
filter=-build/include_subdir
117
filter=-build/c++11
128
filter=-build/include_what_you_use
9+
filter=-runtime/references
10+
filter=-runtime/int
11+
filter=-readability/braces
12+
filter=-readability/casting
13+
filter=-whitespace/indent

PREREQUISITE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44

55
There are two types of Intel Acceleration Stack (version 2.0.1), namely, the [Acceleration Stack for Runtime](https://www.intel.com/content/www/us/en/programmable/f/download/accelerator/license-agreement-pac-d5005.html?swcode=WWW-SWD-IAS-RTE-201) and the [Acceleration Stack for Development](https://www.intel.com/content/altera-www/global/en_us/index/f/download/accelerator/pac-d5005-thank-you.html?swcode=WWW-SWD-IAS-DEV-201). The runtime stack provides a smaller footprint package for software development of runtime host application. It includes Intel FPGA Runtime Environment (RTE) for OpenCL but does not include Intel Quartus Prime; thus, it assumes that the FPGA bitstreams are available. The development stack allows for accelerator function development using the Intel Quartus Prime Pro Edition software (required and included). Additionally, it comes with the Intel FPGA Software Development Kit (SDK) for OpenCL and the Acceleration Stack. <br>
66

7-
The Intel Acceleration Stack for development (`d5005_pac_ias_2_0_1_pv_dev_installer.tar.gz`) is encouraged and required to reap the full benefits of Intel HEXL for FPGA, especially before attempting to build the FPGA kernels and if intended usage of Intel HEXL for FPGA includes development contributions. Download, read more detailed installation instructions, updates and related additional resources at [Intel Acceleration Stack link](https://www.intel.com/content/www/us/en/programmable/products/boards_and_kits/dev-kits/altera/intel-fpga-pac-d5005/getting-started.html). <br>
7+
The Intel Acceleration Stack for development (`d5005_pac_ias_2_0_1_pv_dev_installer.tar.gz`) is encouraged and required to reap the full benefits of Intel HE Acceleration Library for FPGAs, especially before attempting to build the FPGA kernels and if intended usage of Intel HE Acceleration Library for FPGAs includes development contributions. Download, read more detailed installation instructions, updates and related additional resources at [Intel Acceleration Stack link](https://www.intel.com/content/www/us/en/programmable/products/boards_and_kits/dev-kits/altera/intel-fpga-pac-d5005/getting-started.html). <br>
88

99
Note: Even though the validated operating system is RHEL 7.6, we used CentOS 7.9 without issues.<br>
1010

1111
## Intel Quartus Prime Pro Edition
1212

13-
Quartus Prime version 19.2 is installed in the Acceleration Stack installation. For Intel HEXL for FPGA, the installation of Quartus Prime version 20.3 is required. [Download the complete version ](https://fpgasoftware.intel.com/20.3/?edition=pro) and follow the instructions below. <br>
13+
Quartus Prime version 19.2 is installed in the Acceleration Stack installation. For Intel HE Acceleration Library for FPGAs, the installation of Quartus Prime version 20.3 is required. [Download the complete version ](https://fpgasoftware.intel.com/20.3/?edition=pro) and follow the instructions below. <br>
1414

1515
```
1616
tar xvf Quartus-pro-20.3.0.158-linux-complete.tar

0 commit comments

Comments
 (0)