Antoniu Pop
3ab10c8d3f
fix(GPU runtime): fix BS & KS GPU allocation and synchronization, avoid re-allocation of KSK.
2023-02-14 08:22:15 +00: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
aPere3
2fd9b6f0e3
refactor(encodings): raise plaintext/lut encodings higher up in the pipeline
2022-12-13 17:01:52 +01:00
Antoniu Pop
752f0feb75
feat(runtime): add a stream emulator.
2022-12-08 14:54:14 +01:00
Quentin Bourgerie
2a89f62c1a
fix(cuda): Include cuda_runtime.h in device.h to include the defininition of cudaStream_t
2022-12-07 21:32:01 +01:00
Quentin Bourgerie
3c616af622
feat(compiler): Handle batched operators for gpu codegen
2022-12-07 21:32:01 +01:00
Quentin Bourgerie
792d46fa80
enhance(runtime/gpu): Cache keys copy to gpu
2022-12-07 21:32:01 +01:00
Andi Drebes
46366eec41
feat(compiler): Add fallback implementations for batched keyswitch and bootstrap
...
Add default implementations for batched keyswitch and bootstrap, which
simply call the scalar versions of these operations in a loop.
2022-11-18 12:06:07 +01:00
Samuel Tap
8a231974f7
chore(ffi): update to concrete-ffi without fftw
2022-11-16 11:44:46 +01:00
Antoniu Pop
94d68515d4
fix(runtime): remove logs for dataflow task execution.
2022-11-07 09:22:21 +00:00
youben11
ef778ac75b
refactor: replace some operands by attrs in bs/ks
2022-10-20 10:36:32 +01:00
youben11
d615ff47f2
feat: support GPU keyswitching
2022-10-20 10:36:32 +01:00
youben11
a7a65025ff
refactor: redesign GPU support
...
- unify CPU and GPU bootstrapping operations
- remove operations to build GLWE from table: this is now done in
wrapper functions
- remove GPU memory management operations: done in wrappers now, but we
will have to think about how to deal with it later in MLIR
2022-10-20 10:36:32 +01:00
youben11
d169a27fc0
feat: support GPU (bootstrapping)
2022-10-20 10:36:32 +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
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
youben11
661d33c2b6
feat: keep std bsk and conv to fourier when needed
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
c08a06ed8e
chore: Just rename configuration variable to enable the dataflow runtime
2022-08-24 11:35:05 +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
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
20d19c2161
cleanup(dfr): remove unused key ids and unranked memref labels.
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
dd2b2b9ce9
fix(dfr): deallocate receive buffers for evaluation keys on remote nodes.
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
49111dd295
fix(dfr): simplify runtime parametrization and fix implicit thread allocation policy.
2022-08-04 17:06:09 +01:00
Antoniu Pop
34b85304bc
license: fix master/main.
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
19a25deb2a
fix(dfr): remove int conversion warnings.
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
954b2098c6
feat(runtime): enable distributed execution.
2022-08-04 17:06:09 +01:00
youben11
f4166a4973
docs: use consistent style for comment blocks
...
prefix comment blocks with ///
2022-07-07 16:11:19 +01:00
Antoniu Pop
fb219f0fbf
feat(runtime): increase the limit of task input parameters to 16.
2022-06-28 17:11:12 +01:00
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
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
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
Antoniu Pop
0e38e0a48c
feat(parallelization): enable OpenMP/loop parallelism as a compilation target independently of HPX/DFR.
2022-04-01 20:39:16 +01:00
Antoniu Pop
27318ff29a
fix(runtime): disable main wrapping and provide _dfr_terminate new termination call for the runtime.
2022-03-17 16:15:02 +01:00
Antoniu Pop
2f31edef7f
fix(runtime): add initialization guard to avoid double initialization/finalization of the runtime.
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
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
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
Antoniu Pop
8f71c331d4
fix(runtime): formatting.
2022-01-04 12:43:33 +01:00
Antoniu Pop
93835e0106
fix(runtime): move deallocation of key clones in context destructor.
2022-01-04 12:43:33 +01:00