Commit Graph

2371 Commits

Author SHA1 Message Date
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
David Testé
8575435b3e chore(ci): compute operations throughput on benchmarks results
In addition to values currently parsed and sent to database, now
throughput is also computed. This computation is done only on
mean values. New results are:
 - operations per ms
 - operations per dollar spent which depends on the machine used
   to perform the benchmarks
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
Quentin Bourgerie
914295b4a8 chore: Fix workflow for compiler documentation build 2023-03-09 17:43:01 +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
e41b2bba63 chore(CI cpu): run zig tests 2023-03-09 09:29:04 +01:00
Mayeul@Zama
5635ce2a67 chore(CI): enable workflow dispatch 2023-03-08 18:54:22 +01:00
Mayeul@Zama
ec532034bc chore(CI cpu): install rust and use cache 2023-03-08 18:15:49 +01:00
Mayeul@Zama
83799d4fba chore: update .gitignore files 2023-03-08 18:04:29 +01:00
David Testé
a5eb6be7eb chore: fix compiler benchmarks and use slab to execute them 2023-03-08 17:54:52 +01:00
Quentin Bourgerie
54eba86c02 chore(ci): Integrate concrete-python CI 2023-03-08 17:35:00 +01:00
Quentin Bourgerie
9858cf03ba chore: Integrate concrete-python in the mono-repo 2023-03-08 13:11:39 +01:00
Quentin Bourgerie
ce7eddc22d chore: Move to the mono repo layout 2023-03-08 11:23:21 +01:00
Quentin Bourgerie
da05e3e6db chore: Integrate concrete-cpu CI 2023-03-08 10:46:29 +01:00
Quentin Bourgerie
bb728959ec chore: Integrate concrete-optimizer CI 2023-03-07 16:46:31 +01:00
Umut
4fb476aaec feat: enable dataflow parallelization by default 2023-03-07 15:47:11 +01:00
dependabot[bot]
f2646c74f2 chore(deps): bump appleboy/ssh-action from 0.1.6 to 0.1.8
Bumps [appleboy/ssh-action](https://github.com/appleboy/ssh-action) from 0.1.6 to 0.1.8.
- [Release notes](https://github.com/appleboy/ssh-action/releases)
- [Commits](4a03da89e5...b601429988)

---
updated-dependencies:
- dependency-name: appleboy/ssh-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-07 15:47:03 +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
Umut
e36c7d2e03 docs: remove virtual from documentation 2023-03-07 13:26:44 +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
Quentin Bourgerie
2f9c7da6c6 chore: Fix test and build compiler with the new monorepo layout 2023-03-06 17:17:29 +01:00
David Testé
556ff1249b chore(ci): rename some worflow secrets 2023-03-06 14:01:51 +01:00
David Testé
24457bd3e8 chore(ci): change private ssh key secret name 2023-03-06 14:01:51 +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
f65d6e0b44 chore: Integrate 'integrate-concrete-compiler' into the mono-repo 2023-03-03 09:26:10 +01:00
Quentin Bourgerie
f975415e86 chore: Integrate concrete-compiler to the mono-repo 2023-03-03 09:20:01 +01:00
Umut
7985906a72 chore: revert "feat: support python 3.11"
This reverts commit 74e6d73e
2023-03-02 13:49:32 +01:00
Umut
aa60935c5d chore: bump version to v1.0.0-rc2 2023-03-02 11:54:34 +01:00
Umut
a07e0a1dcc feat: bump compiler to v0.24.0-rc5 2023-03-02 11:54:34 +01:00
Quentin Bourgerie
ac2f761a79 chore: Project setup 2023-03-02 10:06:11 +01:00
Quentin Bourgerie
a62b3b1d74 refactor: Integrate concrete-cpu and remove concrete-core
Co-authored-by: Mayeul@Zama <mayeul.debellabre@zama.ai>
2023-03-02 09:26:31 +01:00
rudy
9c784a2243 fix(ci): prepare_release, GLIBC_VER was not used 2023-03-01 11:52:45 +01:00
Umut
dde6392c0d chore: ignore deprecated declare namespace call in pytest 2023-03-01 10:16:53 +01:00
Umut
b5393eade9 chore: disable license check in pcc
It needs to be disabled because we use different versions of dependencies depending on the python version.

This system was not ideal anyway, it was just checking for string equality, whereas it should have checked if the licenses are accepted without looking into a pre-committed file.

Another PR will follow to improve the situation around licenses.
2023-03-01 10:16:53 +01:00