Commit Graph

982 Commits

Author SHA1 Message Date
David Testé
be2a377aaf chore(ci): automaticaly trigger aws build on commit push in pr 2023-01-11 17:39:05 +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
5797d73683 fix(ci): docker build, use --ssh instead of -v 2023-01-06 17:00:17 +01:00
rudy
7bcb3377fa fix(ci): docker build, no ssh forward for hpx and cuda 2023-01-06 17:00:17 +01:00
rudy
3c8c1819a8 fix(ci): rebuild docker image when workflow file is updated 2023-01-06 17:00:17 +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
Quentin Bourgerie
55ea6f8e1b chore(ci): Include cuda toolkit in concrete compiler env 2023-01-03 15:45:10 +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
04ea0ab148 fix: ci, build optimizer in docker 2022-12-22 20:08:07 +01:00
rudy
f7533d47eb fix: --force-encoding crt 2022-12-22 12:16:58 +01:00
rudy
11358bdb09 fix(optimizer): submodule shallow=False 2022-12-20 17:13:59 +01:00
David Testé
99082d1473 chore(ci): use name field instead of run_name in benchmark results
In case of benchmark_repetitions > 1 using 'run_name' will return
always the same name for a given benchmark case. It won't make the
distinction between the iterations and the aggregated values like
mean, median or stdev. Using 'name' field fix this behavior.
2022-12-20 13:14:44 +01:00
rudy
36dc249712 fix: disabling keysetcache until test on aws 2022-12-15 12:40:43 +01:00
rudy
8641b52782 fix: keysetcache name typo 2022-12-14 12:14:53 +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
Quentin Bourgerie
ee2ae3ead3 chore(docker): Prune hpx and cuda images 2022-12-14 09:07:48 +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
Quentin Bourgerie
7826997d84 chore(cuda): Remove cuda sdk from docker concrete compiler env because no space left on github action runners 2022-12-13 13:32:50 +01: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
rudy
2dce654406 feat: hpx ready for aws 2022-12-13 10:30:57 +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
b08ccbbfb5 fix(ci): Select cpu by default for benchmark on main 2022-12-09 13:23:00 +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
Andi Drebes
b7805f00d3 feat(compiler): Add op interface SDFGConvertibleOpInterface
This adds a new operation interface `SDFGConvertibleOpInterface` that
allows an operation to specify how it is converted to an SDFG
process. The interface consists of a single method `convert` that
receives as the arguments the DFG created using `SDFG.init`, a set of
SDFG input streams corresponding to the operands and a set of output
streams for results. The order of the input and output streams
corresponds to the order of the operands and output values,
respectively.
2022-12-08 14:54:14 +01:00
Andi Drebes
9f3615513b feat(compiler): Add new dialect SDFG for static data flow graphs
This adds a new dialect called "SDFG" for data flow graphs. An SDFG
data flow graph is composed of a set of processes, connected through
data streams. Special streams allow for data to be injected into and
to be retrieved from the data flow graph.

The dialect is intended to be lowered to API calls that allow for
offloading of the graph on hardware accelerators.
2022-12-08 14:54:14 +01:00
rudy
5516a55c1c feat: option to force cyphertext encoding 2022-12-08 14:42:25 +01:00
youben11
d7be50bb53 docs: update installation instructions 2022-12-08 07:45:55 +01:00
youben11
65235408bc chore: build rust package using install dir 2022-12-08 07:45:55 +01:00