mirror of
https://github.com/zama-ai/concrete.git
synced 2026-02-18 16:34:43 -05:00
This adds a new dialect called `Optimizer` with operations related to the Concrete Optimizer. Currently, there is only one operation `optimizer.partition_frontier` that can be inserted between a producer and a consumer which belong to different partitions computed by the optimizer. The purpose of this operation is to preserve explicit key changes from the invocation of the optimizer on high-level dialects (i.e., FHELinalg / FHE) until the IR is provided with actual references to keys in low-level dialects (i.e., TFHE).
43 lines
1.1 KiB
Markdown
43 lines
1.1 KiB
Markdown
<!-- Autogenerated by mlir-tblgen; don't manually edit -->
|
|
# 'Optimizer' Dialect
|
|
|
|
Auxiliary operations for the interaction with the optimizer
|
|
|
|
|
|
## Operation definition
|
|
|
|
### `Optimizer.partition_frontier` (::mlir::concretelang::Optimizer::PartitionFrontierOp)
|
|
|
|
Models an explicit edge between two partitions
|
|
|
|
Models an explicit edge between two partitions in the solution
|
|
determined by the optimizer requiring a key change between the
|
|
encrypted values of the operand and the encrypted values of
|
|
the result.
|
|
|
|
Traits: AlwaysSpeculatableImplTrait
|
|
|
|
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
|
|
|
|
Effects: MemoryEffects::Effect{}
|
|
|
|
#### Attributes:
|
|
|
|
| Attribute | MLIR Type | Description |
|
|
| :-------: | :-------: | ----------- |
|
|
| `inputKeyID` | ::mlir::IntegerAttr | 64-bit signless integer attribute
|
|
| `outputKeyID` | ::mlir::IntegerAttr | 32-bit signless integer attribute
|
|
|
|
#### Operands:
|
|
|
|
| Operand | Description |
|
|
| :-----: | ----------- |
|
|
| `input` | any type
|
|
|
|
#### Results:
|
|
|
|
| Result | Description |
|
|
| :----: | ----------- |
|
|
«unnamed» | any type
|
|
|