Commit Graph

618 Commits

Author SHA1 Message Date
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
1354759884 chore: rename refs to main branch 2022-06-09 09:19:06 +01: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
c42f0a1ada feat: add NoSideEffect trait to intToCleartext op
This would be useful for future pass to eliminate it when its result is
no longer used
2022-06-01 14:35:12 +01:00
Mayeul@Zama
ee64b68109 chore(optimier): use optimizer dependency as a submodule 2022-05-31 10:01:26 +02:00
Quentin Bourgerie
dd28a7f132 fix(compiler): Concrete.ZeroOp is a 0 value tensor in BConcrete Dialect 2022-05-30 14:22:32 +01:00
youben11
0e717ea266 refactor(ci): avoid deuplications of if condition 2022-05-30 08:55:31 +01:00
youben11
852f2dbc35 ci: auto update compiler image if gcc/hpx rebuilt
reorder dependencies
2022-05-30 08:55:31 +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
Quentin Bourgerie
6532c8f449 fix(compiler): Canonicalize before MANP analysis 2022-05-24 14:12:28 +02:00
Quentin Bourgerie
6bb1e05658 fix(compiler): Compiler // options are badly setted 2022-05-23 13:53:23 +02:00
Mayeul@Zama
f5faf4c421 feat(optimizer): update concrete_optimizer dependency
fix breaking changes
2022-05-18 14:04:48 +02:00
Mayeul@Zama
ba315f4cf0 compat(optimizer): use compat branch before merging breaking change to master 2022-05-18 11:27:16 +02:00
rudy
6f02d1248d feat(optimizer): update to use the new cpp brige 2022-05-10 15:36:40 +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
youben11
f223f02ab7 feat: parameterize artifact generation in lib compilation 2022-05-09 16:18:21 +01:00
rudy
61052a237b fix(Makefile): concrete-optimizer, rm target dir from dependencies 2022-05-09 15:04:24 +02: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
eb1f5b1842 fix(keysetcache): use a portable hash function
will help to make macos faster on the ci
2022-05-06 10:00:11 +02:00
Andi Drebes
f232935592 fix: Make functions in LambdaSupport.h purely virtual to avoid linking errors in debug builds
Some virtual functions in `LambdaSupport.h` are meant to be purely
virtual, but lack a `= 0` in their signature. In debug builds, this
causes the linker to look for a default implementation, resulting in a
linker error.

This patch marks the virtual functions as purely virtual, resolving
the linker issues in debug builds.
2022-05-04 22:06:00 +02:00
rudy
bd49cc9a48 fix(ci): compiling concrete-optimizer for release 2022-05-04 09:18:36 +02:00
rudy
8c25a97133 fix(KeySetCache): remove a race condition
thanks to Umut for pointing it
2022-05-04 08:42:57 +02:00
rudy
ab8c22c6a0 fix(ci): BuildAndPushDockerImages should pre-compile concrete-optimizer 2022-05-03 15:55:00 +02:00
rudy
94a8f918d7 feat(ci): no KeySetCache download for full cache change 2022-05-03 11:12:24 +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
rudy
3eec7d6817 fix(doc): update sphinx for python 3.10 2022-04-26 16:22:15 +02:00
rudy
c7bf93c388 feat(ci): macos, use compilation cache 2022-04-25 17:18:33 +02:00
youben11
e9345b3859 feat: serialize public result w/ python bindings 2022-04-22 15:53:26 +01:00
rudy
231f413a21 fix(main): unchecked llvm expected 2022-04-22 15:14:41 +02:00
youben11
0a5881096c feat(python): serialize public arguments 2022-04-15 15:25:25 +01:00
youben11
d9d35c1023 refactor: use unique_ptr consistently for PublicArguments 2022-04-15 15:25:25 +01:00
youben11
8350d4abc4 chore: remove debug print 2022-04-15 15:25:25 +01:00
rudy
1fca8f4b91 feat(KeySetCache): detect corrupted keysetcache 2022-04-15 09:13:55 +02: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
youben11
c8ca318fde feat: throw clear error if DF jit-exec is not supported
was previously getting an undefined symbol error as the runtime lib
didn't support dataflow execution
2022-04-14 11:07:39 +01:00
rudy
c2d92b0132 feat(ci): pruning keysetcache content 2022-04-13 16:12:22 +02:00
rudy
9387b8793c feat(ci): clear ccache stats in docker image 2022-04-13 11:31:15 +02:00
rudy
2b6eb5f23d feat(ci): freeing some space
this is useful for commits changing many tests
this simply clear the docker cache
2022-04-13 11:12:33 +02:00
Quentin Bourgerie
247d60503d fix(compiler): Custom copy op from 1D tensor to avoir stack allocation from mlir memref to llvm lowering 2022-04-13 10:16:53 +02:00
youben11
af300055a7 fix(macos): update dependency after compiling dylib
when dellocate is used to include dependencies in python wheels, the
runtime library will have an id that is prefixed with /DLC, and that path
doesn't exist. So when generated libraries won't be able to find it
during load time. To solve this, we change the dep in the generated
library to be relative to the rpath which should be set correctly during
linking. This shouldn't have an impact when /DLC/concrete/.dylibs/* isn't
a dependecy in the first place (when not using python).

also set rpath when linking to RT lib
2022-04-12 13:56:18 +01:00
youben11
d7440f15c0 fix(python): lookup RTLib at a diff location in Mac 2022-04-12 13:56:18 +01:00