Commit Graph

2857 Commits

Author SHA1 Message Date
Umut
8935735c2b feat(frontend-python): support rounded table lookups 2023-04-21 17:38:05 +02:00
Umut
455771e3ee chore(frontend-python): remove deprecated operation color mapping constant 2023-04-21 17:38:05 +02:00
Umut
7ce6f962e0 feat(frontend-python): add show assigned bit widths option to graph formatting 2023-04-21 17:38:05 +02:00
Pedro Alves
efd40f9904 chore(ci): fix the cost for a p3.2xlarge instance 2023-04-21 13:38:58 +02:00
Agnes Leroy
8fc1d043dc bench(backend-gpu): parse throughput column in bench json 2023-04-21 13:38:58 +02:00
Pedro Alves
6d2bf674fe feat(backend-gpu): add a new column to the benchmark tool related to the throughput 2023-04-21 13:38:58 +02:00
Mayeul@Zama
2800f74fb8 chore(compiler): clean up .gitignore 2023-04-20 15:11:38 +02:00
Mayeul@Zama
8033c934f3 chore(compiler): remove old makefile targets 2023-04-20 15:11:38 +02:00
Quentin Bourgerie
dfa0c8b202 feat(compiler): Add dag-multi benchmark to the run-cpu-benchmark target 2023-04-20 09:46:24 +02:00
Quentin Bourgerie
ef6fa86603 fix(compiler/bench): Fixing round end to end yaml description generation with shapes arguments 2023-04-20 09:46:24 +02:00
Quentin Bourgerie
af79774ae0 fix(compiler/tests/bench): Add optimizer strategy to the name of benchs and tests 2023-04-20 09:46:24 +02:00
Pedro Alves
681e3081e3 docs(backend-gpu): improve concrete-cuda docs regarding tests and benchmarks. 2023-04-18 08:47:44 -03:00
aPere3
50255cc908 fix(compiler): propagates oid when simplifying fhelinalg zero sums 2023-04-18 13:36:15 +02:00
aPere3
85c29c2e39 chore(compiler): move end-to-end linalg tests to fixtures 2023-04-18 13:36:15 +02:00
Mayeul@Zama
315c1a08e1 fix(backend-cpu): fix Security framework linking in tests 2023-04-18 09:54:42 +02:00
Mayeul@Zama
348fe028cf feat(backend-cpu): use Apple secure enclave seeder on M1 2023-04-17 18:13:18 +02:00
Umut
fa0e246613 feat(frontend-python): support using booleans with LookupTable 2023-04-17 14:11:41 +02:00
Umut
93991dd082 docs(frontend-python): fix formatting of the warning on univariate documentation 2023-04-17 13:41:59 +02:00
Umut
d1aeae0e56 docs(frontend-python): improve the documentation of univariate extension 2023-04-17 12:59:41 +02:00
Pedro Alves
fa226e232f feat(backend-gpu): refactor the Wop-PBS implementation to support a wider set of parameters 2023-04-17 09:45:17 +02:00
Quentin Bourgerie
065e4d7b40 test(compiler): Temporary remove batching check-test as it to invasive 2023-04-14 15:01:18 +02:00
aPere3
141efc8db2 bench(compiler): Add e2e benchmark for rounded PBS 2023-04-14 15:01:18 +02:00
Quentin Bourgerie
0e59f66a64 fix(compiler): FHE.to_bool and FHE.from_bool is a no op and not reduce the noise to the base 2023-04-14 15:01:18 +02:00
Quentin Bourgerie
edbdcdd7ec fix(compiler/test): Fixing naming in end_to_end tests 2023-04-14 15:01:18 +02:00
Quentin Bourgerie
3ada182c22 test(compiler): Enable dag-multi tests on all yaml tests 2023-04-14 15:01:18 +02:00
rudy
311ac8ce99 feat(compiler,ci): parallel tests 2023-04-14 15:01:18 +02:00
Quentin Bourgerie
944f9f6fc2 fix(compiler/benchmark): Remove always optimizer display 2023-04-14 15:01:18 +02:00
rudy
9c3c72a176 fix(optimizer): multi, more than 2 partitions, optimize_macro use optimized fks instead of lower bound 2023-04-14 15:01:18 +02:00
rudy
dd34ef120b fix(optimizer): multi, more than 2 partitions, some fks was not copied back 2023-04-14 15:01:18 +02:00
aPere3
0ba154fca8 test(compiler): add multi precision tests 2023-04-14 15:01:18 +02:00
Quentin Bourgerie
955dea6fcd feat(compiler/tests): Add verbose options to end_to_end_test 2023-04-14 15:01:18 +02:00
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