Commit Graph

2826 Commits

Author SHA1 Message Date
Quentin Bourgerie
d388f08cc5 test(compiler): Fix check test 2023-04-14 15:01:18 +02:00
rudy
008eec658b fix(optimizer,tests): sign extract is slower with slow ks 2023-04-14 15:01:18 +02:00
rudy
06b724ab50 feat(compiler/tests): rounded tests, add rounded tlu + tensorized 2023-04-14 15:01:18 +02:00
rudy
81fd9f3441 feat(optimizer): multi-parameters, use slow keyswitch until stabilized 2023-04-14 15:01:18 +02:00
rudy
9c68d132ca feat(optimizer): multi-parameter entry point, single parameter solution for woppbs 2023-04-14 15:01:18 +02:00
rudy
d2a342fc84 feat(optimizer): multiparameters compiler entry point 2023-04-14 15:01:18 +02:00
rudy
3e05aa47a4 feat(optimizer): multiparameters optimization 2023-04-14 15:01:18 +02:00
rudy
361244abd0 feat(optimizer): symbolic variance constraints for multiparameters 2023-04-14 15:01:18 +02:00
rudy
104ec93881 feat(optimizer): symbolic variance for multi-parameter 2023-04-14 15:01:18 +02:00
rudy
38646b7559 feat(optimizer): dag partitionning based on p_cut 2023-04-14 15:01:18 +02:00
rudy
c6b5a6111b feat(optimizer): display trait for op and dag 2023-04-14 15:01:18 +02:00
Quentin Bourgerie
caaec449f5 fix(optimizer): Conversion between dag and circuit solution 2023-04-14 15:01:18 +02:00
Quentin Bourgerie
142e0ed77e feat(compiler): Integrate circuit solution optimization 2023-04-14 15:01:18 +02:00
Quentin Bourgerie
953c202fe1 refactor(compiler): Propagate optimizer dag node identifier along the compilation pipeline 2023-04-14 15:01:18 +02:00
Quentin Bourgerie
7d1c43bc47 feat(compiler/multi-parameters): Create a pass to apply the multi-parameter circuit solution of the optimize 2023-04-14 15:01:18 +02:00
Quentin Bourgerie
f0ca5aa427 feat(optimizer): Add a dump function to the CircuitSolution for debugging 2023-04-14 15:01:18 +02:00
Quentin Bourgerie
53b68a215b refactor(optimizer-cpp): Move CircuitSolution to a namespace en remove unecessary Box in optmize_multi 2023-04-14 15:01:18 +02:00
aPere3
cacffadbd2 feat(compiler): add support for multikey
This commit brings support for multiple secret keys in the TFHE
dialect. In particular, a parameterized `TFHE` circuit can now be
given as input, with any combination of (semantically valid) of
ks/bs/woppbs mixing different secret keys, and compiled down to a
valid executable function, with server keys properly looked up.

Secret keys are now stateful objects which can be:
-> none/unparameterized (syntax `sk?`): The keys are in state after
   the lowering from the `FHE` dialect.
-> parameterized (syntax `sk<identifier, polysize, dimension>`): The
   keys were parameterized, either by user or by the optimizer. The
   `identifier` field can be used to disambiguate two keys with same
   `polysize` and `dimension`.
-> normalized (syntax `sk[index]<polysize, dimension>`): The keys were
   attached to their index in the list of keys in the runtime context.

The _normalization_ of key indices also acts on the ksk, bsk and pksk,
which are given indices in the same spirit now.

