Commit Graph

3417 Commits

Author SHA1 Message Date
Umut
a98feed824 fix(frontend-python): keep negative values inside tlus as is instead of converting them to unsigned nightly-2024.04.02 nightly-2024.03.30 2024-03-29 14:03:18 +03:00
Umut
29e131a6ef fix(frontend-python): always increase the clear bit width by one to avoid sign extension issues nightly-2024.03.29 nightly-2024.03.27 v2.6.0-rc1 nightly-2024.03.28 2024-03-26 17:20:31 +03:00
Bourgerie Quentin
406804609c fix(compiler): Handle tensor.empty in the pass that lower tfhe to the simulatation code nightly-2024.03.26 2024-03-25 15:32:27 +01:00
Umut
79b72dbe4a feat(frontend-python): relax bit-width assignment of clear values nightly-2024.03.23 nightly-2024.03.22 2024-03-21 13:17:14 +03:00
Umut
2471b374a2 test(frontend-python): make sure tlu fusing is enabled by default 2024-03-21 13:17:14 +03:00
Umut
790d6ffa94 feat(compiler): remove p+1 requirement for clear values 2024-03-21 13:17:14 +03:00
Alexandre Péré
170002ff20 feat(frontend-python): add support for multi-circuits nightly-2024.03.20 nightly-2024.03.21 2024-03-19 14:13:18 +01:00
Bourgerie Quentin
8132a8a14b fix(ci): Download all artifacts to the wheels directory 2024-03-19 11:28:06 +01:00
dependabot[bot]
983631f6de chore(ci): bump tj-actions/changed-files from 41 to 43
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 41 to 43.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Commits](https://github.com/tj-actions/changed-files/compare/v41...v43)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-19 09:41:21 +01:00
Umut
d13b283f98 feat(frontend-python): disable and print tlu fusing 2024-03-19 09:39:06 +01:00
Raphaël Lafargue
84382fa771 Docker and Pip were reversed; fixed 2024-03-19 09:13:22 +01:00
Antoniu Pop
312f505063 feat(ci): add distributed CI test run target nightly-2024.03.19 2024-03-18 13:39:03 +00:00
David Testé
c52893f465 chore(ci): add distributed cpu build and tests workflow 2024-03-18 13:39:03 +00:00
Yuxi Zhao
7f506c0c45 docs(frontend): fix designs 2024-03-18 10:50:58 +00:00
Umut
7eefc6c053 feat(frontend-python): tlu on original bit width nightly-2024.03.16 2024-03-15 12:39:57 +03:00
Bourgerie Quentin
9ce4ffa9aa fix(ci): Separate build and test release 2024-03-15 09:39:38 +01:00
Andi Drebes
97292ed85f test(compiler): Add tests for type inference on IR with scf.forall operations nightly-2024.03.15 2024-03-14 06:45:53 +01:00
Andi Drebes
d79c76a872 feat(compiler): Add support for tiling of linalg.generic operations
This adds support for the tiling of `linalg.generic` operations that
have only parallel iterators or only parallel iterators and a single
reduction dimension via the linalg tiling infrastructure (i.e.,
`mlir::linalg::tileToForallOpUsingTileSizes()` and
`mlir::linalg::tileReductionUsingForall()`).

This allows for the tiling of FHELinalg operations by first replacing
them with appropriate `linalg.generic` oeprations and then invoking
the tiling pass in the pipeline. In order for the tiling to take
place, tile sizes must be specified using the `tile-sizes` operation
attribute, either directly for `linalg.generic` operations or
indirectly for the FHELinalg operation, e.g.,

  "FHELinalg.matmul_eint_int"(%a, %b) { "tile-sizes" = [0, 0, 7] } : ...

Tiling of operations with a reduction dimension is currently limited
to tiling of the reduction dimension, i.e., the tile sizes for the
parallel dimensions must be zero.
2024-03-14 06:45:53 +01:00
Andi Drebes
55a6041943 feat(compiler): Add support for tiled TFHE IR in TFHE parametrization pass
Add the required patterns for `tensor.empty` and `scf.forall` to the
TFHE circuit parametrization pass.
2024-03-14 06:32:19 +01:00
Andi Drebes
082cddb133 chore(compiler): Bump MLIR fork to commit including RegionBranchOpInterface for scf.forall 2024-03-14 06:32:19 +01:00
Andi Drebes
55d54a9c7f feat(compiler): Add pass replacing linalg.fill with linalg.generic 2024-03-14 06:32:19 +01:00
Andi Drebes
f89947a580 feat(compiler): Add support for scf.forall and associated ops in TFHE key normalization pass 2024-03-14 06:32:19 +01:00
Andi Drebes
d10c1ca576 feat(compiler): Add support for scf.forall and associated ops in FHE to TFHE passes 2024-03-14 06:32:19 +01:00
Andi Drebes
2cd06580ee feat(compiler): Add support for scf.forall and associated ops in TFHE parametrization 2024-03-14 06:32:19 +01:00
Andi Drebes
63e53ff200 feat(compiler): Add support for scf.forall and associated ops in TFHE to Concrete pass 2024-03-14 06:32:19 +01:00
Andi Drebes
64eaeb068e feat(compiler): Add reinstantiating rewrite patterns for scf.forall and scf.forall.in_parallel 2024-03-14 06:32:19 +01:00
Andi Drebes
ff20f88c44 feat(compiler): Run SCFForallToSCFFor pass before lowering to LLVM dialect
This adds an invocation of the `SCFForallToSCFFor` pass to the
compilation pipeline before lowering to the LLVM dialect as a
sequential fallback path to future passes exploiting the parallelism
of `scf.forall` further up in the pipeline.
2024-03-14 06:32:19 +01:00
Andi Drebes
5a7bf5aed2 feat(compiler): Add pass converting scf.forall loops to nested scf.for operations
This adds a new pass that converts `scf.forall` loops into nested
`scf.for` operations. The conversion carries parallel output tensors
from the original loop as dependencies through the loop nest and
replaces any occurrence of `tensor.parallel_insert_slice` operations
in the `scf.forall.in_parallel` terminator with equivalent
`tensor.insert_slice` operations.
2024-03-14 06:32:19 +01:00
Andi Drebes
7a295f89bd feat(compiler): Make trip counts and memory usage optional in statistics passes
This makes the trip counts of operations in the TFHE statistics pass
as well as the per-location memory usage statistics in the memory
usage statistics pass optional. These values are unset if the trip
count could not be determined statically.
2024-03-14 06:32:19 +01:00
Andi Drebes
e6e5db6f51 refactor(compiler): Use common static loop analysis in TFHE / memory statistics 2024-03-14 06:32:19 +01:00
Andi Drebes
14f39fefe7 refactor(compiler): Separate code for static loop analysis from batching 2024-03-14 06:32:19 +01:00
Andi Drebes
13a5dff4fb fix(ci): Disable levelled tests {signed_,}mul_eint_Xbits for X >= 10 on MacOS
The tests `end_to_end_leveled.jit.loop_dagmulti.mul_eint_10bits.0` and
`end_to_end_leveled.jit.loop_dagmulti.signed_mul_eint_10bits.0`
reproducibly fail on the mac2.metal instance used by the CI due to
insufficient memory. This change disables all instances of these tests
with 10 or more bits of precision on MacOS.
2024-03-14 06:32:19 +01:00
Benoit Chevallier-Mames
0ffbc13746 docs(compiler): fixing a bar char in the doc nightly-2024.03.14 2024-03-13 18:35:29 +01:00
Benoit Chevallier-Mames
c2f47cb103 docs(compiler): update the doc 2024-03-13 17:10:30 +01:00
Benoit Chevallier-Mames
e37a840e7e docs(compiler): adding API doc 2024-03-13 17:10:00 +01:00
Bourgerie Quentin
5370fb3cf9 fix(compiler): Do not reinstantiate csprng each time in the simulation backend 2024-03-13 16:28:52 +01:00
Bourgerie Quentin
9dcf1c4b6f feat(frontend-python): Expose compress_input_ciphertexts as a compilation options and tests nightly-2024.03.13 2024-03-12 17:58:40 +01:00
Bourgerie Quentin
3043573922 refactor(compiler/tests): Move bug and boolean to specific yaml files 2024-03-12 16:57:06 +01:00
Bourgerie Quentin
e0a7aaa479 test(compiler): Run all tests only on default options and run random tests on several options to tests 2024-03-12 16:57:06 +01:00
Bourgerie Quentin
1804081064 refactor(compiler): Refactor options naming of the end-to-end-test tool 2024-03-12 16:57:06 +01:00
Bourgerie Quentin
d3cb43b517 fix(compiler): Put dag-multi as default optimizer strategy 2024-03-12 16:57:06 +01:00
Bourgerie Quentin
721858346a refactor(compiler): Just reorder options for better readability 2024-03-12 16:57:06 +01:00
Bourgerie Quentin
2ac4f52ca5 feat(compiler/tests): Add random-tests options to end-to-end-test tool 2024-03-12 16:57:06 +01:00
Bourgerie Quentin
6b4ce8889b feat(compiler): Add input ciphertext compression with seeded ciphertext 2024-03-12 16:57:06 +01:00
Bourgerie Quentin
2d2e6d0519 fix(backend-cpu): Fix concrete_cpu_encrypt_seeded_lwe_ciphertext_u64 as the memory was not written 2024-03-12 16:57:06 +01:00
Bourgerie Quentin
11f1935119 fix(ci): Update path of auto-generated dialect documentation 2024-03-12 16:43:13 +01:00
Benoit Chevallier-Mames
c7fe6c83d2 docs(frontend): be clearer on docker use and its current limit for Apple silicon 2024-03-12 16:33:09 +01:00
Yuxi Zhao
a0195cf315 docs(frontend): update new structure and landing page nightly-2024.03.12 2024-03-11 18:55:50 +01:00
Bourgerie Quentin
ce74903c1d fix(frontends): Fixing tests which rely on cmdline not on configuration 2024-03-11 16:51:05 +01:00
Bourgerie Quentin
0fdc7d78ff perf(compiler): Use parallel implementation to decompress bs and ks keys 2024-03-11 16:51:05 +01:00