Commit Graph

267 Commits

Author SHA1 Message Date
Quentin Bourgerie
9dd776533a cleanup(compiler): Remove useless concrete types, simplify print and parse, and remove BConcreteToBConcreteCAPI pass 2022-06-24 11:00:08 +02:00
Mayeul@Zama
928a44d243 chore(ci): enforce ending files with a newline 2022-06-16 17:04:25 +02:00
Andi Drebes
45577fb79e Rebase onto llvm-project f69328049e9e with local changes
This commit rebases the compiler onto commit f69328049e9e from
llvm-project.

Changes:

* Use of the one-shot bufferizer for improved memory management

* A new pass `OneShotBufferizeDPSWrapper` that converts functions
  returning tensors to destination-passing-style as required by the
  one-shot bufferizer

* A new pass `LinalgGenericOpWithTensorsToLoopsPass` that converts
  `linalg.generic` operations with value semantics to loop nests

* Rebase onto a fork of llvm-project at f69328049e9e with local
  modifications to enable bufferization of `linalg.generic` operations
  with value semantics

* Workaround for the absence of type propagation after type conversion
  via extra patterns in all dialect conversion passes

* Printer, parser and verifier definitions moved from inline
  declarations in ODS to the respective source files as required by
  upstream changes

* New tests for functions with a large number of inputs

* Increase the number of allowed task inputs as required by new tests

* Use upstream function `mlir_configure_python_dev_packages()` to
  locate Python development files for compatibility with various CMake
  versions

Co-authored-by: Quentin Bourgerie <quentin.bourgerie@zama.ai>
Co-authored-by: Ayoub Benaissa <ayoub.benaissa@zama.ai>
Co-authored-by: Antoniu Pop <antoniu.pop@zama.ai>
2022-06-14 14:35:25 +02:00
youben11
670af02112 fix: remove subinteint folder
it actually requires to negate the result which can't be done via
standard folder, so we remove it can cause erroneous computation
2022-06-14 10:00:01 +02:00
youben11
5636342097 feat: add option to enable/disable optimization 2022-06-01 14:35:12 +01:00
youben11
8d0f20390c feat: optimize concrete mul with constant values 2022-06-01 14:35:12 +01:00
youben11
8d04c1e4af feat: fold tensor ops with constant values
add/sub with constant tensors of 0s
mul with constant tensors of 1s
2022-05-30 08:35:14 +01:00
youben11
8aa6f3e809 feat: fold add/sub/mul with specific constant values
Remove add/sub with constant zero values
Remove mul with constant one values
2022-05-30 08:35:14 +01:00
Umut
b052157fae refactor: separate runtime context from public arguments 2022-05-30 10:19:14 +03:00
Quentin Bourgerie
fcad585546 test(compiler): Add test of MANP Analysis on operators on negative values and fixes test refs 2022-05-24 14:12:28 +02:00
Quentin Bourgerie
ae9a04cd56 fix(compiler): Use the absolute value when computing the square of a constant in MANP analysis
The computation of the norm2 should take care of the sign of the constant to compute the square of this constant.
2022-05-24 14:12:28 +02:00
youben11
5f1a539505 feat(python): get path to diff artifacts
- path to client parameters file
- path to shared library
2022-05-09 16:18:21 +01:00
youben11
211241fcb2 refactor: store compil artifacts under a single dir 2022-05-09 16:18:21 +01:00
rudy
1b70a38754 feat(optimizer): expose the p_error parameter
simplify the handling of options by relying more on CompilationOptions
2022-05-06 13:06:08 +02:00
rudy
b45e469a44 feat(ci): macos, fix keysetcache use 2022-05-02 17:20:22 +02:00
youben11
843dd0eb5b feat(python): seriliaze client parameters 2022-05-02 10:16:39 +02:00
rudy
923a1b58e1 feat(optimizer): plug online parameter estimation 2022-04-29 15:11:42 +02:00
youben11
e9345b3859 feat: serialize public result w/ python bindings 2022-04-22 15:53:26 +01:00
youben11
0a5881096c feat(python): serialize public arguments 2022-04-15 15:25:25 +01:00
youben11
8350d4abc4 chore: remove debug print 2022-04-15 15:25:25 +01:00
youben11
1b34388d6e tests: check error message when jit-exec DF on an unsupported runtime
- factorize parallel tests
- define fixture to know if parallel tests have been selected
2022-04-14 11:07:39 +01:00
Quentin Bourgerie
35d8489b9c fix(compiler/TFHE): Introduce bootstrap and keyswitch at the TFHE level 2022-04-12 09:37:56 +02:00
Antoniu Pop
b77865cdd6 tests: disable forking new processes for running python tests. 2022-04-11 15:05:22 +01:00
youben11
e6cb1f2073 tests: run parallel tests in separate processes
library compilation and execution failing the second time if not
2022-04-08 19:05:06 +01:00
youben11
7e535f33db tests(python): refactor/add/reduce tests
- We tests few things that aren't costly to tests like wrappers
- we reduce encrypted computation tests, as it's already done in cpp
  tests, while we add tests to cover supported types
