Commit Graph

2724 Commits

Author SHA1 Message Date
Umut
d9313f350a test(frontend/python): use dataflow marker in appropriate tests 2023-03-27 16:21:33 +02:00
Umut
382282736e chore(frontend/python): add dataflow marker to pytest 2023-03-27 16:21:33 +02:00
Umut
ee6da15732 fix(frontend/python): disable dataflow parallelization by default 2023-03-27 16:21:33 +02:00
Umut
805f3702d7 chore(frontend/python): add concurrency control to test linux test workflow 2023-03-27 16:21:33 +02:00
Mayeul@Zama
0b86167310 chore(ci): be more strict on commit messages 2023-03-27 11:39:23 +02:00
Agnes Leroy
df5f1837fc test(compiler): add test for N = 16384 on GPU 2023-03-24 15:29:43 +01:00
Andi Drebes
d1781e0901 refactor(compiler): Remove unused header files from TensorOpsToLinalg.cpp 2023-03-24 11:06:51 +01:00
Andi Drebes
488877ac0b test(compiler): Add tests for batching of TFHE operations
Re-introduce the previously deleted batching tests for BConcrete as
tests for TFHE with the addition of a new test, checking that
non-batchable operands generated by pure operations are hoisted.
2023-03-24 11:06:51 +01:00
Andi Drebes
fa5c09a52b feat(compiler): Run batching pass after conversion to TFHE
With TFHE operations becoming batchable, the batching pass must now be
run after the conversion to TFHE,and TFHE parametrization, but before
any further lowering.
2023-03-24 11:06:51 +01:00
Andi Drebes
9cd238db82 refactor(compiler): Separate TFHE parametrization into its own pipeline stage 2023-03-24 11:06:51 +01:00
Andi Drebes
fdb4594a2b feat(compiler): Add lowering path for batched TFHE operations to Concrete 2023-03-24 11:06:51 +01:00
Andi Drebes
b495f9dd5c feat(compiler): Make TFHE.keyswitch_glwe and TFHE.bootstrap_glwe batchable 2023-03-24 11:06:51 +01:00
Andi Drebes
b24709a1ec feat(compiler): Batching: Hoist non-batchable operands produced by pure ops
The batching pass only creates a batched version of a batchable
operation if all of its non-batchable operands are defined out ouf the
outermost loop the iterating over the values of the batchable operand.

This change also allows for operations to be batched if the
non-batachable operands are generated by operations, which are pure
and thus hoistable out of the outermost loop.
2023-03-24 11:06:51 +01:00
Andi Drebes
3309615d7b fix(compiler): Batching: Bail out if batchable operand is not produced by an op
An early test for a batchable operation checks whether the batchable
operand is produced by a `tensor.extract` operation and bails out if
this is not the case. However, the use of `llvm::dyn_cast<T>()` directly
on the defining operation of the batchable operand causes an attempt
to cast a null value for an operand which is not produced by an
operation (e.g., block arguments).

