Antoniu Pop
3f9f228a23
feat(compiler): add runtime support for batched operations in SDFG/GPU.
2023-06-12 22:51:30 +01:00
Antoniu Pop
60412f7f61
feat(compiler): add SDFG op generation for batched operations.
2023-06-12 22:51:30 +01:00
Antoniu Pop
3f230957cb
feat(compiler): add batched operations for all levelled ops.
2023-06-12 22:51:30 +01:00
Antoniu Pop
799e64e8ab
feat(compiler): add task creation using vectors of futures as inputs and outputs.
2023-06-12 22:51:30 +01:00
Andi Drebes
d94993ede2
fix(compiler): Replace in-place updated with conversion patterns when lowering TFHE to Concrete
...
The current scheme with in-place updates of the types of values may
result in operations recognized as legal and thus preventing them from
being converted when the operations producing their operands have been
converted earlier, as their types have been updated and legality is
solely based on types.
For example, the conversion pattern for an `tensor.insert_slice`
operation working on tensors of encrypted values may not trigger if
the operations producing its operands have been converted, leaving the
operation with updated operand types with the extra dimension added by
the type conversion from TFHE to Concrete, but with unmodified sizes,
strides and offsets, not taking into account the extra dimension. This
causes the verifier of the affected operation to fail and the
compilation to abort.
By using op conversion patterns, the original types of each operation
are preserved during the actual rewrite, correctly triggering all
conversion patterns based on the legality of data types.
2023-06-12 22:51:30 +01:00
Umut
3ec17a74b6
feat(frontend-python): support python 3.11
2023-06-12 14:34:23 +02:00
Umut
0845921f3a
refactor(compiler-bindings): rename create to new in python bindings
2023-06-09 17:41:41 +02:00
youben11
9c077852bb
feat(compiler): load lib compilation result from directory
2023-06-09 14:30:46 +01:00
Umut
27d081e255
feat(compiler/bindings): create bindings for value management
2023-06-09 13:01:27 +02:00
Bourgerie Quentin
f7f94a1663
feat(compiler/client-lib): Implement ValueExporter to allows partial encryption
2023-06-09 13:01:27 +02:00
Ayoub Benaissa
a689dba8d7
fix(compiler/rust): fix const declaration of target-specific static libs
...
for aarch64
2023-06-07 12:42:50 +01:00
youben11
c0e9f94810
fix(compiler): fix linking of the rust bindings
2023-06-05 17:48:01 +01:00
youben11
aae05e60c6
feat(compiler): copy cpp optim lib into output lib dir
...
this makes sure it will be installed as part of the compiler, as needed
currently by the rust bindings
2023-06-05 17:48:01 +01:00
Andi Drebes
83c1654768
fix(compiler): Move operations in scf.for reinstantiation pattern before replacement
...
The reinstantianting rewrite pattern for `scf.for` operations,
`TypeConvertingReinstantiationPattern<scf::ForOp, false>`, calls
`mlir::ConversionPatternRewriter::replaceOpWithNewOp()` before moving
the operations of the original loop to the newly created loop. Since
`replaceOpWithNewOp()` indirectly marks all operations of the old loop
as ignored for dialect conversion, the dialect converter never
descends recursively into the newly created loop.
This causes operations that are illegal to be preserved, which results
in illegal IR after dialect conversion.
This commit splits the replacement into three steps:
1. Creation of the new loop via
mlir::ConversionPatternRewriter::create()`
2. Moving operations from the old loop to the newly created one
3. Replacement of the original loop with the results of the new one
via `mlir::ConversionPatternRewriter::replaceOp()`
This causes the operations of the loops not to be ignored and fixes
dialect conversion.
2023-05-30 16:56:39 +02:00
rudy
07d97f266d
feat(frontend-python): display progress during fhe execution
2023-05-26 15:56:23 +02:00
Bourgerie Quentin
f487432207
fix(compiler): fold mul and matmul by zero to zero
...
That will close https://github.com/zama-ai/concrete-internal/issues/297 also for dag-multi optimization
2023-05-25 03:48:33 -04:00
Antoniu Pop
900018c44e
fix(compiler): increase the maximum number of DFR task inputs to 50. Split generated switches in separate files.
2023-05-24 09:56:34 +02:00
Quentin Bourgerie
caee0bae66
fix(compiler): Workaround fallback to Strategy::V0 when solving with Strategy::DAG_MONO
...
close https://github.com/zama-ai/concrete-internal/issues/297
2023-05-23 04:00:56 -04:00
Quentin Bourgerie
0bdb85b67d
refactor(compiler/clientlib): Remove the building of the calling convention in the EncryptedArguments and test serialization in end_to_end_tests
2023-05-22 16:21:33 -04:00
rudy
b3ec478de9
fix(optimizer): optimize partition in reverse order
...
note: it was initially the case, but it was simplified and we didn't see shortcomings on tests.
2023-05-22 18:22:46 +02:00
Quentin Bourgerie
5df44ad6f8
chore(compiler/build): Remove script to get BUILD_DIR
2023-05-17 13:57:37 +02:00
Andrei Stoian
817ee6b637
feat(compiler): add matmul eint eint op
2023-05-15 11:36:47 +02:00
Mayeul@Zama
74feda147c
feat(optimizer): add brute-force optimizer
...
Co-authored-by: Samuel Tap <samuel.tap@zama.ai >
2023-05-12 11:12:47 +02:00
Quentin Bourgerie
d973f068f6
fix(compiler): Fixing extra conversion fixup when producer is not directly a TFHE operator
2023-05-12 09:47:35 +02:00
Quentin Bourgerie
0fa1b4ba1d
refactor(compiler): Cleanup TFHECircuitSolutionParametrization and make it less verbose in verbose mode
2023-05-12 09:47:35 +02:00
Quentin Bourgerie
462a23b622
fix(compiler/fhe): Allows noop FHE.round operators and fold it
2023-05-11 12:52:38 +02:00
Quentin Bourgerie
eff442438b
fix(compiler): Do not create dealloc on the bufferization pass as that place all dealloc at the end of the program
2023-05-10 09:18:47 +02:00
aPere3
0d2416fe80
chore(compiler): add code doc on encrypted mul
2023-05-05 12:43:41 +02:00
youben11
f6c70ac18e
chore(compiler): clean dialect licenses
...
set dialect licenses to apache 2.0 and keeps the rest following the main
license
2023-05-04 10:28:50 +01:00
Mayeul@Zama
ece5408887
fix(optimizer): fix clippy lint
2023-04-27 13:51:29 +02:00
Mayeul@Zama
3558ba5586
feat(backend-cpu): choose fastest aes implementation at runtime
2023-04-24 15:02:22 +02:00
Umut
41bf801ce1
feat(frontend-python): introduce parameter selection strategy configuration
2023-04-21 17:38:05 +02:00
Mayeul@Zama
2800f74fb8
chore(compiler): clean up .gitignore
2023-04-20 15:11:38 +02:00
Mayeul@Zama
8033c934f3
chore(compiler): remove old makefile targets
2023-04-20 15:11:38 +02:00
Quentin Bourgerie
dfa0c8b202
feat(compiler): Add dag-multi benchmark to the run-cpu-benchmark target
2023-04-20 09:46:24 +02:00
Quentin Bourgerie
ef6fa86603
fix(compiler/bench): Fixing round end to end yaml description generation with shapes arguments
2023-04-20 09:46:24 +02:00
Quentin Bourgerie
af79774ae0
fix(compiler/tests/bench): Add optimizer strategy to the name of benchs and tests
2023-04-20 09:46:24 +02:00
aPere3
50255cc908
fix(compiler): propagates oid when simplifying fhelinalg zero sums
2023-04-18 13:36:15 +02:00
aPere3
85c29c2e39
chore(compiler): move end-to-end linalg tests to fixtures
2023-04-18 13:36:15 +02:00
Quentin Bourgerie
065e4d7b40
test(compiler): Temporary remove batching check-test as it to invasive
2023-04-14 15:01:18 +02:00
aPere3
141efc8db2
bench(compiler): Add e2e benchmark for rounded PBS
2023-04-14 15:01:18 +02:00
Quentin Bourgerie
0e59f66a64
fix(compiler): FHE.to_bool and FHE.from_bool is a no op and not reduce the noise to the base
2023-04-14 15:01:18 +02:00
Quentin Bourgerie
edbdcdd7ec
fix(compiler/test): Fixing naming in end_to_end tests
2023-04-14 15:01:18 +02:00
Quentin Bourgerie
3ada182c22
test(compiler): Enable dag-multi tests on all yaml tests
2023-04-14 15:01:18 +02:00
rudy
311ac8ce99
feat(compiler,ci): parallel tests
2023-04-14 15:01:18 +02:00
Quentin Bourgerie
944f9f6fc2
fix(compiler/benchmark): Remove always optimizer display
2023-04-14 15:01:18 +02:00
rudy
9c3c72a176
fix(optimizer): multi, more than 2 partitions, optimize_macro use optimized fks instead of lower bound
2023-04-14 15:01:18 +02:00
rudy
dd34ef120b
fix(optimizer): multi, more than 2 partitions, some fks was not copied back
2023-04-14 15:01:18 +02:00
aPere3
0ba154fca8
test(compiler): add multi precision tests
2023-04-14 15:01:18 +02:00
Quentin Bourgerie
955dea6fcd
feat(compiler/tests): Add verbose options to end_to_end_test
2023-04-14 15:01:18 +02:00