youben11
e4835bd002
feat(compiler): support woppbs in simulation
2023-09-28 09:29:48 +01:00
youben11
4f2b44c9d8
feat(compiler): support compilation of CRT in simulation
2023-09-28 09:29:48 +01:00
rudy
d64c9b0f25
fix(optimizer): multi-parameters, shorter_dump for the compiler --display-optimizer-choice
2023-09-25 15:55:22 +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
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
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
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
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
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
Bourgerie Quentin
bd4540102c
fix(compiler/multi-parameters): Fixing encrypted dot and encrypted matmul with multi-parameters
2023-08-01 19:03:57 +02:00
Umut
ade83d5335
feat(compiler): add more detailed statistics
2023-08-01 18:40:08 +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
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
Antoniu Pop
5082cea110
fix(compiler): disable dataflow parallelization when the optimiser strategy is dag-multi. Currently the two don't work well together because dataflow task outlining obfuscates the code early on in the compilation pipeline.
2023-07-20 14:39:28 +01:00
youben11
2f8d877de8
docs(compiler): calling from other lang (rust)
2023-07-13 14:33:54 +02:00
Umut
6fdcb78158
fix(compiler-bindings): use manual function pointer type to avoid compilation error on macOS
2023-06-27 18:36:22 +02:00
youben11
648e868ffe
feat(compiler): support parallelization during simulation
2023-06-27 14:21:42 +01:00
youben11
27e1835f23
feat(compiler/python): expose simulation to python-bindings
2023-06-27 14:21:42 +01:00
youben11
eb116058e0
feat(compiler): support invoke on simulated circuits
2023-06-27 14:21:42 +01:00
youben11
32ad46f7c5
feat(compiler): disable runtimeCtx pass in simulation
2023-06-27 14:21:42 +01:00
youben11
5e848a6971
feat(compiler/clientlib): support simulation in enc-args
2023-06-27 14:21:42 +01:00
youben11
ad13602bf3
refactor(compiler/clientlib): add ValueExporter Interface
2023-06-27 14:21:42 +01:00
youben11
7b594c5ecd
feat(compiler): add simulation runtime
2023-06-27 14:21:42 +01:00
youben11
b8e462c1cc
feat(compiler): add option to compile in simulation mode
2023-06-27 14:21:42 +01:00
youben11
e58b46d86d
feat(compiler): add a pass to simulate TFHE ops
...
lowering is done to CAPI calls that implement simulation as well as
standard MLIR ops
2023-06-27 14:21:42 +01:00
Umut
c98b8f0241
fix(frontend-python): manually abort on ctrl+c
2023-06-27 15:11:21 +02:00
Umut
45e69798aa
feat(frontend-python): support ctrl+c during compilation and key generation
2023-06-26 12:37:52 +02:00
Bourgerie Quentin
5147ac8418
feat(compiler): Add canonicalization of FHE/FHELinalg to_signed to_unsigned ops
2023-06-23 14:34:23 +02:00