Files
concrete/compilers/concrete-optimizer
Alexandre Péré a02bf3bae9 fix(optimizer): compiler output forwarding
In the optimizer, nodes without consumers are identified as outputs.
Since we can now return multiple values, this is inherently buggy,
since a value can then be both returned, and consumed to create another
input.

This commit fixes this by allowing the compiler to tag nodes as being
outputs.
2024-01-26 17:15:03 +01:00
..
2023-03-16 17:35:34 +01:00
2023-04-13 09:49:00 +02:00

Concrete optimizer

Concrete Optimizer is a Rust library that find the best cryptographic parameters for a given TFHE homomorphic circuit. The goal if to minimize computation time under security and error constaints. Its main client is Concrete Compiler. It is implemented in Rust and offers a C++ API. It also provides a CLI tool to provide parameters for simplified circuits.

Prerequisite

Build

Concrete Optimizer and its C++ interface are built automatically by Concrete Compiler.

To build Concrete Optimizer manually, run:

cargo build --release

Test

To run the tests, run:

cargo test --release

CLI tool Usage

Running ./optimizer prints a table of cryptographic parameters for different precisions and log2(norm2).

The tools accepts different options that can be recalled by:

./optimizer --help