Commit Graph

434 Commits

Author SHA1 Message Date
rudy
08ed2fc49b fix: when both sol.p_error and sol.global_p_error are near 0 2022-09-21 14:23:16 +02:00
rudy
e1fb417c54 fix(optimizer): no ceiling for MANP value given to the optimizer 2022-09-19 17:59:22 +02:00
Antoniu Pop
4fbb05e18c feat(compiler): add an asynchronous interface for bootstrap and keyswitch using std::promise/future. 2022-09-19 13:02:20 +01:00
Antoniu Pop
2cf80e76eb feat(compiler): move the lowering of dataflow tasks to RT dialect before bufferization. 2022-09-15 11:55:37 +01:00
Andi Drebes
d9363ffb27 fix(compiler): Use maps with symbolic offsets in memref casts for wrapper functions
The bufferization of the BConcrete dialect emits calls to Concrete
wrapper functions and casts all memrefs to ranked memrefs with dynamic
strides and an implicit identity layout map. The implicit identity map
does not allow for casts of memrefs with non-zero offsets, e.g.,
resulting from folding of memrefs related to intermediate results
passed as operands to the operation implemented by a wrapper.

Casting to memrefs symbolic offsets in the layout map (e.g.,
`[d0, d1, ...](s0, s1, ...) -> (d0 + s0, d1 + s1, ...)`) allows
for more flexibility, in particular this adds support for memrefs
with non-zero, constant offsets returned by operations generating
intermediate results.
2022-09-14 16:47:41 +02:00
Umut
465b4b95bb chore: remove seeder selection messages 2022-09-14 12:37:42 +02:00
Quentin Bourgerie
dbfde466bc feat(python): Add compilation feedback to the python bindings 2022-09-14 10:03:25 +02:00
Quentin Bourgerie
f4673e8276 feat(compiler): First draft or compilation feedback 2022-09-14 10:03:25 +02:00
rudy
48bf6e2696 feat(optimizer): report or warn using global p-error 2022-09-12 17:22:38 +02:00
Umut
41c9f86803 feat: create encrypted signed integer type 2022-09-09 17:38:21 +03: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
rudy
deef4486ba fix: negative value have full complement 2 noise
Revert ae9a04cd56
2022-09-06 15:27:20 +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
Quentin Bourgerie
30df69366d enhance(python-bindings): Expose the option to set or not the v0 strategy of the optimizer. 2022-09-01 10:37:00 +02: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
Ayoub Benaissa
393d1617eb fix: add linking options for MacOS
Starting from Mac 11 (Big Sur), it appears we need to add -L
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib -lSystem for the
sharedlib to link properly.i
2022-08-26 10:45:15 +01:00
Quentin Bourgerie
d9c9ecbf0b fix(manp): Use the active bits to square a the constant in the 2-norm computation to allow more program to be analyzed 2022-08-25 09:46:51 +02:00
Quentin Bourgerie
f69c8dfaba fix: Fix decoding of encrypted integer above 30 bits 2022-08-25 09:46:51 +02:00
Quentin Bourgerie
4bd8665655 fix(security): Update security curves 2022-08-24 20:46:31 +02:00
Quentin Bourgerie
c08a06ed8e chore: Just rename configuration variable to enable the dataflow runtime 2022-08-24 11:35:05 +02:00
Quentin Bourgerie
9257404f5f fix(python-bindings): Support np.array with dtype upt to 64 bits 2022-08-19 14:15:21 +02:00
Quentin Bourgerie
d647bc735f fix: Now the maximum precision is 16bits 2022-08-16 08:40:14 +02:00
Quentin Bourgerie
5492ed01eb feat: plug the compiler pipeline with the optimizer for 16 bits eint 2022-08-16 08:40:14 +02:00
rudy
f3933aeddc feat(optimizer): connect to new entry point supporting woppbs 2022-08-16 08:40:14 +02:00
Antoniu Pop
93802d128b fix(dfr-compiler): clone memref task arguments using identity maps for serialization. 2022-08-12 16:35:11 +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
rudy
cc6c2576ec feat(optimizer): create optimizer dag and use it 2022-08-11 10:10:27 +02:00
rudy
bd3d462384 feat(multiprecision): enable real multiple precision computation 2022-08-11 10:10:27 +02:00
Quentin Bourgerie
534e683055 fix: Lowering from ConcreteToBConcrete of from_elements on ND tensor of Concrete.lwe_ciphertext 2022-08-09 10:26:32 +02:00
Antoniu Pop
a2ff61d1d7 cleanup(compiler): remove no longer needed function getAliasedUses. 2022-08-04 17:06:09 +01:00
Antoniu Pop
f9ce4d046b fix(testing-dfr): fix startup and ternimation call parameters to allow sequential test execution on root node when the runtime is instantiated for distributed execution. 2022-08-04 17:06:09 +01:00
Antoniu Pop
f541af8a8f fix(compiler): use ViewLikeOpInterface instead of checking specific op types. 2022-08-04 17:06:09 +01:00
Antoniu Pop
f051642f1f cleanup(compiler): rename getSizeInBytes function to match updated functionality. 2022-08-04 17:06:09 +01:00
Antoniu Pop
46b1dbcd34 cleanup(compiler): fix unused variable warning. 2022-08-04 17:06:09 +01:00
Antoniu Pop
20d19c2161 cleanup(dfr): remove unused key ids and unranked memref labels. 2022-08-04 17:06:09 +01:00
Antoniu Pop
da9dbcef1d feat(compiler): coarsen task granularity by aggregating lightweight operations. 2022-08-04 17:06:09 +01:00
Antoniu Pop
ba60d74da0 feat(dfr): add timing measurements. 2022-08-04 17:06:09 +01:00
Antoniu Pop
1bb3d04059 fix(dfr): broadcast evaluation keys early to avoid locking in HPX helper threads. 2022-08-04 17:06:09 +01:00
Antoniu Pop
fbca52f4a0 feat(dfr): add memory management for futures and associated data. 2022-08-04 17:06:09 +01:00
Antoniu Pop
b405a2daf2 fix(dfr): fix thread binding when running both HPX and OpenMP runtimes. 2022-08-04 17:06:09 +01:00
Antoniu Pop
eeb3ba8735 fix(compiler): add calls to enable either or both parts of the runtime based on compile options used. 2022-08-04 17:06:09 +01:00
Antoniu Pop
51d3959742 fix(dfr): remove runtime resume/suspend on entry/exit of function as currently unstable. 2022-08-04 17:06:09 +01:00
Antoniu Pop
49111dd295 fix(dfr): simplify runtime parametrization and fix implicit thread allocation policy. 2022-08-04 17:06:09 +01:00
Antoniu Pop
ae55e88435 feat(dfr): add default configuration file for HPX runtime. 2022-08-04 17:06:09 +01:00
Antoniu Pop
7410502e60 fix(dfr): simplify synchronization in work function registry. 2022-08-04 17:06:09 +01:00
Antoniu Pop
e36c7d3b55 feat(dfr): add environment variable option for using HPX configuration file path at initialization. 2022-08-04 17:06:09 +01:00
Antoniu Pop
615109d432 fix(dfr): simplify initialization and add namespaces where possible. 2022-08-04 17:06:09 +01:00
Antoniu Pop
460fbabbe0 feat(runtime): deactivate main wrapping by default and add explicit initialization/termination. 2022-08-04 17:06:09 +01:00
Antoniu Pop
bca85ea2b6 feat(compiler): delay the point where futures are waited on, when they are being synchronized back to their parent context, to the point of use. 2022-08-04 17:06:09 +01:00