Commit Graph

520 Commits

Author SHA1 Message Date
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
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
Antoniu Pop
7bac6cb8b9 fix(compiler): [GPU runtime] remove now unnecessary assert restrictions on multiple keys in KS/BS operations for GPU. 2024-07-14 07:27:58 +01:00
Antoniu Pop
f39df55f60 fix(compiler): [GPU runtime] when GPU offload is not available set number of devices to 0 to avoid conflicts. 2024-07-13 19:29:48 +01:00
youben11
8cf8d99aea fix(compiler): move the use of conflicting symbols to the runtime lib
https://github.com/zama-ai/concrete-internal/issues/689
2024-07-05 09:12:29 +02:00
James Marsh
d9c21df157 chore(compiler): Bump version of tfhe-rs and rust compiler and fixed build issues 2024-07-04 17:22:34 +02:00
Alexandre Péré
e5a54ef71d fix(compiler): fix racing the test directories on mac 2024-06-25 16:25:30 +02:00
Antoniu Pop
2f17089eda feat(frontend): add python bindings for functions to check whether the compiler is GPU enabled and whether a GPU is available on the system. 2024-06-24 11:50:56 +01:00
Antoniu Pop
cc9229b5c7 fix(compiler): [GPU backend] add sanity checks when the emitGPUOps option is selected to ensure that the compiler/runtime have GPU capability and that at least one device is available to run on. 2024-06-24 11:50:56 +01:00
Antoniu Pop
f93611e5e1 fix(compiler): [DFR] initialize work function registry and runtime context manager pointers outside of constructors. 2024-06-21 13:36:47 +01:00
Antoniu Pop
1879f9c1e0 fix(compiler): [distributed] remove remote node main cancellation and work function registration. As JIT execution is now deprecated, load work functions from compiled library instead. 2024-06-21 13:36:47 +01:00
Antoniu Pop
50c5d7ff3c test(compiler): remove deprecated dataflow/distributed tests and CI build and test targets. 2024-06-21 13:36:47 +01:00
Antoniu Pop
96ef5cd099 fix(compiler): propagate work function attribute marker during TFHE circuit parametrization rewrite. 2024-06-21 13:36:47 +01:00
Andi Drebes
fe20cda302 chore(compiler): Bump MLIR fork to version including extended canonicalization of tensor.insert_slice
Also, invoke the canonicalizer to include the new canonicalization
pattern after batching in order to eliminate unnecessary copies due to
redundant insertions completely overwriting empty tensors.
2024-06-20 06:34:48 +02:00
Andi Drebes
8a24d1c7b1 fix(compiler): Handle tracing.trace_ciphertext operations in SimulateTFHEPass
The test
`end_to_end_trace.simulate1.trace_ciphertext_without_attributes_16bits.0`
generates `Tracing.trace_ciphertext` operations, which are not handled
by `SimulateTFHEPass`, resulting in a conversion error.

This change causes `Tracing.trace_ciphertext` operations to be
converted into appropriate `Tracing.trace_plaintext` operations.
2024-06-20 06:34:48 +02:00
rudy
f299adf461 fix(optimizer): sync with linting update, dead code and deprecated constants 2024-06-18 17:59:36 +02:00
Alexandre Péré
13253d18f4 fix(frontend): add missing composition serialization 2024-06-18 10:42:00 +02:00
youben11
bce7fe30ba fix(ci): build compiler image with cuda11.8
previous version was not working properly (too recent). So we switched
to 11.8 and thus downgraded to gcc11. The reason for using ?= in the
Makefile is to default to gcc11 in the docker image, as those variables
are set in the env.
2024-06-13 13:41:11 +01:00
Umut
81b04a3562 fix(compiler): use maxpool strides properly when lowering to linalg 2024-06-11 18:32:02 +03:00
Alexandre Péré
5185940807 feat(frontend): add support for wires to concrete-python 2024-06-11 13:23:03 +02:00
Bourgerie Quentin
db2c7550f5 fix(compiler): Allow uncompressed ciphertext in compressed gate to fix composition + compression 2024-06-04 16:12:18 +02:00
Antoniu Pop
0a1934c2ee fix(compiler): fix input parameter deserialization where total data input overflows 32bit accumulator. 2024-05-30 08:11:29 +01:00
Umut
c677f83af7 feat(frontend-python): dynamic indexing 2024-05-29 18:21:46 +03:00
Alexandre Péré
15816354aa feat(optimizer): add support for circuits and composition rules 2024-05-28 09:10:04 +02:00
youben11
974830e40d fix(compiler): control overflow detection for LUT via flag 2024-05-28 07:28:45 +01:00
aquint-zama
08a1871252 chore(compiler): update black dev dependency 2024-05-24 09:48:15 +02:00
youben11
6637b659db feat(compiler/frontend): add flag to enable/disable overflow detection
in simulation
2024-05-24 07:52:03 +01:00