Using `llvm::dyn_cast_or_null<T>()` fixes this issue.
2023-03-24 11:06:51 +01:00
Andi Drebes
a0e5628a88 refactor(compiler): Remove implementation of batching interface from all Concrete operations 2023-03-24 11:06:51 +01:00
Andi Drebes
dafb33414d refactor(compiler): Mark TFHE operations as side-effect free 2023-03-24 11:06:51 +01:00
Quentin Bourgerie
67e2518df9 chore(compiler): Build rust libraries with target-feature 2023-03-23 15:54:30 +01:00
youben11
d891ba2181 ci(compiler): enable minimal tests on PR (macos) 2023-03-22 18:55:26 +01:00
youben11
9e79c4750d test(compiler): disable exception tests on macos temporarily 2023-03-22 18:55:26 +01:00
youben11
568d0e2912 fix(compiler): use value in range of the i5 type
it's actually weird that the test was passing all this time, and only
failed since we tested on MacOS M1
2023-03-22 18:55:26 +01:00
youben11
2a81f2e333 chore(compiler): disable SDFG in SDFG tests for macos 2023-03-22 18:55:26 +01:00
youben11
529d96f564 fix(compiler): update mlir-c usage in rust bindings 2023-03-22 18:55:26 +01:00
tmontaigu
2cdf166b96 feat(rust): change build.rs to work on arm64 targets 2023-03-22 18:55:26 +01:00
youben11
afaaf70287 ci(compiler): run tests on M1 2023-03-22 18:55:26 +01:00
Mayeul@Zama
b1bd00c4e4 chore(CI): run compiler tests on backends c-api change 2023-03-22 17:29:51 +01:00
rudy
806d50ab7f fix|compiler: incorrect optimizer display for complexity 2023-03-22 17:16:40 +01:00
Agnes Leroy
573f4756fd fix(concrete_cuda): fix buffer size type in the scratches, int is not big enough 2023-03-22 15:55:15 +01:00
rudy
6556bee101 fix|compiler: MANP extract for v0 strategy is incorrect 2023-03-22 14:27:30 +01:00
Quentin Bourgerie
0921918c51 chore: Move lattice-estimator to third_party 2023-03-22 14:22:11 +01:00
Quentin Bourgerie
128734a682 chore: Final layout of the concrete project 2023-03-22 14:22:11 +01:00
Quentin Bourgerie
a1a955f5e2 chore(concrete-optimizer): Use the local concrete-cpu noise-model 2023-03-22 14:22:11 +01:00
Quentin Bourgerie
8349d7824e chore(concrete-cpu): Move concrete-cpu implementation 2023-03-22 14:22:11 +01:00
Quentin Bourgerie
c4bcaafd57 chore(parameter-curves): Fix linelint 2023-03-21 16:38:30 +01:00
Umut
850f98ab95 chore: remove concrete-python-tests-macos action 2023-03-21 16:26:19 +01:00
Umut
9570868210 chore: finalize concrete-python-tests-linux action 2023-03-21 16:26:19 +01:00
Samuel Tap
0210bc28c3 new crt basis
Co-authored-by: Jad Khatib <jadkhatib6@gmail.com>
2023-03-21 16:13:48 +01:00
Quentin Bourgerie
58ce784b9d chore(parameter-curves): Integrate parameter-curves in mono-repo 2023-03-21 16:06:53 +01:00
Quentin Bourgerie
8b56607066 chore(parameter-curves): Move to the mono-repo layout 2023-03-21 16:04:20 +01:00
Quentin Bourgerie
803c302e69 chore: Integrate concrete-cpu/noise-model to the mono repo 2023-03-21 15:08:43 +01:00
Quentin Bourgerie
b18148788d chore(concrete-cpu): Remove security curves from the concrete-cpu noise-model 2023-03-21 15:05:28 +01:00
Quentin Bourgerie
b7ba9c38e8 chore(): Move concrete-cpu noise model to the mono repo layout 2023-03-21 15:00:17 +01:00
Mayeul@Zama
0936cfccd2 chore(cpu): remove GgswLevelRow container 2023-03-21 14:37:08 +01:00
Mayeul@Zama
4ae3be5c4f chore(cpu): separate LevCt 2023-03-21 14:37:08 +01:00
Mayeul@Zama
8744e4f264 chore(cpu): remove GlweMask container 2023-03-21 14:37:08 +01:00
Mayeul@Zama
ec1e06b367 chore(cpu): introduce Polynomial container 2023-03-21 14:37:08 +01:00
Mayeul@Zama
78e2a6e1b3 chore(cpu): separate GlevCt 2023-03-21 14:37:08 +01:00
aPere3
a2b143f409 feat(concrete-compiler): add support for key type parameters and attributes 2023-03-21 13:13:25 +01:00
aPere3
5c1a15c514 chore(concrete-compiler): removes unnecessary precision parameter in bootstrap signature 2023-03-21 13:13:25 +01:00
Mayeul@Zama
d2bfa03104 chore(CI): use nightly rust 2023-03-21 13:12:06 +01:00
Mayeul@Zama
55c6dbd315 fix(cpu): fix avx512 2023-03-21 13:12:06 +01:00