2022-04-08 19:05:06 +01:00
youben11
0d043d0606 chore(tests): separate compiler out test from python
tests/python should include tests related to the python package
2022-04-08 19:05:06 +01:00
youben11
4ced7c567a fix: locate lib in current directory
not using ./ was causing dlopen not to found the lib
2022-04-06 08:43:44 +01:00
youben11
ec8004cd3a chore: configure parallel marker for pytest
avoid warning during tests
2022-04-04 12:48:48 +01:00
youben11
690b4f75c5 feat(python): support loop parallelization
Remove hard checks on parallelization support, we allow compilation
unconditionally of the support for parallel execution
2022-04-04 12:48:48 +01:00
youben11
78def04fe5 refactor: rename [jit|library]lambdasupport to [jit|library]support 2022-04-04 09:15:31 +01:00
youben11
edd10c1436 test: update tests to the refactored API 2022-04-04 09:15:31 +01:00
youben11
51308058c1 chore: format python code with black 2022-04-04 09:15:31 +01:00
Antoniu Pop
51d4d044cb fix(build): refactor DFRuntime build and link in ConcretelangRuntime instead. 2022-04-01 20:39:16 +01:00
Antoniu Pop
0b14f4c7c5 feat(test): allow selecting loop/dataflow parallelism independently in tests and enable loop parallelism selection by default. 2022-04-01 20:39:16 +01:00
Mayeul@Zama
b76839b8c9 fix(cmake): fix cmake dependencies 2022-03-30 17:20:20 +02:00
youben11
9de1776753 fix: fix imports 2022-03-28 13:42:18 +01:00
youben11
d8aa9ff76b tests: test execution of transpose 2022-03-24 16:04:57 +01:00
youben11
4e64b9e12a feat: support FHELinalg.transpose in MANP 2022-03-24 16:04:57 +01:00
youben11
3a4723a0b8 feat: add FHELinalg.transpose operation 2022-03-24 16:04:57 +01:00
rudy
6c7cd97e73 fix(warning): remove a warning in test end_to_end_jit_fhelinalg 2022-03-24 11:13:36 +01:00
Quentin Bourgerie
d23b978ed8 fix(test): Consume the error when we expected a failure 2022-03-24 11:00:36 +01:00
Quentin Bourgerie
cd2280ccae style(test): compile and run as template instead of macro 2022-03-24 11:00:36 +01:00
Quentin Bourgerie
cc1e74d923 cleanup(compiler): Remove JitCompilerEngine 2022-03-24 11:00:36 +01:00
Quentin Bourgerie
fc996fc698 fix(test): No more use the JitCompilationEngine 2022-03-24 11:00:36 +01:00
Quentin Bourgerie
5b83b700d2 enhance(compiler): Expose a compilation options instead of just the funcname 2022-03-24 11:00:36 +01:00
Quentin Bourgerie
1b984f5119 cleanup(python): Cleanup python bindings after refactoring of CompilerEngine 2022-03-24 11:00:36 +01:00
Quentin Bourgerie
8867d313ee feat(python): Expose Jit and Library compiler support 2022-03-24 11:00:36 +01:00
Quentin Bourgerie
f8968eb489 enhance(compiler/support): Refactor lambda support to have fatorized supoort for both lib and jit lambda 2022-03-24 11:00:36 +01:00
Quentin Bourgerie
af4851a72b fix(test): Tmp disable test that seems to fail too often, let's investigate later 2022-03-24 11:00:36 +01:00
Quentin Bourgerie
5984abe75a fix(test): Disable test that returns of a constant tensor because we don't known is a constant and we cannot free the memory 2022-03-24 11:00:36 +01:00