youben11
8aee5dd5c3
chore(runtime): link concrete statically with runtime lib
2021-09-09 20:35:28 +02:00
youben11
de81ac3f3e
feat: Runtime library
2021-09-09 20:35:28 +02:00
youben11
ea3c940f4a
feat: lower LowLFHE types (apply_lut) to llvm.ptr
2021-09-09 20:35:28 +02:00
youben11
6e2ac3af4e
feat: parameterize KS operation
2021-09-09 20:35:28 +02:00
youben11
14f171bef9
feat: parameterize bst operation
...
This is needed to have the right parameters when calling concrete
2021-09-09 20:35:28 +02:00
youben11
2b0cfce1f6
feat(compiler): LowToCAPI of apply_lut
2021-09-09 20:35:28 +02:00
youben11
3b5ae0657d
feat: MidToLowLFHE lowering of apply_lut
2021-09-09 20:35:28 +02:00
youben11
b6c3eceadd
refactor: remove keys from BS and KS ops in LowLFHE
2021-09-09 20:35:28 +02:00
Quentin Bourgerie
d2a3214bba
clean(compiler): Return nullptr when conversion fails (should not happens but more safe in release mode) and remove dead code
2021-09-08 11:44:51 +02:00
Quentin Bourgerie
d03adbd7dc
enhance(compiler): Add options for verbose passes
2021-09-08 11:44:51 +02:00
Quentin Bourgerie
1077c9167c
enhance(compiler): Full lowering of hlfhe.zero, make dot_eint_int fully lowerable
2021-09-08 11:44:51 +02:00
Quentin Bourgerie
de7129fe8e
feat(compiler/llvm-pipeline): Bufferize linalg and convert to loops
2021-09-08 11:44:51 +02:00
Quentin Bourgerie
a654fb2d0e
enhance(compiler/midlfhe): Handle linalg.generic in parametrization pass
2021-09-08 11:44:51 +02:00
Quentin Bourgerie
15fd194075
fix(compiler): Since the patterns could be call in any order take care of already lowered types in mid to low conversion
2021-09-08 11:44:51 +02:00
Quentin Bourgerie
697d4033e1
fix(compiler): typo
2021-09-06 10:26:40 +02:00
Quentin Bourgerie
bfa4eece9d
chore(compiler): Add build target for e2e test
2021-09-06 10:26:40 +02:00
youben11
c3db68298e
fix: checking wrong state of the error
2021-09-06 10:26:40 +02:00
Quentin Bourgerie
9ccc03b02f
fix(compiler/python): Fix api break
2021-09-06 10:26:40 +02:00
Quentin Bourgerie
be7301387c
chore: add then end-to-end-jit test to the make test target
2021-09-06 10:26:40 +02:00
Quentin Bourgerie
88d896cb64
refactor: Rename unittests
2021-09-06 10:26:40 +02:00
Quentin Bourgerie
19f1a22b6a
fix(compiler/midlfhe): Manage tensor in midlfhe parametrization
2021-09-06 10:26:40 +02:00
Quentin Bourgerie
af0789f128
enhance(compiler/runtime): Add runtime tools to handle tensor inputs and outputs
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
ce776c0eba
fix(compiler/lowlfhe): lwe_ciphertext as memref element type
2021-09-06 10:26:40 +02:00
youben11
7850b359f3
chore(compiler): skeleton of unittest with gtest
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
ee9acf08e8
enhance(compiler/lowlfhe): Add p and size to lwe_ciphertext
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
70fb5fcd8e
fix(compiler/midlfhe): Change constraint on operators with integers (just too large integers are forbidden)
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
youben11
f948db1228
feat(python): CompilerEngine to compile and run
2021-08-18 17:38:46 +02:00
Quentin Bourgerie
5613c69602
cleanup(compiler): Remove debug logs...
2021-08-18 17:06:28 +02:00
Quentin Bourgerie
042f54afbf
fix(compiler/python): Update python test
2021-08-18 11:15:30 +02:00
Quentin Bourgerie
fa62e1f0e5
refactor(compiler): Move memref HLFHE and MidLFHE operators to tensor
2021-08-18 11:15:30 +02:00
Quentin Bourgerie
7d6738916b
fix(compiler/pyhton): Update test dot_eint_int
2021-08-17 16:53:32 +02:00
Quentin Bourgerie
7372cd3d0a
fix(compiler/hlfhe): More verification on dot_eint_int
2021-08-17 16:53:32 +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
Andi Drebes
cb580f16d2
feat(compiler): Add operation HLFHE.zero generating an encrypted zero
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
96c50d5dca
fix/chore(docker/zamalang-env): Update to the latest concrete-api-env
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
42f12b22da
fix(compiler): move the midlfhe to lowlfhe pass to the right place
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
Quentin Bourgerie
e290447389
chore(compiler): Get the concrete capi release
2021-08-13 14:05:29 +02:00