Files
concrete/docs/dev/api/concrete.fhe.mlir.converter.md
Benoit Chevallier-Mames e37a840e7e docs(compiler): adding API doc
2024-03-13 17:10:00 +01:00

20 KiB

module concrete.fhe.mlir.converter

Declaration of Converter class.

Global Variables

  • MAXIMUM_TLU_BIT_WIDTH

class Converter

Converter class, to convert a computation graph to MLIR.


method add

add(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method array

array(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method assign_static

assign_static(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method bitwise_and

bitwise_and(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method bitwise_or

bitwise_or(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method bitwise_xor

bitwise_xor(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method broadcast_to

broadcast_to(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method concatenate

concatenate(ctx: Context, node: Node, preds: List[Conversion])

method constant

constant(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method conv1d

conv1d(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method conv2d

conv2d(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method conv3d

conv3d(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method convert

convert(
    graph: Graph,
    configuration: Configuration,
    mlir_context: <locals>Context
)  Module

Convert a computation graph to MLIR.

Args: graph (Graph): graph to convert

configuration (Configuration): configuration to use

mlir_context (MlirContext): MLIR Context to use for module generation

Return: MlirModule: In-memory MLIR module corresponding to the graph


method copy

copy(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method dot

dot(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method dynamic_tlu

dynamic_tlu(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method equal

equal(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method expand_dims

expand_dims(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method extract_bit_pattern

extract_bit_pattern(
    ctx: Context,
    node: Node,
    preds: List[Conversion]
)  Conversion

method greater

greater(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method greater_equal

greater_equal(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method index_static

index_static(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method left_shift

left_shift(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method less

less(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method less_equal

less_equal(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method matmul

matmul(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method maximum

maximum(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method maxpool1d

maxpool1d(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method maxpool2d

maxpool2d(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method maxpool3d

maxpool3d(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method minimum

minimum(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method multiply

multiply(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method negative

negative(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method node

node(ctx: Context, node: Node, preds: List[Conversion])  Conversion

Convert a computation graph node into MLIR.

Args: ctx (Context): conversion context

node (Node): node to convert

preds (List[Conversion]): conversions of ordered predecessors of the node

Return: Conversion: conversion object corresponding to node


method not_equal

not_equal(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method ones

ones(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method process

process(graph: Graph, configuration: Configuration)

Process a computation graph for MLIR conversion.

Args: graph (Graph): graph to process

configuration (Configuration): configuration to use


method relu

relu(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method reshape

reshape(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method right_shift

right_shift(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method round_bit_pattern

round_bit_pattern(
    ctx: Context,
    node: Node,
    preds: List[Conversion]
)  Conversion

method simplify_tag

simplify_tag(configuration: Configuration, tag: str)  str

Keep only n higher tag parts.


method squeeze

squeeze(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method stdout_with_ansi_support

stdout_with_ansi_support()  bool

Detect if ansi characters can be used (e.g. not the case in notebooks).


method subtract

subtract(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method sum

sum(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method tlu

tlu(ctx: Context, node: Node, preds: List[Conversion])  Conversion

classmethod trace_progress

trace_progress(
    configuration: Configuration,
    progress_index: int,
    nodes: List[Node]
)

Add a trace_message for progress.

Args: configuration: configuration for title, tags options

progress_index: index of the next node to process

nodes: all nodes


method transpose

transpose(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method truncate_bit_pattern

truncate_bit_pattern(
    ctx: Context,
    node: Node,
    preds: List[Conversion]
)  Conversion

method where

where(ctx: Context, node: Node, preds: List[Conversion])  Conversion

method zeros

zeros(ctx: Context, node: Node, preds: List[Conversion])  Conversion