Commit Graph

595 Commits

Author SHA1 Message Date
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
Quentin Bourgerie
35d8489b9c fix(compiler/TFHE): Introduce bootstrap and keyswitch at the TFHE level 2022-04-12 09:37:56 +02:00
Andi Drebes
7cc0c01326 fix(compiler): Do not use C-style casts in multi_arity_call_dynamic_rank
C-style casts between function pointers result in an error using g++
8.3.0. This patch introduces a workaround based on `reinterpret_cast`,
in which the original function pointer is first cast into an unsigned
integer of sufficient size and then cast into the target function
pointer type.

TODO: Check that this is actually valid C++ with defined behavior on
all implementations / platforms.
2022-04-11 17:24:23 +02:00
Andi Drebes
e83c421bce enhance(compiler): genDynamicRankCall.py: Match clang-format formatting rules 2022-04-11 17:24:23 +02:00
Andi Drebes
b6cec58549 fix(compiler): genDynamicRankCall.py use renamed tensorDataFromMemRef 2022-04-11 17:24:23 +02:00
Antoniu Pop
b77865cdd6 tests: disable forking new processes for running python tests. 2022-04-11 15:05:22 +01:00
Antoniu Pop
d40ae16273 fix(compiler): make task work functions unique even across separate translation units. 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
91ccea9b6b chore: remove external header target
there is no need to update the header file, and we already patched it in
925745f0e3 so new version won't work
unless patched
2022-04-08 17:18:18 +01:00
Ayoub Benaissa
cae23bc15d ci: download keyset cache before tests if required 2022-04-08 17:18:11 +01:00
youben11
3dcd465962 ci: disable parallel package build
The current package name doesn't reflect that it's using
parallelization, and it's using platform linux_x86_64 which does mean
that it should work on any linux distro, while it's not the case
2022-04-06 08:43:53 +01:00
youben11
fafaa4c870 fix(macos): ignore undefined symbols for JIT compilation 2022-04-06 08:43:44 +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
2ded4b6f43 fix: set rpath when linking using extra args 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
01f6a334ff chore: remove macos workaround for linking runtimelib 2022-04-04 11:52:23 +01:00
youben11
ec7d1232f1 feat: add runtimeLib link for library compilation
runtime library will be linked to compiled library
2022-04-04 11:52:23 +01:00
youben11
bd6e8c7bbc fix: go back one additional directory
package has been refactored adding compiler/ under concrete/
2022-04-04 09:15:31 +01:00
youben11
78def04fe5 refactor: rename [jit|library]lambdasupport to [jit|library]support 2022-04-04 09:15:31 +01:00
youben11
583d5edf00 docs: fix docs generation
compiler directory had to be created for symlinks
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