Commit Graph

547 Commits

Author SHA1 Message Date
Alexandre Péré
19bb2413e0 fix(optimizer): fix optimizer error link 2024-09-16 09:46:32 +02:00
Alexandre Péré
69d5a35c50 fix(compiler): make formatter happy 2024-09-11 16:02:08 +02:00
Alexandre Péré
e6f6a3f1e6 fix(compiler): fix test string in e2e tests 2024-09-11 16:02:08 +02:00
youben11
feac6e89d4 refactor(compiler): get fheint description from type instead of buffer
we were doing a deserialization previously to get the fheint
description, but we will now construct it from the type instead. It's
still possible for the user to get the description from the buffer and
use it for import (using the Compiler API).
2024-09-03 14:05:06 +01:00
youben11
8168d07541 refactor(compiler): compute fheuint buffer size in rust (more accurate) 2024-09-03 14:05:06 +01:00
youben11
159e8e296b feat(frontend/compiler): set correct value for noise and degree 2024-09-03 14:05:06 +01:00
youben11
cd0cf46130 feat(compiler/frontend): serialize a given secret key
This is useful for it to be used in TFHErs
2024-09-03 14:05:06 +01:00
youben11
b8912f61c3 feat(compiler): provide keyid and variance while importing
this was previously hardcoded
2024-09-03 14:05:06 +01:00
youben11
32cae8e3fe feat(compiler): get variance and keyid for a given input 2024-09-03 14:05:06 +01:00
youben11
f0d53225e2 feat(backend, compiler): convert TFHErs to Concrete ciphertext and back 2024-09-03 14:05:06 +01:00
youben11
05724edb4f fix(compiler): use initializer constructor 2024-09-03 14:05:06 +01:00
Alexandre Péré
26dd90311c chore(optimizer): enhance optimizer errors 2024-09-02 17:19:53 +02:00
Bourgerie Quentin
b2ced570fd perf(compiler): Do not instantiate csprng each time for woppbs simulation 2024-09-02 17:06:35 +02:00
Bourgerie Quentin
ce73239730 feat(compiler/clientlib): Allow decompression of seeded ciphertext before decryption 2024-08-23 17:42:23 +02:00
youben11
af4a735b0c refactor(compiler): plug with change_partition support of optimizer 2024-08-22 16:38:24 +01:00
youben11
33abefa5c2 feat(compiler): add partition attr to change partition to/from it 2024-08-22 16:38:24 +01:00
youben11
c42c016172 feat(compiler/frontend): change partition operation 2024-08-22 16:38:24 +01:00
rudy
040e152451 chore(optimizer): ref files for new security curves 2024-08-22 17:34:31 +02:00
rudy
bd6838e6da chore(optimizer): adjust tests for new security curves 2024-08-22 17:34:31 +02:00
Bourgerie Quentin
3188b50c0e chore(common): Merge remote-tracking branch 'origin/main' into backport_release/2.7.x 2024-08-22 14:28:32 +02:00
youben11
0a97006f64 fix(compiler): use checked_malloc for better error reporting 2024-08-22 10:15:27 +02:00
Alexandre Péré
971be1fee7 fix(optimizer): improve errors for unfeasible functions 2024-08-20 14:06:53 +02:00
rudy
b6f6d41ada fix(compiler): simulation, confusion between variance and std dev 2024-08-19 16:38:52 +02:00
rudy
7c0c1ef815 chore(compiler): simulation, simplify before fix 2024-08-19 16:38:52 +02:00
youben11
a9da40c1f5 chore(optimizer): revert 89ef8d344e
There was a reason for this hadcoded value. See https://github.com/zama-ai/concrete/actions/runs/10385798019/job/28755712025
2024-08-15 08:41:09 +01:00
Bourgerie Quentin
5a98041d13 chore(common): Merge branch 'main' into release/2.7.x 2024-08-13 14:12:19 +02:00
Ayoub Benaissa
89ef8d344e fix(optimizer): remove hardcoded processing unit 2024-08-13 13:51:34 +02:00
youben11
5e701eea6a test(optimizer): mix tfhers and low_precision partitions 2024-08-09 17:21:31 +01:00
youben11
901ce0419f refactor(optimizer): move external partition during change_part creation 2024-08-09 17:21:31 +01:00
youben11
72d5b7bbb4 feat(optimizer): constrain optimizer with external max_variance 2024-08-09 17:21:31 +01:00
youben11
a1398fda9f feat(optimizer): block macro parameters in external partitions
we block them by reducing the search space to a single set of parameters
which is provided by the external partition
2024-08-09 17:21:31 +01:00
youben11
67e18abd11 feat(optimizer): partition with external partitions 2024-08-09 17:21:31 +01:00
youben11
c3c0976214 feat(optimizer): add change_partition operator 2024-08-09 17:21:31 +01:00
Ayoub Benaissa
d89af27a68 docs(compiler): fix link 2024-08-08 12:31:31 +01:00
Ayoub Benaissa
9c226f1769 docs(compiler): add note for building CP wheel in the compiler 2024-08-08 12:31:31 +01:00
Alexandre Péré
941d78b1d1 feat(optimizer): improve errors for non-composable functions 2024-08-05 16:11:39 +02:00
rudy
89553858dd feat(frontend-python): release GIL on run, encrypt, decrypt 2024-08-02 11:35:08 +02:00
rudy
3adf658a97 fix(compiler): levelledOP conversion to dot like for optimizer
note: this cannot be done as before in the optimizer since the latter had more information.
here we assumed each input contribute equally to the resulting noise.

