Files
concrete/docs/dev/api/concrete.fhe.compilation.server.md
Benoit Chevallier-Mames e352eff1b3 docs(compiler): adding API doc
2024-03-13 14:52:46 +01:00

8.9 KiB

module concrete.fhe.compilation.server

Declaration of Server class.

Global Variables

  • DEFAULT_GLOBAL_P_ERROR
  • DEFAULT_P_ERROR

class Server

Server class, which can be used to perform homomorphic computation.

method __init__

__init__(
    client_specs: ClientSpecs,
    output_dir: Optional[TemporaryDirectory],
    support: LibrarySupport,
    compilation_result: LibraryCompilationResult,
    server_lambda: LibraryLambda,
    is_simulated: bool
)

property clear_addition_count

Get the number of clear additions in the compiled program.


property clear_addition_count_per_parameter

Get the number of clear additions per parameter in the compiled program.


property clear_addition_count_per_tag

Get the number of clear additions per tag in the compiled program.


property clear_addition_count_per_tag_per_parameter

Get the number of clear additions per tag per parameter in the compiled program.


property clear_multiplication_count

Get the number of clear multiplications in the compiled program.


property clear_multiplication_count_per_parameter

Get the number of clear multiplications per parameter in the compiled program.


property clear_multiplication_count_per_tag

Get the number of clear multiplications per tag in the compiled program.


property clear_multiplication_count_per_tag_per_parameter

Get the number of clear multiplications per tag per parameter in the compiled program.


property complexity

Get complexity of the compiled program.


property encrypted_addition_count

Get the number of encrypted additions in the compiled program.


property encrypted_addition_count_per_parameter

Get the number of encrypted additions per parameter in the compiled program.


property encrypted_addition_count_per_tag

Get the number of encrypted additions per tag in the compiled program.


property encrypted_addition_count_per_tag_per_parameter

Get the number of encrypted additions per tag per parameter in the compiled program.


property encrypted_negation_count

Get the number of encrypted negations in the compiled program.


property encrypted_negation_count_per_parameter

Get the number of encrypted negations per parameter in the compiled program.


property encrypted_negation_count_per_tag

Get the number of encrypted negations per tag in the compiled program.


property encrypted_negation_count_per_tag_per_parameter

Get the number of encrypted negations per tag per parameter in the compiled program.


property global_p_error

Get the probability of having at least one simple TLU error during the entire execution.


property key_switch_count

Get the number of key switches in the compiled program.


property key_switch_count_per_parameter

Get the number of key switches per parameter in the compiled program.


property key_switch_count_per_tag

Get the number of key switches per tag in the compiled program.


property key_switch_count_per_tag_per_parameter

Get the number of key switches per tag per parameter in the compiled program.


property p_error

Get the probability of error for each simple TLU (on a scalar).


property packing_key_switch_count

Get the number of packing key switches in the compiled program.


property packing_key_switch_count_per_parameter

Get the number of packing key switches per parameter in the compiled program.


property packing_key_switch_count_per_tag

Get the number of packing key switches per tag in the compiled program.


property packing_key_switch_count_per_tag_per_parameter

Get the number of packing key switches per tag per parameter in the compiled program.


property programmable_bootstrap_count

Get the number of programmable bootstraps in the compiled program.


property programmable_bootstrap_count_per_parameter

Get the number of programmable bootstraps per parameter in the compiled program.


property programmable_bootstrap_count_per_tag

Get the number of programmable bootstraps per tag in the compiled program.


property programmable_bootstrap_count_per_tag_per_parameter

Get the number of programmable bootstraps per tag per parameter in the compiled program.


property size_of_bootstrap_keys

Get size of the bootstrap keys of the compiled program.


property size_of_inputs

Get size of the inputs of the compiled program.


property size_of_keyswitch_keys

Get size of the key switch keys of the compiled program.


property size_of_outputs

Get size of the outputs of the compiled program.


property size_of_secret_keys

Get size of the secret keys of the compiled program.


property statistics

Get all statistics of the compiled program.


method cleanup

cleanup()

Cleanup the temporary library output directory.


method create

create(
    mlir: Union[str, Module],
    configuration: Configuration,
    is_simulated: bool = False,
    compilation_context: Optional[CompilationContext] = None
)  Server

Create a server using MLIR and output sign information.

Args: mlir (MlirModule): mlir to compile

is_simulated (bool, default = False): whether to compile in simulation mode or not

configuration (Optional[Configuration]): configuration to use

compilation_context (CompilationContext): context to use for the Compiler


method load

load(path: Union[str, Path])  Server

Load the server from the given path in zip format.

Args: path (Union[str, Path]): path to load the server from

Returns: Server: server loaded from the filesystem


method run

run(
    *args: Optional[Value, Tuple[Optional[Value], ]],
    evaluation_keys: Optional[EvaluationKeys] = None
)  Union[Value, Tuple[Value, ]]

Evaluate.

Args: *args (Optional[Union[Value, Tuple[Optional[Value], ...]]]): argument(s) for evaluation

evaluation_keys (Optional[EvaluationKeys], default = None): evaluation keys required for fhe execution

Returns: Union[Value, Tuple[Value, ...]]: result(s) of evaluation


method save

save(path: Union[str, Path], via_mlir: bool = False)

Save the server into the given path in zip format.

Args: path (Union[str, Path]): path to save the server

via_mlir (bool, default = False): export using the MLIR code of the program, this will make the export cross-platform