Commit Graph

50 Commits

Author SHA1 Message Date
youben11
15b4aac0a1 feat(rust): support keygen, encryption, execution 2022-12-02 14:03:02 +01:00
Quentin Bourgerie
292cce04c3 enhance(clientlib): Use the parallel version for generating packing keys 2022-11-30 10:00:37 +01:00
Mayeul@Zama
0657767bae style(cmake): run format_cmake.sh 2022-11-18 15:15:41 +01:00
Samuel Tap
8a231974f7 chore(ffi): update to concrete-ffi without fftw 2022-11-16 11:44:46 +01:00
rudy
018684fe2a chore: activate Wall Werror 2022-11-04 10:44:46 +01:00
Quentin Bourgerie
cf9a36c197 feat(compiler/runtime): Support the pbs for crt encoding (enable apply_lookup_table up to 16bits) 2022-10-07 09:16:19 +02:00
Andi Drebes
a7051c2c9c enhance(client/server): Add support for scalar results
This patch adds support for scalar results to the client/server
protocol and tests. In addition to `TensorData`, a new type
`ScalarData` is added. Previous representations of scalar values using
one-dimensional `TensorData` instances have been replaced with proper
instantiations of `ScalarData`.

The generic use of `TensorData` for scalar and tensor values has been
replaced with uses of a new variant `ScalarOrTensorData`, which can
either hold an instance of `TensorData` or `ScalarData`.
2022-10-04 14:40:40 +02:00
Andi Drebes
8255d3e190 fix(compiler): Add support for clear result tensors with element width != 64 bits
Returning tensors with elements whose width is not equal to 64 results
in garbled data. This commit extends the `TensorData` class used to
represent tensors in JIT compilation with support for signed /
unsigned elements of 8/16/32 and 64 bits, such that all clear text
tensors with up to 64 bits can be represented accurately.
2022-10-04 14:40:40 +02:00
rudy
cb2c9ef6bf feat: accept no evaluation keys 2022-09-26 14:43:25 +02:00
rudy
e5d9cb1af3 fix: display the reason when the linker can't be called and fix the root cause 2022-09-08 12:09:06 +02:00
youben11
661d33c2b6 feat: keep std bsk and conv to fourier when needed 2022-09-06 07:18:34 +01:00
youben11
942b41d07c fix: destroy glwe secret key after use 2022-09-06 07:18:34 +01:00
Mayeul@Zama
eb4b0753dc enhance(runtime): Move to the official concrete-core-ffi release 0.2.0-rc2
Co-authored-by: Mayeul@Zama <mayeul.debellabre@zama.ai>
Co-authored-by: Quentin Bourgerie <bourgerie.quentin@gmail.com>
2022-08-30 18:08:47 +02:00
Quentin Bourgerie
f69c8dfaba fix: Fix decoding of encrypted integer above 30 bits 2022-08-25 09:46:51 +02:00
Quentin Bourgerie
8cd3a3a599 feat(compiler): First draft to support FHE.eint up to 16bits
For now what it works are only levelled ops with user parameters. (take a look to the tests)

Done:
- Add parameters to the fhe parameters to support CRT-based large integers
- Add command line options and tests options to allows the user to give those new parameters
- Update the dialects and pipeline to handle new fhe parameters for CRT-based large integers
- Update the client parameters and the client library to handle the CRT-based large integers

Todo:
- Plug the optimizer to compute the CRT-based large interger parameters
- Plug the pbs for the CRT-based large integer
2022-08-12 16:35:11 +02:00
Andi Drebes
fb9066c3e8 fix(compiler): Fix calculation of indexes for result memrefs with non-zero offsets
The function `tensorDataFromMemRef` reading elements from a result
memref and copying them to an instance of `TensorData` fails to handle
memrefs with non-zero offsets as it adds the offset twice when
calculating indexes. This may result in out-of-bounds memory accesses
and incorrect results.

