Commit Graph

216 Commits

Author SHA1 Message Date
aquint-zama
25754a656a docs(common): add FHE dialects autogenerated docs 2023-07-13 14:33:54 +02:00
aquint-zama
9928c0dbd9 docs(compiler): Generate dialect docs for the Tracing Dialect 2023-07-13 14:33:54 +02:00
aquint-zama
60817835db chore(compiler): typos 2023-07-13 14:33:54 +02:00
youben11
2f8d877de8 docs(compiler): calling from other lang (rust) 2023-07-13 14:33:54 +02:00
Andi Drebes
cc6f86957c docs(compiler): Generate dialect docs for the RT Dialect 2023-07-13 14:33:54 +02:00
rudy
65d4a62cfd fix(optimizer): cargo +nightly clippy 2023-07-12 10:28:12 +02:00
rudy
d9fc01ca15 fix(optimizer): cargo +nightly fmt 2023-07-12 10:28:12 +02:00
jadkhatib
9b7aca4acf fix(optimizer): updating optimize_1_fks_and_all_compatible_ks function in order to return the best solution 2023-07-12 10:28:12 +02:00
jadkhatib
4d189d6795 fix(optimizer): best complexity was not updated in the function optimize_1_fks_and_all_compatible_ks 2023-07-12 10:28:12 +02:00
rudy
c7655c354e fix(optimizer): detect lower bound solution due to macro parameter changes 2023-07-12 10:28:12 +02:00
rudy
6febdee3f8 fix(optimizer): multi-partition, test showing the issue on more than 2 partitions 2023-07-12 10:28:12 +02:00
Ayoub Benaissa
b3d8c5b195 docs(compiler): add prerequisites to build from source 2023-07-11 15:27:36 +01:00
Bourgerie Quentin
1b0106302b fix(optimizer/backend-cpu): Fix Cargo.lock to avoid flaky dependencies 2023-06-30 16:08:43 +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
3ad37522e5 test(compiler): test compile/run in 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
09b84e0373 refactor(compiler/clientlib): add ValueDecrypter Interface 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
Bourgerie Quentin
29f1ce753b fix(optimizer): new version of generated files
This reverts commit 9b345e51ed.
2023-06-27 11:06:32 +02:00
Bourgerie Quentin
6a49fc3a1d test(compiler): Temporary disable matmul_eint_eint on 16bits integer 2023-06-26 22:49:56 +02:00
Andi Drebes
934e25de0d test(compiler): Let entire Makefile rules for tests / benchmarks fail if subcommand fails
The commands for the Makefile rules `run-end-to-end-tests` and
`run-cpu-benchmarks` are generated using the `$(foreach)` builtin
function with a trailing `;` for each subcommand. The result is a
sequence of commands separated by `;`, which only fails if the last
command fails. This causes any code for which the last test /
benchmark passes, but for which any of the preceding subcommands fails
to pass the CI and thus to leave failing tests undiscovered.

This commit adds a trailing `&& exit $$?` to each command, such that
the entire sequence fails if a single command fails.
2023-06-26 22:49:56 +02:00
Quentin Bourgerie
9b345e51ed Revert "fix(optimizer): new version of generated files"
This reverts commit db3ecb1402.
2023-06-26 17:06:02 +02:00
Quentin Bourgerie
41a911603b Revert "fix(optimizer): best complexity was not updated in the function optimize_1_fks_and_all_compatible_ks"
This reverts commit 48e8842ef0.
2023-06-26 17:06:02 +02:00
Quentin Bourgerie
7147fb8f35 Revert "fix(optimizer): updating optimize_1_fks_and_all_compatible_ks function in odrer to return the best solution"
This reverts commit aff3d91278.
2023-06-26 17:06:02 +02:00
Umut
45e69798aa feat(frontend-python): support ctrl+c during compilation and key generation 2023-06-26 12:37:52 +02:00
jadkhatib
aff3d91278 fix(optimizer): updating optimize_1_fks_and_all_compatible_ks function in odrer to return the best solution 2023-06-23 18:42:58 +02:00
jadkhatib
48e8842ef0 fix(optimizer): best complexity was not updated in the function optimize_1_fks_and_all_compatible_ks 2023-06-23 18:42:58 +02:00
jadkhatib
db3ecb1402 fix(optimizer): new version of generated files 2023-06-23 18:42:58 +02:00
Bourgerie Quentin
ff02adea89 test(compiler): Add bug report 376 2023-06-23 14:34:23 +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
Bourgerie Quentin
5a80e22cf3 fix(compiler): Annotate FHELinalg as Pure for canonicalization 2023-06-23 14:34:23 +02:00
Bourgerie Quentin
d946f16345 test(compiler): Add a minimal test for catching crt dimension added to clear tensor input 2023-06-21 12:14:11 +01:00
Ayoub Benaissa
3bdebae1f6 fix(compiler): fix plaintext tensor shape when using crt
client parameter generation was removing last dimension of a tensor when using CRT including plaintext ones, while it should only be done for encrypted ones.
2023-06-21 12:14:11 +01:00
Bourgerie Quentin
b6da228dd4 fix(compiler): Add extra conversion keyswitch just after bootstrap
Rely on strong asumptions of the optimization (see comment)

close https://github.com/zama-ai/concrete-internal/issues/352
2023-06-21 08:53:36 +02:00
Antoniu Pop
9363c40753 fix(compiler): fix key serialization for distributed computing in DFR.
Key serialization for transfers between nodes in clusters was broken
since the changes introduced to separate keys from key parameters and
introduction of support for multi-key (ref
cacffadbd2).

This commit restores functionality for distributing keys to non-shared
memory nodes.
2023-06-19 09:54:21 +01:00
Mayeul@Zama
e360e938c9 feat(optimizer): add table u32, u128 2023-06-15 10:48:07 +02:00
Mayeul@Zama
2e94c21970 chore(optimizer): fix formatting 2023-06-15 10:48:07 +02:00
Mayeul@Zama
97b13e871c feat(optimizer): introduce fft precision 2023-06-15 10:48:07 +02:00
Mayeul@Zama
5659195dbc feat(optimizer): accept any ciphertext_modulus_log 2023-06-15 10:48:07 +02:00
Andi Drebes
549d2ded86 feat(compiler): Batching: Favor batching of all operands for binary TFHE ops
This changes the order of batching variants for binary TFHE
operations, such that batching of both operands is favored over
batching of a single operand.
2023-06-12 22:51:30 +01:00
Antoniu Pop
81eaaa7560 feat(compiler): add multi-gpu scheduler for batched ops. Scheduler splits op batches in chunks to fit GPU memory and balance load across GPUs. 2023-06-12 22:51:30 +01:00
Andi Drebes
38e14446d6 feat(compiler): Batching: Add pattern folding operations on tensors of constants
This adds a new pattern to the batching pass that folds operations on
tensors of constants into new tensors of constants. E.g.,

  %cst = arith.constant dense<...> : tensor<Nxi9>
  %res = scf.for %i = %c0 to %cN {
    %cst_i9 = tensor.extract %cst[%i]
    %cst_i64 = arith.extui %cst_i9 : i64
    ...
  }

becomes:

  %cst = arith.constant dense<...> : tensor<Nxi64>
  %res = scf.for %i = %c0 to %cN {
    %cst_i64 = tensor.extract %cst[%i]
    ...
  }

The pattern only works for static loops, indexes that are quasi-affine
expressions on single loop induction variables with a constant step
size across iterations and foldable operations that have a single
result.
2023-06-12 22:51:30 +01:00