HEBench
HEBench Documentation Main Page

Overview

HEBench is designed to be a flexible, extendable, intuitive, and reliable framework for testing and evaluating homomorphic encryption software and hardware solutions. It defines an abstraction API in C to enable integration with the widest variety of hardware and software and executes high level tests using a front end application which feeds data to supported HE backends through the APIBridge component, generating detailed performance reports and verifying the accuracy of the returned results.

Features

  • Support for a wide range of software and hardware through highly flexible C API.
  • Automatic test data generation and results verification
  • Comprehensive performance metric report generation
  • Dynamic backend loading for easy comparison.
  • Includes front end support for a wide range of tests of interest to the Homomorphic Encryption space such as
    • Matrix Multiplication
    • Element wise vector addition.

Project Architecture


Figure 1. : HEBench architecture diagram

Figure 1 above shows a high-level diagram of the project architecture and its components. We further separate these components into what we call the frontend and backend components based upon how we expect users will interact with the project. Details on the backend and frontend are described in detail on their respective overview pages.

HEBench Backend

A HEBench backend is where the API and helper classes for interfacing with different homomorphic encryption (HE) hardware and software are defined.

Submitters are the primary users expected to interface with the HEBench project. To benchmark their implementation of one or more workloads supported by the frontend, submitters must create a backend for HEBench by implementing the C API Bridge (or extending the C++ wrapper).

Users interested in benchmarking their solution to supported HE workloads should start here. The tutorial provided in the backend overview section should offer a quick starting point.

  • HEBench Backend Overview : provides details on backends including components, and detailed information on how to create new backends to test implementations for the HE workloads.

HEBench Frontend

The HEBench frontend is where HE tests are defined, scheduled for execution, and results collected by the Test Harness.

Test Harness is the main component of the frontend. It is the main executable that benchmarks the performance of supported HE workloads implemented in backends.

Advanced users that wish to extend the frontend by implementing new tests and adding new workloads are Collaborators. Frontend provides an extensible framework that allows for these additions.

To become familiar with the functionality and features of Test Harness, users should start here. Advanced users interested in collaborating and adding new benchmarks to the frontend should start here as well.

  • HEBench frontend overview : provides details on the frontend including components, how to use, supported tests, and how to extend it.

HEBench Component namespace quick references

This section provides links to the core components and sections of the HEBench project.