Quentin Bourgerie
a62b3b1d74
refactor: Integrate concrete-cpu and remove concrete-core
...
Co-authored-by: Mayeul@Zama <mayeul.debellabre@zama.ai >
2023-03-02 09:26:31 +01:00
youben11
bb87d29934
feat: support chunked integer during enc/dec/exec
2023-02-07 12:27:01 +01:00
aPere3
e95c53f2ff
feat: support signed execution
...
Author: aPere3 <alexandre.pere@zama.ai >
Co-authored-by: Umut <umutsahin@protonmail.com >
2023-02-03 16:19:43 +01:00
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