Commit Graph

1043 Commits

Author SHA1 Message Date
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
rudy
717c8c815f fix: ci macos test 2023-02-13 09:20:25 +01:00
youben11
59d35619a8 feat: lower and exec boolean mux 2023-02-09 09:43:48 +01: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
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
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
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
youben11
36f51ba0c2 feat: lower and exec boolean ops 2023-01-26 11:22:41 +01:00
tmontaigu
ee00672996 feat(rust): partially bind CircuitGate, EncryptionGate
This adds partial bindings of the CircuitGate, EncrytionGate
and Encoding types for the rust frontend
2023-01-24 15:49:44 +01:00
tmontaigu
8e8651c6a6 chore(rust): rename crate
Renames the crate from `concrete_compiler_rust` to
`concrete-compiler`.

- The `_rust` is removed as its redundant, the crate is a rust project.
- The `_` are replaced with `-` as its the naming scheme for our other
  crates
2023-01-23 11:01:23 +01:00
rudy
bac3ed38e0 fix: apply_multi_lookup_table, remove costly workaround
Closes #881
2023-01-23 09:53:25 +01:00
rudy
b7668a7256 fix: apply_mapped_lookup_table, remove costly workaround
Closes #880
2023-01-19 14:57:18 +01:00
Quentin Bourgerie
d1ddd60a23 fix: Fixing the MANP computation for conv2d (close #883) 2023-01-19 13:32:59 +01:00
Antoniu Pop
0329d4fc2d fix(gpu-wrappers): fix KS/BS wrappers for GPU (memory management). 2023-01-18 19:33:07 +00:00
tmontaigu
ddf905b4db chore(rust): impl std::error::Error for CompilerError
All types which are errors should impl
the std::error::Error trait.

So that for example they could be put inside
a `Box<dyn std::error::Error>`.
2023-01-18 09:55:47 +01:00
youben11
95d49f4657 feat: add boolean types/ops in FHE dialect 2023-01-18 09:13:26 +01:00
tmontaigu
7c19da974a chore(rust): remove 'get_' prefix from getters
In rust the convention/guideline for getters is not to prefix them with `get_`.

This commit changes any `get_` getter function to follow that guideline.

See the API Guidelines: https://rust-lang.github.io/api-guidelines/naming.html?highlight=getter#getter-names-follow-rust-convention-c-getter
2023-01-17 15:24:59 +01:00
tmontaigu
e1171cf55f chore(rust): mark BufferRef::new as unsafe 2023-01-17 15:24:52 +01:00
David Testé
bc58e25d2a chore(ci): trigger prepare release workflow on version tag push
The CI don't wait anymore on other builds to trigger release
preparation workflow. It's up to the team to be sure that builds
are passing before pushing a new version tag on default branch.
In addition build workflows will run only when there is push on
default branch. Nothing will happend when a version tag is pushed
now.
2023-01-16 17:21:18 +01:00
tmontaigu
6f0fbc8a3d feat(rust): add from_tensor_[u32|u16] 2023-01-15 22:57:31 +01:00
tmontaigu
c9f3983577 fix(rust): serialize functions take self by ref 2023-01-14 11:45:58 +01:00
tmontaigu
6348eda50e fix(rust): properly give an array of location to mlirBlockCreate
The MlirBlock constructor expects one location per input argument
of the block.
2023-01-13 20:18:06 +01:00
tmontaigu
d188cfae54 fix(rust): change tinfo linking to ncurses
- tinfo is a part of the ncurses project.
- tinfo does not seem easily installable stand alone
  (no brew install tinfo, no dnf install tinfo-devel, etc)
  but installing ncurses is possible and generally makes tinfo
  'findable'
- on macos (M1 mac) it seems that even with ncurses installed
  tinfo is not found, but linking to ncurses fixes the problem
2023-01-13 19:32:50 +01:00
David Testé
2fe402f55e chore(ci): build docker images on aws ec2 to speed up process 2023-01-13 15:31:15 +01:00
David Testé
be45125ef8 chore(ci): remove steps related to keysetcache in aws builds 2023-01-13 14:58:16 +01:00
tmontaigu
237c7eee9b fix: remove unused but set variable 2023-01-13 13:05:22 +01:00
youben11
73a8e57fae fix(dockerfile): use ecdsa instead of rsa 2023-01-13 11:43:05 +01:00
youben11
f6edcd28e9 ci: release linux python wheels with cuda support 2023-01-13 11:43:05 +01:00
David Testé
fd2ce968ea chore(ci): move doc publishing to aws build for cpu
This is done to handle downloading of documentation artifacts.
Doing this between separate workflow is troublesome especially when
you have to wait on serveral of them.
2023-01-13 10:14:58 +01:00
youben11
9c370e1cec ci: fix macos release tarball 2023-01-12 17:56:53 +01:00
rudy
456e1952f5 fix: not private side effect in woppbs wrapper
Fix #865
2023-01-12 17:15:26 +01:00
David Testé
bf127e0846 chore(ci): move docker images publishing to its own workflow
This removes the old continuous-integration.yml file. Thus it
finalizes the splitting operation.
2023-01-12 14:43:08 +01:00