Quentin Bourgerie
fc51b1d2ab
fix(compiler): Activate the loop parallelism in ConcreteToBConcrete when the option is set
2022-03-28 09:41:27 +02:00
youben11
77356fa374
feat: lower FHELinalg.transpose to linalg.generic
2022-03-24 16:04:57 +01:00
Mayeul@Zama
73bb1c03d8
enhance(compiler): fix warnings
...
remove unused signature, functions, variable
remove pessimizing-moves
add cast before comparison
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
Umut
a1e4329ca8
fix: use proper broadcasting condition during matmul to linalg generic
2022-03-08 16:04:32 +03:00
youben11
65e2e2f600
fix: correct reassociation in expand and collapse ops
2022-03-02 09:55:54 +01:00
Umut
d06e0c0a59
feat: enhance matmul operation to support 1-D and N-D inputs
2022-03-01 18:06:40 +03:00
youben11
86379096df
feat: lower FHELinalg.conv2d to linalg
...
This is currently lowering to our custom linalg conv operation, since
linalg ops doesn't support custom types. But as linalg will support
custom types in the future, we may want to lower to the native linalg op
instead
2022-02-24 09:44:26 +01:00
Quentin Bourgerie
61fefde35a
fix(compiler): Compilation gcc7
2022-02-17 15:53:23 +01:00
Quentin Bourgerie
a068a728d3
chore(compiler): Fix missing dependencies in the build system
2022-02-17 15:53:23 +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
Quentin Bourgerie
626493dda7
enhance(compiler): Lower from Concrete to BConcrete and BConcrete to C API call
2022-02-17 15:53:23 +01:00
Quentin Bourgerie
b3368027d0
refactor(compiler): Move FHELinalg.zero to FHE.zero_tensor and add zero and sero_tensor in TFHE and Concrete dialects
2022-02-17 15:53:23 +01:00
Umut
20a89b7b42
feat: implement concat operation
2022-02-15 16:52:07 +03:00
Umut
a1818a3fd9
feat: implement advanced sum operation
2022-02-08 17:49:58 +03:00
Quentin Bourgerie
f52965e22f
enhance(compiler): Lower linalg to parallel loops and instantiare parallel loops with openmp
2022-02-03 10:59:12 +00:00
Umut
4203e86998
feat: implement basic sum operation
2022-02-01 12:18:56 +03:00
Andi Drebes
39b80bd5b2
fix(compiler): Remove unused variables in TFHEGlobalParametrization.cpp
2022-01-07 12:03:13 +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
youben11
f1161f7f6d
chore: formatting
...
Quick fix due to ordering of includes, had to add #include
<mlir/Transforms/DialectConversion.h> to include/concretelang/Conversion/Utils/GenericOpTypeConversionPattern.h
2022-01-03 09:29:19 +01:00
youben11
940cb96be4
chore: rename dialects
...
HLFHE to FHE
MidLFHE to TFHE
LowLFHE to Concrete
2021-12-29 15:13:34 +01:00
youben11
e73291abdc
chore: rename compiler to concrete-compiler
...
zamalang => concretelang
zamacompiler => concretecompiler
2021-12-29 15:13:34 +01:00
youben11
971cb56182
chore: licensing
2021-12-29 15:13:34 +01:00
rudy
d8fee32cea
feat(HLFHELinalg): add apply_mapped_table_lookup
...
Resolves #182
2021-12-27 15:34:33 +01:00
Antoniu Pop
cdca7ca6f7
feat(compiler): add Dataflow/RT dialect and code generation for dataflow auto parallelization.
2021-12-23 15:57:53 +00:00
Andi Drebes
f319ba37d2
feat(compiler): Integrate HLFHELinalg tiling passes into compilation pipeline
2021-12-17 16:09:59 +01:00
Andi Drebes
27ca5122bc
enhance(compiler): Use named constant for the default pattern rewriting benefit
...
This introduces a new header file `zamalang/Support/Constants.h` for
constants, currently only populated with a constant for the default
pattern rewriting benefit of 1.
2021-12-17 15:28:21 +01:00
rudy
d34792c977
fix(compiler): remove 1 warning (usgined vs signed)
2021-12-13 16:43:35 +01:00
Mayeul@Zama
f193fd71a2
fix(compiler): fix mixed-up (g)lwe dimension/size
...
add dimension -> size conversion
rename k -> glweDimension, polynomialSize -> logPolynomialSize
remove (in/out)putLweSize from KeySwitchLweOp
remove GlweSizeType from LowLFHE
2021-12-07 12:11:56 +01:00
Quentin Bourgerie
fb58dcc59d
enhance(compiler/lowlfhe): Give the runtime context as function argument instead of a global variable ( close #195 )
2021-12-02 10:56:47 +01:00
Andi Drebes
6fb907295d
feat(compiler): Add lowering for HLFHELinalg.zero to linalg.generate
...
Add a rewrite pattern that transforms an instance of
`HLFHELinalg.zero` into an instance of `linalg.generate` with an
appropriate region yielding a zero value.
Example:
%out = "HLFHELinalg.zero"() : () -> tensor<MxNx!HLFHE.eint<p>>
becomes:
%0 = tensor.generate {
^bb0(%arg2: index, %arg3: index):
%zero = "HLFHE.zero"() : () -> !HLFHE.eint<p>
tensor.yield %zero : !HLFHE.eint<p>
} : tensor<MxNx!HLFHE.eint<p>>
2021-12-01 11:24:27 +01:00
Andi Drebes
0b151724b8
enhance(compiler): Add support for tensor.generate in lowering pipeline
...
Operations with regions currently need explicit patterns for type
conversion throughout lowering. This change adds the required patterns
for `tensor.generate` to the lowering passes, such that the operation
can be used starting from the lowering from HLFHE to MidLFHE.
2021-12-01 11:24:24 +01:00
Quentin Bourgerie
582328a35d
cleanup(compiler/passes): Remove some warnings
...
Remove unused variables in LowLFHEToConcreteCAPI
2021-11-30 16:11:33 +01:00
Andi Drebes
8c06a5a1b2
enhance(compiler): Replace linalg type converter pattern with generic pattern
...
Replace `LinalgGenericTypeConverterPattern`, specialized for
`linalg.generic` with a generic type converter pattern
`RegionOpTypeConverterPattern` that can be instantiated for any
operation that has one or more regions.
Further enhancements:
- Supports multiple regions
- Uses more idiomatic instantiations of `llvm::for_each` instead of
manual iterations using for loops
2021-11-26 17:05:21 +01:00
Quentin Bourgerie
fe6de8f0c5
style(compiler): Formatting
2021-11-24 09:19:25 +01:00
Quentin Bourgerie
ddbafd713d
feat(compiler): Add the HLFHELinalg.matmul_int_eint operator
2021-11-24 09:19:25 +01:00
Andi Drebes
ffe32f5e90
fix(compiler): Suppress various warnings about expressions with different signedness
2021-11-19 16:23:15 +01:00
youben11
c5e3d9add8
fix(compiler): reserve the right amount of memory
2021-11-15 11:25:44 +01:00
youben11
36413235c5
feat(compiler): lower HLFHELinalg.apply_multi_lut
...
Support broadcasting
2021-11-15 11:25:44 +01:00
Quentin Bourgerie
f2b5d3316f
fix(compiler): don't try to broadcast when dims are equals with value 1 (7c8399)
...
Removed due of miss conflict resolution
2021-11-15 09:59:52 +01:00
Quentin Bourgerie
3fad9870a8
cleanup(compiler): Fix warning about comparison of expressions with different signedness in TensorOpsToLinalg
2021-11-12 16:50:29 +01:00
Quentin Bourgerie
af0819c403
feat(compiler): Lower HLFHELinalg.matmul_eint_int to linalg.generic ( close #177 )
2021-11-12 16:50:29 +01:00
Quentin Bourgerie
b598f0ffca
refactor(compiler): Move the conversion from scf to std on the pipeline intead of embedded in a pass
2021-11-12 16:50:29 +01:00
youben11
7c83994c7f
fix(compiler): don't try to broadcast when dims are equals with value 1
2021-11-12 15:07:08 +01:00
youben11
6df9f09e48
feat(compiler): lower HLFHELinalg.neg_eint
2021-11-10 15:24:31 +01:00
youben11
aee493392b
feat(compiler): lower neg_eint from HLFHE to LowLFHE
2021-11-10 15:24:21 +01:00
rudy
97389a3b06
Move HLFHE.dot_eint_int to HLFHELinalg.
...
Resolves #183
2021-11-09 11:39:08 +01:00
youben11
03c1588db4
chore: update to LLVM 8b7cc93e
...
major changes:
- https://llvm.discourse.group/t/psa-removed-arithmetic-ops-from-standard/4455
- use add_mlir_public_c_api_library helper to correctly add a CAPI library
2021-10-29 16:08:41 +01:00
Quentin Bourgerie
ccaf1bff15
feat(compiler): Lower HLFHELinalg.apply_lookup_table ( close #174 )
2021-10-29 13:47:38 +02:00
Quentin Bourgerie
a135d05e4d
feat(compiler): Lowering of HLFHELinalg.mul_eint_int
2021-10-29 12:18:30 +02:00