This patch fixes the calculation of indexes by removing the second
addition of the offset.
2022-07-27 22:39:54 +02:00
Mayeul@Zama
928a44d243 chore(ci): enforce ending files with a newline 2022-06-16 17:04:25 +02:00
youben11
1354759884 chore: rename refs to main branch 2022-06-09 09:19:06 +01:00
Umut
b052157fae refactor: separate runtime context from public arguments 2022-05-30 10:19:14 +03: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
rudy
8c25a97133 fix(KeySetCache): remove a race condition
thanks to Umut for pointing it
2022-05-04 08:42:57 +02:00
rudy
b45e469a44 feat(ci): macos, fix keysetcache use 2022-05-02 17:20:22 +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
d9d35c1023 refactor: use unique_ptr consistently for PublicArguments 2022-04-15 15:25:25 +01:00
rudy
1fca8f4b91 feat(KeySetCache): detect corrupted keysetcache 2022-04-15 09:13:55 +02:00
Mayeul@Zama
b76839b8c9 fix(cmake): fix cmake dependencies 2022-03-30 17:20:20 +02:00
rudy
2c4d399575 feat(KeySetCache): use a artifacts to store the cache 2022-03-30 10:11:38 +02:00
Quentin Bourgerie
0d376bc559 enhance(compiler): template result of typed vector from PublicResult 2022-03-24 11:00:36 +01:00
Quentin Bourgerie
44b1e5bab2 fix(clientlib): Allow tensor with dimensions equals to 0 2022-03-24 11:00:36 +01:00
Quentin Bourgerie
1ffd480d07 cleanup(compiler/jit): Removing dead code since the preparation of arguments has been factorized thanks the EncryptedArguments 2022-03-24 11:00:36 +01:00
Quentin Bourgerie
0d1f041323 refactor(jit): Use PublicArguments instead of JitLambda::Argument to call the lambda (uniform calling to ServerLambda and JitLambda) 2022-03-24 11:00:36 +01:00
Quentin Bourgerie
8a52cdaaf5 fix(client/server): Fix of clear scalar 2022-03-24 11:00:36 +01:00
Quentin Bourgerie
82741868f1 refactor(client/server): Rename encrypted_scalars_and_sizes_t o TensorData as it can be used for any kind of tensor 2022-03-24 11:00:36 +01:00
Quentin Bourgerie
5e8d2e7986 cleanup(clientlib): Remove ClientParameters serialization 2022-03-24 11:00:36 +01:00
Quentin Bourgerie
73da7da81c enhance(client/server): Don't decrypt directly from istream use a intermediate container to represent public result 2022-03-24 11:00:36 +01:00
youben11
bb289b6191 fix: link clientlib to concrete 2022-03-17 16:15:02 +01:00
Antoniu Pop
c440fc30f8 fix: CMake dependencies
define CONCRETELANG_PARALLEL_EXECUTION_ENABLED at toplevel and prevent RuntimeContext copy constructors from passing engines map.
2022-03-15 18:14:35 +01:00
Mayeul@Zama
ca8d4fb110 feat(compiler): use engine concrete C API
remove ConcreteToConcreteCAPI and ConcreteUnparametrize passes
2022-03-15 18:14:35 +01:00
Mayeul@Zama
cee07d2440 fix: rename LweSecretKeyParam.size dimension 2022-03-15 18:14:35 +01:00
youben11
141497fd67 fix: use correct type 2022-03-04 10:00:46 +03:00
youben11
d2e3f2490b fix: use stdlib free instead of malloc
malloc.h isn't portable to MacOS
https://stackoverflow.com/questions/12973311/difference-between-stdlib-h-and-malloc-h
2022-03-04 10:00:46 +03:00
youben11
e63df413c8 fix: remove move() due to Wpessimizing-move
causing issue on mac
2022-03-04 10:00:46 +03:00
youben11
845b48b293 refactor: remove variable length array usages 2022-03-04 10:00:46 +03:00
Antoniu Pop
05059e8165 fix(ClientLib): correct the RuntimeContext in the argument list. 2022-02-28 21:00:48 +00:00
rudy
8b71e9d476 feat(Clientlib): separate client encryption and server computation
Resolve #200
2022-02-24 15:50:18 +01:00
Quentin Bourgerie
4e8a9d1077 enhance(runtime): Fix the runtime tools to handle the ciphertext bufferization and the new compiler concrete bufferized API 2022-02-17 15:53:23 +01:00
Andi Drebes
498505c2f8 fix(compiler): Remove unused variable err in lib/ClientLib/KeySet.cpp 2022-01-07 12:03:13 +01:00
youben11
2009ee1c94 chore: changing ref to repo after its renaming
also formatting and update the check_license script to match that
2022-01-06 12:40:10 +01:00
rudy
b8bd38dd6c feat(compiler): Output client parameters when compile to a library
close #198
2022-01-03 17:57:16 +01:00