Commit Graph

37 Commits

Author SHA1 Message Date
rudy
7d69ce0f40 fix: nightly clippy 2023-03-14 16:54:45 +01:00
Samuel Tap
77255e7eda remove ceil in wop-pbs constraint 2023-03-14 16:54:45 +01:00
rudy
0156040982 fix: cuts for dag optimization are backs 2023-03-14 16:54:45 +01:00
youben11
1e435de9d6 fix: prefix compiled function name to avoid collision w other func
the new wrapper function will make a call to the main compiled function,
and we got some problem in the GOT/PLT due to function of the same name.
So now we prefiex with `concrete_` to avoid that.
2023-03-14 11:18:55 +01:00
youben11
dc8b762708 fix: add a wrapper to compiled circuits to unify invocation
this was already implemented for JIT using mlir::ExecutionEngine, but
was using a different, and more complex way for library compilation and
execution, which was causing a bad calling convention at the assembly
level in MacOS M1 machine. This commits unify the invocation of JIT and
Library compiled circuit, solving the previously mentioned issue, but
also gives the ability to extend compiled libraries to support more than one
returned value
2023-03-14 11:18:55 +01:00
Quentin Bourgerie
b1a94ac245 chore(compiler): format 2023-03-14 10:33:35 +01:00
Quentin Bourgerie
0b76f2c49e fix: Fix compiler compilation break after API break in concrete-cpu 2023-03-13 22:10:41 +01:00
Quentin Bourgerie
a241447da6 chore: Update ci to directly launch slab command and fix docker images 2023-03-13 20:13:01 +01:00
Quentin Bourgerie
e02d12ab64 chore: Remove concrete-core dependecy and use the local concrete-cuda instead 2023-03-10 13:30:56 +01:00
Quentin Bourgerie
d81c76aa02 chore: Fixing compilation error of the python bindings 2023-03-10 13:25:56 +01:00
Mayeul@Zama
645986803c fix(optimizer): fix new nightly lints 2023-03-09 18:43:33 +01:00
Quentin Bourgerie
55e6d075c9 fix(compiler): unused-result 2023-03-09 17:47:16 +01:00
Andi Drebes
3b00274a02 refactor(compiler): Use FoldAdaptor for FHE and FHELinalg folders
As per
https://discourse.llvm.org/t/psa-new-improved-fold-method-signature-has-landed-please-update-your-downstream-projects/67618,
attribute-based folders are now deprecated and their use generates a
warning during compilation.

This patch replaces the raw attribute-based folders with folders using
`FoldAdaptor`.
2023-03-09 17:47:16 +01:00
Umut
d975421c50 feat: implement (de)serialization of KeySet 2023-03-09 17:47:16 +01:00
Umut
dc086a795b refactor: rename unserialize to deserialize in Python bindings 2023-03-09 17:47:16 +01:00
Umut
f1f1c37831 feat: support signed integers in python bindings 2023-03-09 17:47:16 +01:00
Umut
72005be78d feat: expose !FHE.esint<p> in Python bindings 2023-03-09 17:47:16 +01:00
Umut
e949e7e2a7 feat: introduce FHELinalg.mul_eint 2023-03-09 17:47:16 +01:00
Antoniu Pop
291019ba0f feat(GPU-runtime): add a SDFG+DFR backend and runtime for dynamic GPU offloading. 2023-03-09 17:47:16 +01:00
Antoniu Pop
6eb8841652 feat(GPU-runtime): add per device cache of BS and KS keys. 2023-03-09 17:47:16 +01:00
Antoniu Pop
e42d7bbe64 fix(SDFG): add output size attribute to KS/BS. 2023-03-09 17:47:16 +01:00
Andi Drebes
c8c969773e Rebase onto llvm-project 465ee9bfb26d with local changes
This commit rebases the compiler onto commit 465ee9bfb26d from
llvm-project with locally maintained patches on top, i.e.:

  * 5d8669d669ee: Fix the element alignment (size) for memrefCopy
  * 4239163ea337: fix: Do not fold the memref.subview if the offset are
                  != 0 and strides != 1
  * 72c5decfcc21: remove github stuff from llvm
  * 8d0ce8f9eca1: Support arbitrary element types in named operations
                  via attributes
  * 94f64805c38c: Copy attributes of scf.for on bufferization and make
                  it an allocation hoisting barrier

