mirror of
https://github.com/zama-ai/concrete.git
synced 2026-02-18 00:21:36 -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).
1.1 KiB
1.1 KiB
'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 |