Commit Graph

2496 Commits

Author SHA1 Message Date
Pedro Alves
bfb07b961d feat(cuda): Add support for the classical PBS for polynomial_size=256. 2023-02-15 09:15:21 +01:00
Andi Drebes
5d3af16617 test(compiler): Add check for omp.parallel after lowering a parallelizable FHELinalg op
This test ensures that at least one parallel region is generated for
an FHELinalg operation that is guaranteed to result in a parallel loop
when `concretecompiler` is invoked with `--parallelize`.
2023-02-14 09:53:02 +01:00
Andi Drebes
fc02bb5cd8 fix(compiler): Copy attributes when reinstantiating scf.for ops
The switch to reinstantiating conversion patterns for the conversion
from FHE to TFHE in commit 73fd6c5fe7
caused all attributes of `scf.for` operations to be dropped during the
conversion. This included the custom attribute `parallel`, which is
exploited further down the compilation pipeline to generate parallel
code. As a result, the performance of end-to-end benchmarks dropped
significantly.

This patch copies all attributes of `scf.for` operations upon
reinstantiation, which solves the performance regression.
2023-02-14 09:53:02 +01:00
Antoniu Pop
3ab10c8d3f fix(GPU runtime): fix BS & KS GPU allocation and synchronization, avoid re-allocation of KSK. 2023-02-14 08:22:15 +00:00
Agnes Leroy
730274f156 refactor(cuda): create scratch function and cleanup for wop pbs 2023-02-14 09:21:30 +01:00
Agnes Leroy
e9243bce6f refactor(cuda): change lut_vector_indexes type to Torus 2023-02-14 09:21:30 +01:00
dependabot[bot]
2eff35285a chore(deps): bump marocchino/sticky-pull-request-comment
Bumps [marocchino/sticky-pull-request-comment](https://github.com/marocchino/sticky-pull-request-comment) from 2.3.1 to 2.5.0.
- [Release notes](https://github.com/marocchino/sticky-pull-request-comment/releases)
- [Commits](fcf6fe9e4a...3d60a5b2da)

---
updated-dependencies:
- dependency-name: marocchino/sticky-pull-request-comment
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 16:02:03 +01:00
poechsel
e126a11fcb feat: implement bitwise and comparison operators 2023-02-13 12:58:55 +01:00
Pedro Alves
db83fd7649 refactor(cuda): Refactor the low latency PBS. 2023-02-13 09:55:15 +01:00
rudy
717c8c815f fix: ci macos test 2023-02-13 09:20:25 +01:00
dependabot[bot]
f3affae84a chore(deps): bump docker/build-push-action from 3.3.0 to 4.0.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.3.0 to 4.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](37abcedcc1...3b5e8027fc)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-10 16:33:02 +01:00
Pedro Alves
41be2b4832 refactor(cuda): Refactor the amortized PBS. 2023-02-09 17:14:47 +01:00
youben11
59d35619a8 feat: lower and exec boolean mux 2023-02-09 09:43:48 +01:00
Agnes Leroy
2a299664e7 chore(cuda): refactor cuda errors, remove deprecated files 2023-02-08 14:12:55 +01:00
Beka Barbakadze
3cd48f0de2 feat(cuda): add a new fft algorithm.
- FFT can work for any polynomial size, as long as twiddles are provided.
 - All the twiddles fit in the constant memory.
 - Bit reverse is not used anymore, no more sw1 and sw2 arrays in constant memory.
 - Real to complex compression algorithm is changed.
 - Twiddle initialization functions are removed.
2023-02-08 00:49:44 +04:00
youben11
d0ae2563fa test: add chunked eint e2e tests 2023-02-07 12:27:01 +01:00
youben11
7e60f87141 refactor: remove chunked_eint
the pass transforming operations on chunked_eint will operate now on
eint
2023-02-07 12:27:01 +01:00
youben11
bb87d29934 feat: support chunked integer during enc/dec/exec 2023-02-07 12:27:01 +01:00
youben11
d41d14dbb8 feat: lower FHE.add on eint64 to ops on smaller chunks
this is a first commit to support operations on U64 by decomposing them
into smaller chunks (32 chunks of 2 bits). This commit introduce the
lowering pass that will be later populated to support other operations.
2023-02-07 12:27:01 +01:00
aPere3
fb680340f9 feat(concrete-compiler): add new ciphertext multiplication operator 2023-02-06 11:30:31 +01:00
rudy
117e15cc05 fix: build python package during build 2023-02-06 09:36:29 +01:00
rudy
a01fab0a90 feat: Makefile, python-package target 2023-02-06 09:36:29 +01:00
rudy
37421774a0 fix: python package requires wheel 2023-02-06 09:36:29 +01:00
aPere3
a200ce43bd fix p-error in mul_eint_int test 2023-02-03 16:19:43 +01:00
aPere3
e95c53f2ff feat: support signed execution
Author: aPere3 <alexandre.pere@zama.ai>
Co-authored-by: Umut <umutsahin@protonmail.com>
2023-02-03 16:19:43 +01:00
aPere3
f913c39e5b fix(format): fix linter complaining 2023-02-03 14:29:17 +01:00
aPere3
9a6309a079 fix(concrete-compiler): add end-to-end tests for tensor ops 2023-02-03 14:29:17 +01:00
aPere3
002be243be fix(concrete-compiler): fix bug in crt slice ops 2023-02-03 14:29:17 +01:00
aPere3
2fbcd1a792 fix(concrete-compiler): reassociation maps are incorrect in crt mode
See #890.
2023-02-03 14:29:17 +01:00
rudy
c6a44e9091 fix(ci):remove now useless step to free space 2023-02-02 14:28:54 +01:00
Quentin Bourgerie
63334e138f fix: Fixing integer extension for plaintext encoding (close #847) 2023-02-02 14:28:23 +01:00
rudy
b1bc6730f9 fix: update optimizer, new cache VERSION for security curves 2023-02-02 14:27:32 +01:00
rudy
85abbeadae fix: security curves has been updated, risk of reusing old cache 2023-02-01 14:45:22 +01:00
Andi Drebes
73fd6c5fe7 refactor(compiler): FHE to TFHE: Use OpConversionPattern for dialect conversion
Use `OpConversionPattern` instead of `OpRewritePattern` for operation
conversion during dialect conversion. This makes explicit and in-place
type conversions unnecessary, since `OpConversionPattern` already
properly converts operand types and provides them to the rewrite rule
through an operation adaptor.

The main contributions of this commit are the two class templates
`TypeConvertingReinstantiationPattern` and
`GenericOneToOneOpConversionPattern`.

The former allows for the definition of a simple replacement rule that
re-instantiates an operation after the types of its operands have been
converted. This is especially useful for type-polymorphic operations
during dialect conversion.

The latter allows for the definition of patterns, where one operation
needs to be replaced with a different operation after conversion of
its operands.

The default implementations for the class templates provide
conversions rules for operations that have a generic builder method
that takes the desired return type(s), the operands and (optionally) a
set of attributes. How attributes are discarded during a conversion
(either by omitting the builder argument or by passing an empty set of
attributes) can be defined through specialization of
`ReinstantiationAttributeDismissalStrategy`.

Custom replacement rules that deviate from the scheme above should be
implemented by specializing
`TypeConvertingReinstantiationPattern::matchAndRewrite()` and
`GenericOneToOneOpConversionPattern::matchAndRewrite()`.
2023-02-01 14:27:10 +01:00
Umut
96f9c54df3 docs: fix a typo in rounded table lookup tutorial 2023-02-01 13:37:10 +01:00
Quentin Bourgerie
49b8bf484c fix: Do not assert fail with too large weight and fix computation of 2-Norm with negative weigth (close #892) 2023-02-01 10:50:46 +01:00
Umut
b39ebc6f41 chore: introduce is pre-release environment variable back for github releases 2023-01-31 11:23:14 +01:00
Umut
0ede5e4330 chore: refactor release action for the new workflow 2023-01-31 10:25:46 +01:00
Umut
51e6aedb81 chore: use ubuntu 22.04 instead of 20.04 everywhere 2023-01-31 10:25:46 +01:00
Quentin Bourgerie
227a0747fa tests: Remove too invasif test 2023-01-30 15:14:53 +01:00
Quentin Bourgerie
d0308dda43 chore: Use parameters curves generated files and expose security level options 2023-01-30 15:14:53 +01:00
Antoniu Pop
f60bd16e2b fix(GPU): remove transfers of uninitialized data to GPU. 2023-01-30 15:08:38 +01:00
Umut
1c08eef285 chore: remove non-essential packages from release image 2023-01-30 14:22:26 +01:00
Umut
c1e542ce0e chore: unpin python version in release docker 2023-01-30 12:42:45 +01:00
Umut
6d6717a954 chore: bump version to v0.10.0 2023-01-30 11:49:48 +01:00
Umut
2e7e527d34 feat: bump compiler to v0.23.4 2023-01-30 11:49:48 +01:00
Umut
4eaa7a35eb chore: unpin python version in development docker 2023-01-30 11:36:30 +01:00
Umut
4e1912365c chore: update ci to always push to pypi 2023-01-30 10:39:19 +01:00
Umut
3bd062a1f3 chore: use ubuntu 22.04 in docker 2023-01-30 10:39:19 +01:00
Agnes Leroy
bd9cbbc7af fix(cuda): fix asynchronous behaviour for pbs and wop pbs 2023-01-28 14:20:34 +01:00