Commit Graph

3596 Commits

Author SHA1 Message Date
Alexandre Péré
5185940807 feat(frontend): add support for wires to concrete-python 2024-06-11 13:23:03 +02:00
yuxizama
66d70b7925 docs(frontend): correct license copyright year nightly-2024.06.11 2024-06-10 17:41:46 +02:00
yuxizama
d31088093e docs(frontend): add license FAQ in README 2024-06-10 17:41:46 +02:00
dependabot[bot]
96088cedf5 chore(ci): bump dawidd6/action-download-artifact from 3 to 5
Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 3 to 5.
- [Release notes](https://github.com/dawidd6/action-download-artifact/releases)
- [Commits](https://github.com/dawidd6/action-download-artifact/compare/v3...v5)

---
updated-dependencies:
- dependency-name: dawidd6/action-download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-10 17:26:29 +02:00
aquint-zama
b0ce318f87 fix(ci): add missing depth for retrieving tag 2024-06-10 09:23:40 +02:00
aquint-zama
e92cfa01fc feat(ci): add SLSA provenance
https://slsa.dev/
nightly-2024.06.08
2024-06-07 14:16:45 +02:00
Benoit Chevallier-Mames
bffa98f320 fix(frontend): fixing other pylint issues nightly-2024.06.07 2024-06-06 15:22:45 +03:00
Benoit Chevallier-Mames
16a0c6db99 fix(frontend): fixing pylint for SHA1 example
closes #https://github.com/zama-ai/concrete-internal/issues/727
2024-06-06 15:22:45 +03:00
Umut
14334f56ed feat(frontend-python): dynamic assignment nightly-2024.06.06 2024-06-05 12:44:42 +03:00
Bourgerie Quentin
db2c7550f5 fix(compiler): Allow uncompressed ciphertext in compressed gate to fix composition + compression nightly-2024.06.05 2024-06-04 16:12:18 +02:00
Benoit Chevallier-Mames
226ee27f64 docs(frontend): adding a SHA1 tutorial with modules nightly-2024.06.01 nightly-2024.06.04 2024-05-31 16:41:24 +02:00
Bourgerie Quentin
3189de8106 chore(ci): Run concrete-ml-test for each PR that modify concrete-python or main push 2024-05-31 16:10:00 +02:00
Alexandre Péré
01824c65a9 chore(frontends): add accessors to client and server for modules nightly-2024.05.31 2024-05-30 09:12:28 +02:00
Antoniu Pop
0a1934c2ee fix(compiler): fix input parameter deserialization where total data input overflows 32bit accumulator. 2024-05-30 08:11:29 +01:00
Umut
c677f83af7 feat(frontend-python): dynamic indexing nightly-2024.05.30 2024-05-29 18:21:46 +03:00
Roman Bredehoft
407b454f07 chore(ci): fix Concrete ML tests script 2024-05-29 14:58:16 +02:00
youben11
d2fca9f2bb feat(ci): release GPU wheel for concrete-python nightly-2024.05.29 2024-05-28 16:09:48 +01:00
youben11
6f35a8be81 test(frontend): test tfhers integers 2024-05-28 14:44:20 +01:00
youben11
a3c855439a feat(frontend): add compatibility with tfhers integer
- add new tfhers types
- add conversion functions between concrete and tfhers types
- support conversion function in the compilation pipeline
2024-05-28 14:44:20 +01:00
youben11
498d6fe326 fix(frontend): update in place to be able to support other int types
this comes from the need of supporting tfhers integers, which would get
erased by this recreation of the dtype, so instead we would update the
dtype inplace
2024-05-28 14:44:20 +01:00
youben11
710d321adc fix(frontend): manage the case of bound measurement using 1 elem 2024-05-28 14:44:20 +01:00
Alexandre Péré
15816354aa feat(optimizer): add support for circuits and composition rules 2024-05-28 09:10:04 +02:00
youben11
974830e40d fix(compiler): control overflow detection for LUT via flag 2024-05-28 07:28:45 +01:00
Bourgerie Quentin
7b35d2446b chore(ci): Remove permissions on the main workflow which prevents CI to be run from external contributors nightly-2024.05.28 2024-05-27 14:49:17 +02:00
Umut
3f1dc330ad fix(frontend-python): change input bit-width only when tlu is optimized based on original bit-width during table generation 2024-05-27 14:48:55 +02:00
sukrucildirr
aa6e5d9ce1 fix(compiler): fixing a broken path 2024-05-27 11:28:50 +02:00
aquint-zama
08a1871252 chore(compiler): update black dev dependency nightly-2024.05.25 2024-05-24 09:48:15 +02:00
youben11
6637b659db feat(compiler/frontend): add flag to enable/disable overflow detection
in simulation
2024-05-24 07:52:03 +01:00
aquint-zama
3740d38481 chore(frontend-python): update black dev dependency nightly-2024.05.24 nightly-2024.05.23 2024-05-22 17:13:54 +02:00
Ayoub Benaissa
4726d20078 fix(ci): fetch tags nightly-2024.05.22 2024-05-22 14:52:18 +01:00
yuxizama
0157734473 docs(frontend): language edits 2024-05-22 15:14:15 +02:00
aquint-zama
e546103469 chore(common): fix typo in README 2024-05-22 11:39:36 +02:00
aquint-zama
db5f01eab1 docs(frontend-python): fix redirection 2024-05-22 11:38:42 +02:00
rudy
ace7f2191c fix(frontend-python): optimize extract bits
lsb and tlu calls were not minimized
2024-05-22 09:03:11 +02:00
Ayoub Benaissa
afeccd85bd fix(ci): update nightly version format to MAJOR.MINOR.PATCH-devYEARMONTHDAY
also set nightly version for both macos and linux
2024-05-21 14:45:09 +01:00
Ayoub Benaissa
80b25ffa0c fix(ci): do not continue on linux build errors 2024-05-21 14:45:09 +01:00
Ayoub Benaissa
19012abfa0 chore(ci): version nightlies as prereleases
nightly releases should now a more meaningful version format: MAJOR.MINOR.PATCH-devYEAR.MONTH.DAY
2024-05-17 16:05:37 +01:00
youben11
06101e9678 docs(frontend): update installation instructions
make a note about the new Zama PyPI
2024-05-17 09:32:54 +01:00
Ayoub Benaissa
04fdec10a4 chore(ci): release nightly to Zama PyPI nightly-2024.05.17 2024-05-16 15:51:00 +01:00
Ayoub Benaissa
82439432d2 chore(ci): use a better explanation for the input 2024-05-16 11:53:10 +01:00
Ayoub Benaissa
c432025cbb fix(ci): use correct flags to download s3 files 2024-05-16 11:53:10 +01:00
Andi Drebes
2caafc7f3b feat(compiler): Allow dag-multi optimization strategy for data-flow parallelization
With the type inference pass now being able to handle RT operations
and multiple functions, the restriction disallowing data-flow
parallelization when choosing the dag-multi optimization strategy can
be lifted. Remove the check and bail out in `CompilerEngine.cpp`.
2024-05-16 12:07:51 +02:00
Andi Drebes
1703f08e78 feat(compiler): Type Inference: Add support for RT operations
This adds support for the operations `RT.await_future`,
`RT.build_return_ptr_placeholder`, `RT.create_async_task`,
`RT.deref_return_ptr_placeholder`,
`RT.deref_work_function_argument_ptr_placeholder`,
`RT.make_ready_future`, `RT.register_task_work_function`, and
`RT.work_function_return`, the RT types `RT.ptr` and `RT.future`, as
well as the auxiliary operation `arith.select`.
2024-05-16 12:07:51 +02:00
Antoniu Pop
2da8644e57 fix(compiler): fix lowering of tasks generated from loop tiling pass. 2024-05-16 12:07:51 +02:00
Andi Drebes
a5afb1f0a6 feat(compiler): Type Inference: Add support for multiple functions
The type inference pass currently only supports a single function as
it is unable to infer types across function boundaries. This commit
adds support for multiple functions and tracks types across
`func.func`, `func.call` and function `constant` operations.
2024-05-16 12:07:51 +02:00
Andi Drebes
d270886091 refactor(compiler): Type inference: Enable debugging output for entire modules 2024-05-16 12:07:51 +02:00
Andi Drebes
26bed92ee7 fix(compiler): Type Inference: Defer erasure of functions to the end of the rewriting
A function may be referenced at multiple sites, including at locations
that have not been visited by the rewriter when the function itself is
rewritten. By using `IRRewriter::replaceOp` after rewriting a
function, the function is erased immediately, which may cause the
rewriting to fail due to remaining uses of the function.

Defering the erasure of functions to the end of the entire rewriting
process ensures that all uses of the original functions have been
updated to the rewritten functions.
2024-05-16 12:07:51 +02:00
Andi Drebes
c1d742adf0 fix(compiler): Type Inference: Support ops with regions containing multiple blocks
Operations with regions containing multiple blocks are currently not
handled correctly, since the list of successors of an operation is not
updated with rewritten blocks when the operation is
rewritten. Furthermore, functions were assumed to have only a single
block.

This change supports operations with multiple blocks by fixing the
issues above.
2024-05-16 12:07:51 +02:00
Andi Drebes
c371269896 fix(compiler): Type Inference: Allow unresolved types in TypeInferenceUtils::getInferredType 2024-05-16 12:07:51 +02:00
Andi Drebes
ebb08c788f fix(compiler): Type Inference: Register dependencies between op and its related values
Updates of the types inferred for the values related to an operation
only propagate correctly to the operation if there is a direct
producer-consumer relationship or an indirect producer-consumer
relationship via some additional mechanism (e.g., region
successors). However, this is not sufficient to ensure updates of
values and operations that are related otherwise.

This change explicitly models the dependencies between related values
and an operation via `DataFlowAnalysis::addDependency` in order to
guarantee that all updates of the types of values are propagated to
all operations that the type resolver has designated as related
operations.

Furthermore, all operations are visited once initially in order to
guarantee that updates propagate to operations, for which the dataflow
framework does not invoke `visitOperation`.
2024-05-16 12:07:51 +02:00