Andi Drebes b24709a1ec feat(compiler): Batching: Hoist non-batchable operands produced by pure ops
The batching pass only creates a batched version of a batchable
operation if all of its non-batchable operands are defined out ouf the
outermost loop the iterating over the values of the batchable operand.

This change also allows for operations to be batched if the
non-batachable operands are generated by operations, which are pure
and thus hoistable out of the outermost loop.
2023-03-24 11:06:51 +01:00
2023-03-15 16:40:25 +01:00
2022-12-05 12:35:26 +01:00

Concrete

The concrete project is a set of crates that implements Zama's variant of TFHE and make it easy to use. In a nutshell, fully homomorphic encryption (FHE), allows you to perform computations over encrypted data, allowing you to implement Zero Trust services.

Concrete is based on the Learning With Errors (LWE) and the Ring Learning With Errors (RLWE) problems, which are well studied cryptographic hardness assumptions believed to be secure even against quantum computers.

Project layout

The concrete project is a set of several modules which are high-level frontends, compilers, backends and side tools.

  • The frontends directory contains a python frontend.
  • The compilers directory contains the concrete-compiler and concrete-optimizer modules. The concrete-compiler is a compiler that synthetize a FHE computation dag expressed as a MLIR dialect, compile to a set of artifacts, and provide tools to manipulate those artifacts at runtime. The concrete-optimizer is a specific module used by the compiler to find the best, secure and accurate set of crypto parameters for a given dag.
  • The backends directory contains implementations of cryptographic primitives on different computation unit, used by the concrete-compiler runtime. The concrete-cpu module provides CPU implementation, while concrete-cuda module provides GPU implementation using the CUDA platform.
  • The tools directory contains side tools used by the rest of the project.
Description
No description provided
Readme 148 MiB
Languages
C++ 34.3%
Python 23.1%
MLIR 22.9%
Rust 14.6%
C 2.2%
Other 2.8%