Finally, in order to allow parameterized `TFHE` circuit to be given
as input and compiled down to executable functions, we added a way to
pass the encodings that are used to encode/decode the circuit
inputs/outputs. In the case of a compilation from the `FHE` dialect,
those informations are automatically extracted from the higher level
informations available in this dialect.
2023-04-14 15:01:18 +02:00
aquint-zama
823ea618af chore(common): fix README code snippet 2023-04-14 10:44:10 +02:00
aquint-zama
0372cf91e7 chore(common): add deprecation warning in README 2023-04-14 09:28:11 +02:00
aquint-zama
8c4912275c chore(frontend/python): update kvdb tutorial 2023-04-14 09:28:11 +02:00
aquint-zama
c7689b6c78 chore(common): fix remaining numpy links 2023-04-14 09:28:11 +02:00
Mayeul@Zama
56d2d3e40d chore(tools): add Makefile generated tests to .gitignore 2023-04-13 11:10:48 +02:00
Mayeul@Zama
84a3dd7a8d chore(backend-cpu): use zig build 2023-04-13 11:09:54 +02:00
Mayeul@Zama
53fa78cfbd chore(backend-cpu): simplify import in zig tests 2023-04-13 11:09:54 +02:00
rudy
25d5157f42 docs(optimizer): README.md, bad link 2023-04-13 09:49:00 +02:00
Umut
dbe9217937 chore(frontend-python): use top level readme in PyPI 2023-04-12 14:16:48 +02:00
youben11
882f411a63 chore(ci/compiler): move macos_x86 tests to aws 2023-04-12 11:44:15 +01:00
Ben
cb19989fe1 chore(tools): remove old files v1.0.0 2023-04-12 12:03:01 +02:00
Mayeul@Zama
a211470dd4 chore(backend-cpu): use stable lints in the CI 2023-04-12 12:00:24 +02:00
rudy
a5c6c042dd docs(optimizer): concrete-optimizer README uses v0-parameters README 2023-04-12 11:58:06 +02:00
Jeremy Shulman
cc276dee73 chore(frontend/python): doc fixes
GITBOOK-1
2023-04-12 11:51:50 +02:00
Ayoub Benaissa
767a4137d5 fix(ci/release): config openblas for macos env 2023-04-12 08:54:45 +01:00
Jeremy Zaccherini
4278bc655d docs(common): update README 2023-04-12 07:58:42 +02:00
Umut
307d6997e9 chore(frontend-python): use rounding in some flanky tests around floats 2023-04-12 07:55:33 +02:00
Umut
02e655748f test(frontend-python): add crt deployment test 2023-04-12 07:55:33 +02:00
Umut
14aa92c511 fix(compiler): correctly determine dimensions during (de)serialization of public args 2023-04-12 07:55:33 +02:00
Quentin Bourgerie
6f06757218 chore(ci): Remove pre conditions for releasing since there are some flaky test 2023-04-12 07:51:49 +02:00
Quentin Bourgerie
bcae1ebd1e chore(backend-cuda/ci): Use slab to run tests 2023-04-11 16:35:56 +02:00
youben11
3e0d959b12 chore(common): update repo name 2023-04-11 16:35:42 +02:00
aquint-zama
ec5cd7d984 docs(common): update README 2023-04-11 14:55:57 +02:00
Mayeul@Zama
df3a21fbd3 docs(optimizer): add readme 2023-04-11 14:55:57 +02:00
Mayeul@Zama
e3c5eee6fe docs(backend-cpu): add readme 2023-04-11 14:55:57 +02:00
Umut
673b02473f feat(frontend/python): explicit key management 2023-04-11 14:55:57 +02:00
youben11
22a2407b60 chore(ci): rename secret 2023-04-11 12:26:10 +01:00
aquint-zama
fdf6f41a89 docs(frontend/python): overhaul python frontend docs 2023-04-11 10:15:42 +02:00
rudy
8a672a0c59 feat(optimizer): check dag inputs index during dag correctness check 2023-04-11 09:16:25 +02:00
Umut
efa866f069 chore(frontend/python): use smaller global p error for tests to avoid random ci failures 2023-04-07 19:42:57 +02:00
Umut
0edfe59e18 refactor(frontend/python): re-write MLIR conversion 2023-04-07 19:42:57 +02:00
Umut
b73d465f1d fix(compiler): implement MANP calculation for FHELinalg.to_(un)signed 2023-04-07 19:42:57 +02:00