37 Commits

Author SHA1 Message Date
youben11
b186641c58 chore(ci): drop support for py3.8 2025-04-29 08:53:17 +01:00
youben11
bf04e1a837 refactor(ci): merge cuda Dockerfiles 2025-04-25 14:58:43 +01:00
youben11
4cf195c9c4 chore(ci): renaming of docker images
new convention: org/repo/image_name:tag
2025-04-25 14:58:41 +01:00
youben11
0a4074f1c4 chore(ci): update docker image build workflow
- add gpu compiler image
- remove hpx image
2025-04-23 12:30:01 +01:00
youben11
45e4ceeeee chore(ci): optimize size of ci docker image
- removed HPX: no more necessary
- removed CUDA: we will have another image that contains additional cuda
  libs
- removed build artifacts: only keep the ccache
- minimized the rust installation
- add docker ignore file
2025-04-23 12:16:53 +01:00
youben11
f1ac427955 fix(ci): fix build of docker images
remove USER: we don't really need that, this image are only meant as a
CI environment

also avoid legacy ENV key-value format in Dockerfile
2025-04-23 10:05:18 +01:00
Alexandre Péré
c3f742d9cd feat(frontend): introduce concrete rust adapter 2025-04-22 08:55:04 +02:00
Ayoub Benaissa
91b872b047 Merge pull request #1198 from zama-ai/feat/keygen-from-tfhers
Concrete Keygen in Rust
2025-02-25 10:21:31 +01:00
Alexandre Péré
2994c3d54f chore(ci): activate ccache debug informations in container builds 2025-02-24 14:43:50 +01:00
youben11
43e511f22e feat(ci/tools): install capnp in docker image 2025-02-24 12:36:29 +01:00
Alexandre Péré
a302b56c18 chore(ci): fix broken ccache in containers 2025-02-21 15:10:12 +01:00
Roger Carhuatocto
3a4ee455f9 fix(ci): adds trivy-ignore-file to ignore HEALTHCHECK and solves non-root issue 2025-02-07 14:57:12 +01:00
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
Bourgerie Quentin
5a98041d13 chore(common): Merge branch 'main' into release/2.7.x 2024-08-13 14:12:19 +02: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
20c6427551 docs(frontend): update links to zama pypi 2024-06-24 14:34:42 +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
d212aa190f fix(ci): use brackets instead of parentheses 2024-06-13 18:19:53 +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
youben11
b686a8b64a feat(ci): build a second cuda image for 11.8 2024-06-13 13:41:11 +01:00
Ayoub Benaissa
19afbd9aff chore(ci): install CP from Zama PyPI 2024-05-16 10:35:35 +01:00
Antoniu Pop
e67aa9b499 feat(compiler): upgrade HPX library version to 1.9.1. 2024-02-23 11:47:37 +00:00
Antoniu Pop
da1f30023f feat(compiler): upgrade HPX library version to 1.9.1. 2024-02-23 10:31:18 +00: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
Ayoub Benaissa
91b4fcc208 fix(compiler/frontend): provide ld in the docker image
the concrete-python docker image didn't have the `ld` binary, which is required during compilation
2023-06-07 17:28:44 +01:00
Ayoub Benaissa
fcbf05215a chore(ci): reduce image size
don't use cache, and install torch cpu
2023-04-07 16:05:43 +01:00
youben11
981b0f4bb1 feat(ci): push concrete-python docker image on release 2023-04-07 12:45:03 +01:00
Quentin Bourgerie
d1cac8e25d chore(ci/compiler): Fixing build and push compiler docker images 2023-03-15 14:11:58 +01:00