youben11
4f2b44c9d8
feat(compiler): support compilation of CRT in simulation
2023-09-28 09:29:48 +01:00
rudy
c84372ec1f
feat(optimizer): multi-parameters, direct variance and cost operation bound
2023-09-26 15:01:10 +02:00
rudy
7e6ce03b09
fix(optimizer): multi-parameters, DEBUG, display reason for lower bound
2023-09-26 15:00:29 +02:00
rudy
d64c9b0f25
fix(optimizer): multi-parameters, shorter_dump for the compiler --display-optimizer-choice
2023-09-25 15:55:22 +02:00
rudy
3cd26192bc
fix(optimizer): incorrect broadcast shape
2023-09-25 15:53:19 +02:00
rudy
1c0a70f911
fix(compiler): conversion to optimizer dag, bad dot before signed lut
...
this has no effect apart making the shape incorrect
2023-09-25 15:53:19 +02:00
Umut
49dc0578f4
fix(compiler-bindings): don't crash on unknown location formats
2023-09-20 15:01:58 +02:00
rudy
90e62f551b
feat(optimizer): multi-params, key sharing
2023-09-19 12:13:25 +02:00
Umut
5d3e4bb2d6
chore(compiler): decrease p_error for a flanky test
2023-09-18 12:42:50 +02:00
Alexandre Péré
d28bf3767b
feat(compiler): adds support for dynamic luts in fhelinalg
2023-09-18 12:42:50 +02:00
Nikita Frolov
73a992f0a6
refactor(compiler): generalize noise calculation in FHE/FHELinalg
...
Instead of having one `getSQManp` implementation per op with a lot of repetition, the noise
calculation is now modular.
- Ops that implements`UnaryEint`/`BinaryInt`/`BinaryEint` interfaces share the operand noise
presence check.
- For many scalar ops no further calculation is needed. If it's not the case, an op can override
`sqMANP`.
- Integer operand types lookups are abstracted into `BinaryInt::operandIntType()`
- Finding largest operand value for a type is abstracted into `BinaryInt::operandMaxConstant`
- Noise calculation for matmul ops is simplified and it's now general enough to work for
`matmul_eint_int`, `matmul_int_eint` and `dot_eint_int` at once.
2023-09-12 14:51:53 +01:00
Bourgerie Quentin
d71201ff8c
fix(compiler): Use FHE.zero_tensor instead of bufferization.alloc_tensor as alloc_tensor explictly has a alloc semantic, so it cannot be eliminated by dce
2023-09-11 15:08:49 +02:00
rudy
f4099936e2
fix(compiler): ci, format_cpp.sh, bug + better message
2023-09-11 14:19:08 +02:00
aPere3
1e726a50ed
feat(compiler): add support for dynamic luts in compiler.
2023-09-11 10:29:59 +02:00
Alexandre Péré
083ab1103f
chore(compiler): moves EncryptMulToDoubleTLU includes
2023-09-11 10:29:59 +02:00
aPere3
b58821b1d1
chore(compiler): refactor e2e tlu tests to use dynamic lut.
2023-09-11 10:29:59 +02:00
rudy
229bbc2327
fix(compiler): do not optimize llvm twice
2023-09-08 15:26:24 +02:00
rudy
74c4a7eae5
fix(compiler): check minimal lwe size
2023-09-08 14:26:32 +02:00
rudy
dc0a3d8a2e
feat(optimizer): levelled circuit, no power of two constraint
2023-09-08 14:26:32 +02:00
rudy
be77fb26b8
feat(compiler): bench, cifar-16
2023-09-08 10:03:42 +02:00
rudy
4907577b1c
feat(compiler): bench, llm, big mat mul
2023-09-08 10:03:42 +02:00
rudy
a28a7bf397
feat(compiler): bench, activate levelled ops
2023-09-08 10:03:42 +02:00
rudy
4244ae3b41
fix(compiler): explicit global_p_error disable high error warning
2023-09-07 09:20:37 +02:00
youben11
41e1fdf1f8
refactor(frontend): change location format
2023-09-04 09:22:28 +01:00
youben11
530bacb2e3
refactor(compiler): clean statistic passes
2023-09-04 09:22:28 +01:00
youben11
4e8b9a199c
feat(compiler): allow forcing encoding from python
2023-09-01 10:29:08 +01:00
youben11
cba3847c92
feat(compiler): setting v0 parameters from py bindings
2023-09-01 10:29:08 +01:00
youben11
9e8c44ed00
feat(compiler/python): expose memory usage in bindings
2023-08-29 15:47:25 +01:00
youben11
54089186ae
refactor(compiler): reorganize passes and add memory usage pass
2023-08-29 15:47:25 +01:00
youben11
d88b2c87ac
feat(compiler): compute memory usage per location
2023-08-29 15:47:25 +01:00
rudy
7782f4e967
fix(optimizer): woppbs, cost model, cmux tree size x2
2023-08-28 14:47:54 +02:00
Ayoub Benaissa
c4686c3631
fix(compiler): lower fhe.zero to either scalar or tensor variant based on encoding
...
When using crt encoding, some fhe.zero op results will be converted to tensors (crt encoded eint), so should be converted to tfhe.zero_tensor operations instead of tfhe.zero
2023-08-11 18:23:29 +01:00
Bourgerie Quentin
245836b8ba
fix(compiler): Fix conv2d with bias equals to zero in multi parameters
...
The zero bias was folded and lead to empty loops, i.e. loops with copy only and make the TFHE parametrization fail
2023-08-08 11:01:29 +02:00
Umut
9a5b08938e
feat(compiler): support multi precision encrypted multiplications
2023-08-04 13:17:14 +02:00
rudy
2c348f6a3d
chore(optimizer): update for nightly rust
2023-08-02 14:14:58 +02:00
Bourgerie Quentin
8e8b2dd8ed
fix(compiler/tests): Fixing the generation of dot/matmul signed tests
2023-08-01 19:03:57 +02:00
Bourgerie Quentin
bd4540102c
fix(compiler/multi-parameters): Fixing encrypted dot and encrypted matmul with multi-parameters
2023-08-01 19:03:57 +02:00
Bourgerie Quentin
ea65637796
fix(compiler/tests): Fixing some skipped tests laucnhed with gtest parallel
...
The gtest-parallel tools first list test names then launch in parallel the end_to_end_test tool with the gtest_filter=<test_name>,
so if in the test_name a - appears it skip it due the gtest filtering that treat the string after - as an exlude pattern
2023-08-01 19:03:57 +02:00
Umut
ade83d5335
feat(compiler): add more detailed statistics
2023-08-01 18:40:08 +02:00
rudy
8ff9158424
fix(optimizer): multi-parameters, levelled only circuit
2023-08-01 17:01:30 +02:00
youben11
f6599a91c6
refactor(compiler): add func to populate RTOps type conversion
2023-07-31 16:57:53 +01:00
Andi Drebes
66d9c6eee4
fix(compiler): Do not print type mnenomic in custom printers for RT types
...
Printing the mnenomic in the custom printers for RT types leads to a
repetition, since the mnenomic is already printed by the
infrastructure invoking the custom printer (e.g., instead of
RT.future<...>, the printed type is `RT.futurefuture<...>`).
This commit removes the mnenomics from the custom printers and thus
causes them to emit the correct textual representation of types.
2023-07-31 14:09:33 +02:00
rudy
019d10e0bf
fix(compiler): main, detection for v0 + global p_error
2023-07-31 12:24:57 +02:00
youben11
761bc5f62d
feat(compiler/python): support enabling verbose/debug
2023-07-26 18:22:20 +01:00
Umut
79b38a72ec
feat(compiler): provide circuit statistics
2023-07-26 11:08:15 +02:00
Umut
d1b004c87d
fix(compiler): move simulation before batching
2023-07-26 11:08:15 +02:00
rudy
885d25424d
fix(compiler): revert Workaround fallback to Strategy::V0 when solving with Strategy::DAG_MONO
...
This reverts commit caee0bae66 .
2023-07-24 18:07:59 +02:00
youben11
545bda979d
fix(compiler): use dyn sized tensors in CAPI func definitions
2023-07-21 16:53:32 +01:00
youben11
022b1879a1
feat(compiler): support compiling in-memory module
2023-07-21 14:14:55 +01:00
Ayoub Benaissa
67ca4e10b9
fix(compiler): add conversion of tensor.from_elements in simulation
2023-07-21 09:23:31 +01:00