Main upstream changes from llvm-project that required modification of
concretecompiler:

  * Switch to C++17
  * Various changes in the interfaces for linalg named operations
  * Transition from `llvm::Optional` to `std::optional`
  * Use of enums instead of string values for iterator types in linalg
  * Changed default naming convention of getter methods in
    ODS-generated operation classes from `some_value()` to
    `getSomeValue()`
  * Renaming of Arithmetic dialect to Arith
  * Refactoring of side effect interfaces (i.e., renaming from
    `NoSideEffect` to `Pure`)
  * Re-design of the data flow analysis framework
  * Refactoring of build targets for Python bindings
  * Refactoring of array attributes with integer values
  * Renaming of `linalg.init_tensor` to `tensor.empty`
  * Emission of `linalg.map` operations in bufferization of the Tensor
    dialect requiring another linalg conversion pass and registration
    of the bufferization op interfaces for linalg operations
  * Refactoring of the one-shot bufferizer
  * Necessity to run the expand-strided-metadata, affine-to-std and
    finalize-memref-to-llvm passes before converson to the LLVM
    dialect
  * Renaming of `BlockAndValueMapping` to `IRMapping`
  * Changes in the build function of `LLVM::CallOp`
  * Refactoring of the construction of `llvm::ArrayRef` and
    `llvm::MutableArrayRef` (direct invocation of constructor instead
    of builder functions for some cases)
  * New naming conventions for generated SSA values requiring rewrite
    of some check tests
  * Refactoring of `mlir::LLVM::lookupOrCreateMallocFn()`
  * Interface changes in generated type parsers
  * New dependencies for to mlir_float16_utils and
    MLIRSparseTensorRuntime for the runtime
  * Overhaul of MLIR-c deleting `mlir-c/Registration.h`
  * Deletion of library MLIRLinalgToSPIRV
  * Deletion of library MLIRLinalgAnalysis
  * Deletion of library MLIRMemRefUtils
  * Deletion of library MLIRQuantTransforms
  * Deletion of library MLIRVectorToROCDL
2023-03-09 17:47:16 +01:00
rudy
8ebfccd9a7 fix: global_p_error fails on big 16b circuits
Resolve zama-ai/concrete-numpy-internal#1858
2023-03-09 17:47:16 +01:00
Antoniu Pop
65fc4ecc21 fix(tests): do not test precision 8 when dimension is too low. 2023-03-09 17:47:16 +01:00
Antoniu Pop
604d993f28 fix(DFRuntime): fix make_ready_future compilation with GCC 12+ (wrt. -Werror=use-after-free). 2023-03-09 16:34:46 +01:00
Mayeul@Zama
83799d4fba chore: update .gitignore files 2023-03-08 18:04:29 +01:00
Quentin Bourgerie
bb728959ec chore: Integrate concrete-optimizer CI 2023-03-07 16:46:31 +01:00
Quentin Bourgerie
c20726e487 chore: Refactor the ci in order to dispatch dependeding of file changes 2023-03-07 14:40:32 +01:00
Quentin Bourgerie
ea46bd70bb chore: Fix compiler CI 2023-03-07 09:08:29 +01:00
Quentin Bourgerie
6cd9fa6eff chore: concrete-optimizer is no more build by make 2023-03-06 17:19:39 +01:00
David Testé
5beb13b435 chore(ci): move ci directory to to repository root 2023-03-06 14:01:51 +01:00
Quentin Bourgerie
86422cf2d5 chore: Integrate concrete-optimizer in the mono-repo 2023-03-06 13:55:27 +01:00
Quentin Bourgerie
7f4bdfd557 chore: Move concrete-optimizer to the concrete mono repo 2023-03-06 13:53:48 +01:00
Quentin Bourgerie
203393056b chore: Move to the mono-repo layout 2023-03-06 13:34:22 +01:00
Quentin Bourgerie
a279cbe88e chore: Move llvm-project in third_party 2023-03-06 10:50:21 +01:00
Quentin Bourgerie
06d3c316e7 chore: Move concrete-cpu backend to the concrete mono repository
The main contributors of concrete-cpu are

Co-authored-by: Mayeul@Zama <mayeul.debellabre@zama.ai>
Co-authored-by: sarah <sarah.elkazdadi@zama.ai>
2023-03-03 16:20:18 +01:00
Quentin Bourgerie
f975415e86 chore: Integrate concrete-compiler to the mono-repo 2023-03-03 09:20:01 +01:00