Commit Graph

3561 Commits

Author SHA1 Message Date
aquint-zama
ee8508414f docs(frontend-python): fix redirection 2024-05-21 11:05:22 +02: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
Umut
0b161c436f feat(compiler): fancy indexing operation 2024-05-15 11:21:46 +03:00
Bourgerie Quentin
efe223e181 fix(compiler): Share the decompress state instead of try to avoid copies
This partially reverts commit 081e8b7b74.
nightly-2024.05.15
2024-05-14 15:08:34 +02:00
Ayoub Benaissa
c740503b0e fix(ci): use GITHUB_TOKEN for workflow dispatch 2024-05-14 13:39:22 +01:00
Ayoub Benaissa
bf76d8f1b4 fix(ci): fail when build cmd fail nightly-2024.05.14 2024-05-13 11:39:06 +01:00
Ayoub Benaissa
a9cdc0f890 fix(ci): remove dependence between diff py repo pushes
we don't want one push failure to impact the others
2024-05-13 11:39:06 +01:00
youben11
20590cf6df fix(ci): make docker push on public release nightly-2024.05.09 nightly-2024.05.10 2024-05-08 12:18:39 +01:00
youben11
d5a1bbdad5 feat(ci): release CP to new zama public pypi nightly-2024.05.08 2024-05-07 12:18:18 +01:00
aquint-zama
622df68b34 docs(frontend-python): fix redirections nightly-2024.05.07 2024-05-06 15:47:51 +02:00
Bourgerie Quentin
081e8b7b74 fix(compiler): Decompression of evaluation keys was done several times 2024-05-06 11:53:34 +02:00
rudy
b0301483ff chore(frontend-python): requires 99% coverage nightly-2024.05.04 2024-05-03 14:09:55 +02:00
Antoniu Pop
fe2682a78e docs(compiler): Add documentation for enabling and configuring GPU offloading. 2024-05-03 11:58:56 +01:00
Antoniu Pop
73d254162b feat(compiler): [GPU runtime] add heuristic estimate of GPU vs. CPU core ratio and update CPU HW threads usedwhen not specified by user. 2024-05-03 11:58:56 +01:00
Antoniu Pop
05ee0a59c9 fix(compiler): [GPU backend] add SDFG_MAX_BATCH_SIZE environment variable to control batching limit. 2024-05-03 11:58:56 +01:00
Antoniu Pop
904cbae70a fix(compiler): [GPU backend] Restrict SDFG generation and batching to bootstrapping subgraphs to limit overhead. Restricts loop parallelism in loop nests where SDFG put/get operations occur as they have side effects. 2024-05-03 11:58:56 +01:00
Antoniu Pop
a431c9d4ef feat(compiler): [GPU backend] enable parallel loop collapsing for GPU backend using batching and fix loop coalescing infrastructure in MLIR to allow operation before bufferization. 2024-05-03 11:58:56 +01:00
Antoniu Pop
a3a6216cbf feat(compiler): [GPU runtime] add basic support for multiple keys on GPU. 2024-05-03 11:58:56 +01:00
Alexandre Péré
b96fecea16 chore(optimizer): please new rust compiler lints 2024-05-03 10:15:47 +02:00
Alexandre Péré
36cf48113a fix(optimizer): faulty output regeneration 2024-05-03 10:15:47 +02:00
Alexandre Péré
6f323e58a2 fix(optimizer): broken viz macro 2024-05-03 10:15:47 +02:00