Commit Graph

3580 Commits

Author SHA1 Message Date
Benoit Chevallier-Mames
66c47b8312 docs(frontend): forcing a single round to start 2024-05-27 16:12:21 +02:00
Benoit Chevallier-Mames
072edc0f7a docs(frontend): adding a SHA1 without Module 2024-05-27 16:04:57 +02:00
Benoit Chevallier-Mames
08f54d875c docs(frontend): fix link 2024-05-27 14:44:05 +02:00
Benoit Chevallier-Mames
bcd663ff99 docs(frontend): remove MLIR 2024-05-27 14:37:38 +02:00
Benoit Chevallier-Mames
c17e8214ba docs(frontend): reviews 2024-05-27 14:35:54 +02:00
Benoit Chevallier-Mames
2be85e16c5 docs(frontend): merge 2024-05-27 14:29:15 +02:00
Benoit Chevallier-Mames
e5b1ce3695 docs(frontend): review 2024-05-27 14:25:31 +02:00
Benoit Chevallier-Mames
ebc64ac8df docs(frontend): adding a SHA1 tutorial with modules 2024-05-27 14:25:19 +02:00
Benoit Chevallier-Mames
d0e17894f5 docs(frontend): adding a SHA1 tutorial with modules 2024-05-27 14:24:34 +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
Andi Drebes
ea41400b90 feat(compiler): Type inference: Delegate enumeration of related values to TypeResolver
This delegates the enumeration of values related to an operation to
the class `TypeResolver`. This allows for the customization of this
process via a class inheriting `TypeResolver`.
2024-05-16 12:07:51 +02:00
Andi Drebes
c3366d9eef feat(compiler): Type Inference: Add support for tensor.dim 2024-05-16 12:07:51 +02:00
Andi Drebes
b297de93c4 refactor(compiler): Type inference: Generalize constraint for equal element types to nested types 2024-05-16 12:07:51 +02:00
Ayoub Benaissa
57c783a143 fix(ci): remove unused conditions 2024-05-16 10:35:35 +01:00
Ayoub Benaissa
945fb553c7 feat(ci): add workflow to push wheels from Zama PyPI to public PyPI 2024-05-16 10:35:35 +01:00
Ayoub Benaissa
19afbd9aff chore(ci): install CP from Zama PyPI 2024-05-16 10:35:35 +01:00
Ayoub Benaissa
5ae89afee5 chore(ci): do not push to public pypi on release 2024-05-16 10:35:35 +01:00
youben11
b6a43cfc5c feat(compiler/simu): support signed integers nightly-2024.05.16 2024-05-15 10:53:42 +01:00
youben11
c655856b1c test(compiler): overflow in simulation 2024-05-15 10:53:42 +01:00
youben11
cae77e89bf feat(compiler/simu): add loc in overflow warnings 2024-05-15 10:53:42 +01:00
youben11
b953d57fe4 feat(compiler): warn when there is overflow in sim (native encoding) 2024-05-15 10:53:42 +01:00
youben11
001aba6809 refactor(compiler, simu): rewrite add/mul to CAPI calls 2024-05-15 10:53:42 +01:00
Umut
8fef2ab114 docs(compiler): update documentation of dialects 2024-05-15 11:21:46 +03:00
Umut
d954b279e8 fix(compiler): use exact passes on check tests to avoid reordering when new passes are introduced 2024-05-15 11:21:46 +03:00
Umut
8e4d237364 feat(compiler): fancy assignment 2024-05-15 11:21:46 +03:00
Umut
6e36d0f801 feat(compiler): tensor.generate to scf.forall 2024-05-15 11:21:46 +03:00