Commit Graph

2478 Commits

Author SHA1 Message Date
Pedro Alves
b0a362af6d refactor(cuda): Implements support to k>1 on cbs+vp. 2023-02-27 17:14:30 +01:00
Pedro Alves
7896d96a49 refactor(cuda): Implements support to k>1 on bit extraction. 2023-02-27 17:14:30 +01:00
Pedro Alves
eb8aeb5a01 refactor(cuda): Implements support to k>1 on cmux tree. 2023-02-27 17:14:30 +01:00
Pedro Alves
184d453387 refactor(cuda): Implements support to N=256 in the cmux tree, bit
extraction, and cbs.
2023-02-27 17:14:30 +01:00
aPere3
15f07addc7 fix(concrete-compiler): abort compilation on first error
To prevent infinite compilation in case of potential circular
includes
2023-02-27 10:59:28 +01:00
Mayeul@Zama
220d733e98 chore(cmake): use HPX_INCLUDE_DIRS for ConcretelangRuntime only 2023-02-27 10:56:35 +01:00
rudy
00b9ebc60a fix: benchmark use the encoding field 2023-02-27 10:54:57 +01:00
Umut
a7c97dcfa1 chore: bump version to v1.0.0-rc1 2023-02-24 11:45:54 +01:00
Quentin Bourgerie
7ac6a97c85 chore(ci): Fix benchamrk on main as inputs are not setup for automatic merge benchmark 2023-02-24 11:27:55 +01:00
Quentin Bourgerie
7070eff562 chore(ci): Fix benchmark workflow 2023-02-24 10:17:28 +01:00
Umut
8d89614d8a feat: raise error if tracers are tried to be converted to bool 2023-02-24 10:07:47 +01:00
Umut
3bbb0c2aa3 refactor: remove virtual option 2023-02-24 10:05:28 +01:00
Agnes Leroy
75e9baae78 refactor(cuda): introduce scratch for low latency pbs 2023-02-22 16:49:43 +01:00
youben11
f2c1dc6392 fix: set client parameters with correct chunked int options
were set with default values
2023-02-22 10:50:26 +01:00
Quentin Bourgerie
4e0f0fa5b0 fix(manp): Fixing computation of negative constant 2023-02-21 18:04:13 +01:00
youben11
2e5f92b6b8 refactor: remove BConcrete dialect
- no more Concrete ciphertext/plaintext types: they are represented using standard MLIR types (int/tensor)
- Technically BConcrete was renamed to Concrete, and old Concrete was
  removed
- TFHE -> Concrete now takes into account the conversion of tensor of
  ciphertext into tensors of an additional dimension (LWE dim)
- Bufferization now works in Concrete
- Old Concrete optimization were moved to TFHE
- Concrete is now the dialect that lowers to CAPI calls
- TFHE -> Concrete now uses OpConversionPattern and is much cleaner in
  terms of type conversion
- Disabled tests for batching, as there was something weird about it:
  batchable operations implemented in Concrete but pass run in FHELinalg
2023-02-21 16:16:55 +01:00
Umut
d8eafabd22 feat: implement manual manp calculation for FHE.mul_eint 2023-02-21 14:25:26 +01:00
Umut
bc69c87d62 feat: implement maxpool2d operation 2023-02-21 14:25:26 +01:00
Alexandre Péré
56bdb05be3 feat(concrete-compiler): implement a new round operator in the fhe dialect 2023-02-20 08:57:30 +01:00
Quentin Bourgerie
3175d2ec85 chore: fix typo in benchmark workflow 2023-02-17 15:17:25 +01:00
Quentin Bourgerie
8fab9a4038 chore: select benchmark name in benchmark workflow 2023-02-17 15:06:15 +01:00
Quentin Bourgerie
0307227431 tests: Add cifar_8bits benchmark 2023-02-17 14:46:27 +01:00
Quentin Bourgerie
4a3c33b60a tests: Remove unsigned prefix to have the same reference than before 2023-02-17 14:08:34 +01:00
Agnes Leroy
5cd0cb5d19 refactor(cuda): introduce scratch for amortized PBS 2023-02-17 13:51:41 +01:00
Alexandre Péré
52ad40c9cf feat(concrete-compiler): adds a tracing op in all dialects. 2023-02-17 09:04:42 +01:00
Umut
ddba09fa32 chore: bump version to v0.11.0 2023-02-16 16:49:49 +01:00
Umut
d595e9e50f feat: overhaul virtual circuits 2023-02-16 16:08:35 +01:00
Umut
656761346a feat: improve accuracy of p_error simulation in virtual circuits 2023-02-16 10:04:30 +01:00
Agnes Leroy
2a487ffbfd refactor(cuda): introduce scratch for blind rotation and sample extraction 2023-02-16 09:31:49 +01:00
Agnes Leroy
870d896ad9 refactor(cuda): introduce cmux tree scratch 2023-02-15 17:32:12 +01:00
Agnes Leroy
e6dfb588db refactor(cuda): prepare to introduce cmux tree scratch 2023-02-15 17:32:12 +01:00
Umut
840c0eba8c fix: mlir conversion of np.integer slices during indexing and assignment 2023-02-15 17:25:03 +01:00
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