Commit Graph

15 Commits

Author SHA1 Message Date
youben11
1cbd963161 fix(ci): lint all dockerfiles and lower failure threshold 2024-10-24 08:24:12 +01:00
Alexandre Péré
f2bd6712ba fix(ci): add missing mypy dependency in dockerfile 2024-10-21 16:28:46 +02:00
youben11
6c81e0c67b chore(backend): update tfhers in concrete-cpu 2024-10-03 10:42:34 +01:00
Antoniu Pop
1153dd2785 fix(ci): remove ssh mount in docker image build as not needed. 2024-07-13 19:29:48 +01:00
Antoniu Pop
88e9c9057d fix(ci): generate docker images without setting the CUDA user mode driver based on the compilation CUDA toolkit as this needs to be brought in by the CUDA container toolkit from the execution machine. 2024-07-13 19:29:48 +01:00
James Marsh
d9c21df157 chore(compiler): Bump version of tfhe-rs and rust compiler and fixed build issues 2024-07-04 17:22:34 +02:00
youben11
7baf39e803 fix(ci): prepend gcc11 in PATH and LD_LIBRARY_PATH
Configuring gcc11 in the compiler wasn't enough for cuda to use it
2024-06-14 17:23:54 +01:00
youben11
736fef051c fix(ci): use same compiler for hpx and concrete 2024-06-13 18:08:36 +01:00
youben11
bce7fe30ba fix(ci): build compiler image with cuda11.8
previous version was not working properly (too recent). So we switched
to 11.8 and thus downgraded to gcc11. The reason for using ?= in the
Makefile is to default to gcc11 in the docker image, as those variables
are set in the env.
2024-06-13 13:41:11 +01:00
Bourgerie Quentin
a654e68eab chore(ci): Update cuda version 2024-02-13 17:02:46 +01:00
Bourgerie Quentin
bdc1151356 chore(compiler): Update dockers base image 2024-02-13 17:02:46 +01:00
Bourgerie Quentin
3b94f3b84e chore(compiler): Fixing docker build issue by cleaning dnf and set the right rust nighlty version 2024-02-13 17:02:46 +01:00
Umut
037600112d feat(frontend-python): drawing 2024-01-23 11:42:26 +03:00
Alexandre Péré
e8ef48ffd8 feat(compiler): introduce concrete-protocol
This commit:
 + Adds support for a protocol which enables inter-op between concrete,
   tfhe-rs and potentially other contributors to the fhe ecosystem.
 + Gets rid of hand-made serialization in the compiler, and
   client/server libs.
 + Refactors client/server libs to allow more pre/post processing of
   circuit inputs/outputs.

The protocol is supported by a definition in the shape of a capnp file,
which defines different types of objects among which:
 + ProgramInfo object, which is a precise description of a set of fhe
   circuit coming from the same compilation (understand function type
   information), and the associated key set.
 + *Key objects, which represent secret/public keys used to
   encrypt/execute fhe circuits.
 + Value object, which represent values that can be transferred between
   client and server to support calls to fhe circuits.

The hand-rolled serialization that was previously used is completely
dropped in favor of capnp in the whole codebase.

The client/server libs, are refactored to introduce a modular design for
pre-post processing. Reading the ProgramInfo file associated with a
compilation, the client and server libs assemble a pipeline of
transformers (functions) for pre and post processing of values coming in
and out of a circuit. This design properly decouples various aspects of
the processing, and allows these capabilities to be safely extended.

In practice this commit includes the following:
 + Defines the specification in a concreteprotocol package
 + Integrate the compilation of this package as a compiler dependency
   via cmake
 + Modify the compiler to use the Encodings objects defined in the
   protocol
 + Modify the compiler to emit ProgramInfo files as compilation
   artifact, and gets rid of the bloated ClientParameters.
 + Introduces a new Common library containing the functionalities shared
   between the compiler and the client/server libs.
 + Introduces a functional pre-post processing pipeline to this common
   library
 + Modify the client/server libs to support loading ProgramInfo objects,
   and calling circuits using Value messages.
 + Drops support of JIT.
 + Drops support of C-api.
 + Drops support of Rust bindings.

Co-authored-by: Nikita Frolov <nf@mkmks.org>
2023-11-09 17:09:04 +01:00
Quentin Bourgerie
d1cac8e25d chore(ci/compiler): Fixing build and push compiler docker images 2023-03-15 14:11:58 +01:00