A better fix could be to provide the linear relation of inputs instead of manp and smanp.
2024-08-01 15:32:52 +02:00
Andi Drebes
9b034d9441 test(compiler): Ensure that ForLoopToParallelPass does not trigger for scf.for with parallel = false
This ensures that the regression fixed by
3cd3dff92a is not reintroduced, which
caused the compiler to abort in `ForLoopToParallelPass` for `scf.for`
loops with iteration arguments, even if these were marked with the
attribute `parallel` set to `false`.
2024-07-30 17:52:36 +02:00
Andi Drebes
3cd3dff92a fix(compiler): Convert scf.for to scf.parallel only if parallel attribute is true
The pattern converting `scf.for` operations to `scf.parallel`
operations from `lib/Transforms/ForLoopToParallel.cpp` contains an
assertion that ensures that the source operation does not have any
iteration arguments in order to keep the conversion as simple as
possible.

However, if the attribute `parallel` of the source operation is
`false`, the operation is replaced with an identical clone and the
conversion could be treated as a no-op.

This change modifies the pattern, such that it simply fails if
`parallel` is `false`, making the check for the absence of iteration
arguments unnecessary and avoiding unnecessary bailouts by the
compiler.
2024-07-29 15:52:02 +02:00
Antoniu Pop
4bb7c21739 fix(compiler): [GPU runtime] enable dependence re-split when dependence is used in multiple subgraphs. 2024-07-23 18:52:01 +01:00
Antoniu Pop
2d5d15f0b0 fix(compiler): [GPU runtime] prevent early deallocation of on-device data when multiple processes use the same input. 2024-07-23 18:52:01 +01:00
Antoniu Pop
cf32638264 fix(compiler): [GPU+DFR runtime] add sanity check to prevent both dataflow parallelization and GPU offload to be activated jointly as this is not yet supported. 2024-07-23 18:52:01 +01:00
Alexandre Péré
2aeec5c82a fix(optimizer): fix leveled noise propagation 2024-07-23 09:40:12 +02:00
Alexandre Péré
bd3f36101f fix(compiler): segfault in tests 2024-07-16 11:55:31 +02:00
Antoniu Pop
0bc933ab20 feat(compiler): [GPU runtime] add timing logs. 2024-07-14 07:27:58 +01:00
Antoniu Pop
2ffe60a108 feat(compiler): [GPU runtime] reduce copies in merge operations by merging SDFG batch outputs in place. 2024-07-14 07:27:58 +01:00
Antoniu Pop
c82cbf0b33 feat(compiler): add a pass to transfer ownership of data buffers to the SDFG runtime on Put operations. This allows to avoid an extra copy of the data for use in asynchronous operations. 2024-07-14 07:27:58 +01:00
Antoniu Pop
fe27cbb212 feat(compiler): Add counter and accumulator timers for time logging. Add environment variable CONCRETELANG_TIMING_ENABLED as prerequisite to activation of timing logs. 2024-07-14 07:27:58 +01:00
Antoniu Pop
71c29d0d02 fix(compiler): [GPU backend] restrict the direct lowering of operators to the GPU backend when already lowering through the SDFG dialect. Otherwise this forces GPU offload even for very fine granularity operations, bypassing SDFG and Batching. 2024-07-14 07:27:58 +01:00