Commit Graph

23 Commits

Author SHA1 Message Date
Quentin Bourgerie
a654fb2d0e enhance(compiler/midlfhe): Handle linalg.generic in parametrization pass 2021-09-08 11:44:51 +02:00
Quentin Bourgerie
19f1a22b6a fix(compiler/midlfhe): Manage tensor in midlfhe parametrization 2021-09-06 10:26:40 +02:00
Quentin Bourgerie
dba76a1e1b enhance(compiler): Add tensor ops type rewriting on high level pipepline 2021-09-06 10:26:40 +02:00
Quentin Bourgerie
6ac882fc65 fix(compiler/capi): Remove the memref for error and no more bare pointer call convention 2021-09-06 10:26:40 +02:00
Quentin Bourgerie
bc975d904e feat(compiler): introduce bufferization passes in lowering pipeline to llvm 2021-09-06 10:26:40 +02:00
Quentin Bourgerie
19704b4b13 fix(compiler/lowlfhe): Use the lwe ciphertext parameters to allocate instead of global fhe context 2021-08-24 16:29:04 +02:00
Quentin Bourgerie
4ae00963ac cleanup: Remove unused import 2021-08-24 16:21:31 +02:00
Quentin Bourgerie
67f0fc0f45 enhance(compiler): Introduce MidLFHE dag parametrization 2021-08-24 16:21:31 +02:00
Quentin Bourgerie
8057ee7553 refactor(compiler): Prepare the MidLFHE parameters injection 2021-08-24 16:21:31 +02:00
Quentin Bourgerie
5613c69602 cleanup(compiler): Remove debug logs... 2021-08-18 17:06:28 +02:00
Quentin Bourgerie
fa62e1f0e5 refactor(compiler): Move memref HLFHE and MidLFHE operators to tensor 2021-08-18 11:15:30 +02:00
Andi Drebes
8b9c9f2da1 refactor(compiler): HLFHE.dot_eint_int: Switch from reference to value semantics
This changes the semantics of `HLFHE.dot_eint_int` from memref-based
reference semantics to tensor-based value semantics. The former:

  "HLFHE.dot_eint_int"(%arg0, %arg1, %arg2) :
     (memref<Nx!HLFHE.eint<0>>, memref<Nxi32>, memref<!HLFHE.eint<0>>) -> ()

becomes:

  "HLFHE.dot_eint_int"(%arg0, %arg1) :
     (tensor<Nx!HLFHE.eint<0>>, tensor<Nxi32>) -> !HLFHE.eint<0>

As a side effect, data-flow analyses become much easier. With the
previous memref type of the plaintext argument it is difficult to
check whether the plaintext values are statically defined constants or
originate from a memory region changed at execution time (e.g., for
analyses evaluating the impact on noise). Changing the plaintext type
from `memref` to `vector` makes such analyses significantly easier.
2021-08-17 16:53:32 +02:00
Quentin Bourgerie
8796754513 fix(compiler/lowlfhe): Fix wrong shift value for EncodeIntOp lowering
That's work before because we enfoce 6 as global constraint while our runJit tests are on 7 bits
2021-08-16 18:54:56 +02:00
Quentin Bourgerie
ed7dd36e70 fix(compiler): Remove the type conversion workaround, actually the order of addConversion calls matters (lifo) 2021-08-16 18:54:56 +02:00
Quentin Bourgerie
f45abce604 feat(compiler): More lowlfhe operators conversion to mlir std dialects 2021-08-16 18:54:56 +02:00
Quentin Bourgerie
03297fd50d fix(compiler/lowlfhe): for the v0 give the lweSize of ciphertext as a global parameter of the lowering pass to concrete api call (#62) 2021-08-16 18:54:56 +02:00
Quentin Bourgerie
b22f585380 feat(compiler): First draft of lowering from LowLFHE to std with fct call (#62) 2021-08-16 18:54:56 +02:00
Quentin Bourgerie
d0877536ed feat(compiler): First draft of client parameters generation, runtime support for encrypting and decrypting circuit gates, integration of fhe parameters for the v0 (#65, #66, #56) 2021-08-13 14:05:29 +02:00
youben11
4d3c7a68de feat(compiler): MidToLowLFHE lowering 2021-08-12 13:48:51 +01:00
youben11
3d8d5c438a refactor(compiler): generalize LinalgGenericPattern
also fixes an issue regarding populateWithGenerated, which can be
duplicated across different pattern files. So I redefined a different
function that is more unique to the pass that should be ran, and hide
the populateWithGenerated from the global namespace
2021-08-12 13:48:51 +01:00
Quentin Bourgerie
b4e57984b1 feat(compiler): Add passes to lower mlir to mlir llvm ir and run jit and emit llvm code (#63) 2021-08-05 13:43:08 +01:00
Quentin Bourgerie
4e6579e019 feat/refactor(compiler): Add --passes options to activate only a subset of passes (#57) 2021-08-04 14:03:05 +02:00
Quentin Bourgerie
1605551f1a feat(compiler): HLFHEToMidLFHE pass (#57) 2021-08-04 14:03:05 +02:00