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
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
tmontaigu
237c7eee9b
fix: remove unused but set variable
2023-01-13 13:05:22 +01:00
rudy
456e1952f5
fix: not private side effect in woppbs wrapper
...
Fix #865
2023-01-12 17:15:26 +01:00
David Testé
ea5000aecb
chore(ci) fix build on aws ec2
...
Use the right make rule target for testing the GPU and CPU.
2023-01-11 17:39:05 +01:00
youben11
91d41a2ff8
fix: add call to init dfr from python
...
Co-authored-by: Antoniu Pop <antoniu.pop@zama.ai >
2023-01-11 14:45:14 +01:00
tmontaigu
add68ccf84
fix(Makefile): update install target to work on macOS
2023-01-10 18:05:46 +01:00
rudy
d1cf650817
fix: overflow on high log norm2
2023-01-05 11:24:38 +01:00
rudy
bea7c6c1f6
fix: force a test to native encoding
2023-01-04 17:41:49 +01:00
rudy
80818bfc5d
feat: use optimized private packing keyswitch
2023-01-04 17:41:49 +01:00
youben11
8c6a0859cd
refactor(rust): add Rust wrapper for every CStruct
...
we want to wrap CStructs in RustStructs to own them, and free memeory
when they are no longer used. Users won't have to deal with the direct
binded CAPI, but the new wrappers
2023-01-02 12:10:14 +01:00
Antoniu Pop
aa2e0479b3
feat(compiler): add a parallel loop coalescing pass.
2023-01-02 12:04:34 +01:00
Quentin Bourgerie
4e53b83045
test: Report bug 846 introduced by loop coalesce
2023-01-02 12:04:34 +01:00
rudy
e17bbcbab5
fix: macos compiling issue with extra ;
2022-12-22 20:08:28 +01:00
rudy
a2c6763d80
fix: make all builds rust-bindings
2022-12-22 20:08:28 +01:00
rudy
f7533d47eb
fix: --force-encoding crt
2022-12-22 12:16:58 +01:00
rudy
ed2adceafa
test: tensorized test/bench rely on p-error
2022-12-14 09:21:18 +01:00
rudy
de779b2f6f
fix: display compilation error in benchmark
...
the checking of llvm expected was not correct
2022-12-14 09:21:18 +01:00
rudy
bb756a6426
fix: default is global-error-probability=1/100_000
2022-12-14 09:21:18 +01:00
rudy
4ed0c01d8e
feat(optimizer): option to disable optimizer cache
...
--optimizer-no-cache-on-disk
2022-12-13 18:54:40 +01:00
Quentin Bourgerie
d15c9822db
fix(rust-bindings): Fix rust bindings after raise-encoding
2022-12-13 17:01:52 +01:00
Quentin Bourgerie
19fdbf652e
fix(compiler): The crt loops are unary and should be init by a alloc_tensor
2022-12-13 17:01:52 +01:00
aPere3
2fd9b6f0e3
refactor(encodings): raise plaintext/lut encodings higher up in the pipeline
2022-12-13 17:01:52 +01:00
Antoniu Pop
7226c89cf1
enhance(compiler): coalesce loop nests before parallelization.
2022-12-13 15:23:29 +00:00
rudy
b742ac35ae
fix(ci): force crt for 9, 10, 11 for table lookup
2022-12-13 13:21:30 +01:00
Andi Drebes
e2e6df322e
feat(compiler): Add support for full unrolling of loops with SDFG-convertible ops
...
This adds a new option `--unroll-loops-with-sdfg-convertible-ops`,
which causes loops containing SDFG-convertible operations to be fully
unrolled upon the extraction of SDFG-operations using the
`--emit-sdfg-ops` switch. This avoids constant roundtrips between an
SDFG-capable accelerator and the host during execution of a loop.
The option is limited to `scf.for` loops with static bounds and a
static step size. Since full unrolling of loops with large bounds
results in a large number of operations, the option is disabled by
default.
2022-12-13 12:03:51 +01:00
Quentin Bourgerie
37c2627feb
chore(ci): Regenerate the keyset cache
2022-12-12 10:38:44 +01:00
Quentin Bourgerie
607457d34a
fix(compiler): CRT multiplication with negative value ( close : #834 )
2022-12-09 17:28:03 +01:00
Quentin Bourgerie
07aa334d8d
chore(benchmarks): Refactor the benchmark tools
2022-12-09 09:51:23 +01:00
Antoniu Pop
fa1b2dc056
test(SDFG): add unit tests for SDFG and stream emulator.
2022-12-08 14:54:14 +01:00
Antoniu Pop
0dbb86bb36
feat(compiler): add lowering and bufferization for SDFG dialect, generate code to Stream Emulator API.
2022-12-08 14:54:14 +01:00
Antoniu Pop
752f0feb75
feat(runtime): add a stream emulator.
2022-12-08 14:54:14 +01:00
Andi Drebes
ee2f743a78
feat(compiler): Add new action dump-sdfg
...
Add a new action `dump-sdfg` to `concretecompiler` that causes the IR
to be dumpred right after the extraction of SDFG operations.
2022-12-08 14:54:14 +01:00
Andi Drebes
3da32560b7
feat(compiler): Add pass converting operations into SDFG processes
...
This adds a new pass `ExtractSDGOps`, which scans a function for
operations that implement `SDFGConvertibleOpInterface`, replaces them
with SDFG processes and constructs an SDFG graph around the processes.
Initialization and teardown of the SDFG graph are embedded into the
function and take place at the beginning of the function and before
the function's terminator, respectively.
The pass can be invoked using concretecompiler by specifying the new
compilation option `--emit-sdfg-ops` or programmatically on a
`CompilerEngine` using the new compilation option `extractSDFGOps`.
2022-12-08 14:54:14 +01:00
Andi Drebes
9ea6c0e8a3
enhance(compiler): Declare tensor-based BConcrete operations as side-effect-free
2022-12-08 14:54:14 +01:00