18 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_program: ServerProgram,
is_simulated: bool
)
property complexity
Get complexity of the compiled program.
property global_p_error
Get the probability of having at least one simple TLU error during the entire execution.
property p_error
Get the probability of error for each simple TLU (on a scalar).
property size_of_bootstrap_keys
Get size of the bootstrap keys of the compiled program.
property size_of_keyswitch_keys
Get size of the key switch keys 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 clear_addition_count
clear_addition_count(function: str = 'main') → int
Get the number of clear additions in the compiled program.
method clear_addition_count_per_parameter
clear_addition_count_per_parameter(
function: str = 'main'
) → Dict[Parameter, int]
Get the number of clear additions per parameter in the compiled program.
method clear_addition_count_per_tag
clear_addition_count_per_tag(function: str = 'main') → Dict[str, int]
Get the number of clear additions per tag in the compiled program.
method clear_addition_count_per_tag_per_parameter
clear_addition_count_per_tag_per_parameter(
function: str = 'main'
) → Dict[str, Dict[Parameter, int]]
Get the number of clear additions per tag per parameter in the compiled program.
method clear_multiplication_count
clear_multiplication_count(function: str = 'main') → int
Get the number of clear multiplications in the compiled program.
method clear_multiplication_count_per_parameter
clear_multiplication_count_per_parameter(
function: str = 'main'
) → Dict[Parameter, int]
Get the number of clear multiplications per parameter in the compiled program.
method clear_multiplication_count_per_tag
clear_multiplication_count_per_tag(function: str = 'main') → Dict[str, int]
Get the number of clear multiplications per tag in the compiled program.
method clear_multiplication_count_per_tag_per_parameter
clear_multiplication_count_per_tag_per_parameter(
function: str = 'main'
) → Dict[str, Dict[Parameter, int]]
Get the number of clear multiplications per tag per parameter in the compiled program.
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 encrypted_addition_count
encrypted_addition_count(function: str = 'main') → int
Get the number of encrypted additions in the compiled program.
method encrypted_addition_count_per_parameter
encrypted_addition_count_per_parameter(
function: str = 'main'
) → Dict[Parameter, int]
Get the number of encrypted additions per parameter in the compiled program.
method encrypted_addition_count_per_tag
encrypted_addition_count_per_tag(function: str = 'main') → Dict[str, int]
Get the number of encrypted additions per tag in the compiled program.
method encrypted_addition_count_per_tag_per_parameter
encrypted_addition_count_per_tag_per_parameter(
function: str = 'main'
) → Dict[str, Dict[Parameter, int]]
Get the number of encrypted additions per tag per parameter in the compiled program.
method encrypted_negation_count
encrypted_negation_count(function: str = 'main') → int
Get the number of encrypted negations in the compiled program.
method encrypted_negation_count_per_parameter
encrypted_negation_count_per_parameter(
function: str = 'main'
) → Dict[Parameter, int]
Get the number of encrypted negations per parameter in the compiled program.
method encrypted_negation_count_per_tag
encrypted_negation_count_per_tag(function: str = 'main') → Dict[str, int]
Get the number of encrypted negations per tag in the compiled program.
method encrypted_negation_count_per_tag_per_parameter
encrypted_negation_count_per_tag_per_parameter(
function: str = 'main'
) → Dict[str, Dict[Parameter, int]]
Get the number of encrypted negations per tag per parameter in the compiled program.
method key_switch_count
key_switch_count(function: str = 'main') → int
Get the number of key switches in the compiled program.
method key_switch_count_per_parameter
key_switch_count_per_parameter(function: str = 'main') → Dict[Parameter, int]
Get the number of key switches per parameter in the compiled program.
method key_switch_count_per_tag
key_switch_count_per_tag(function: str = 'main') → Dict[str, int]
Get the number of key switches per tag in the compiled program.
method key_switch_count_per_tag_per_parameter
key_switch_count_per_tag_per_parameter(
function: str = 'main'
) → Dict[str, Dict[Parameter, int]]
Get the number of key switches per tag per parameter in the compiled program.
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 packing_key_switch_count
packing_key_switch_count(function: str = 'main') → int
Get the number of packing key switches in the compiled program.
method packing_key_switch_count_per_parameter
packing_key_switch_count_per_parameter(
function: str = 'main'
) → Dict[Parameter, int]
Get the number of packing key switches per parameter in the compiled program.
method packing_key_switch_count_per_tag
packing_key_switch_count_per_tag(function: str = 'main') → Dict[str, int]
Get the number of packing key switches per tag in the compiled program.
method packing_key_switch_count_per_tag_per_parameter
packing_key_switch_count_per_tag_per_parameter(
function: str = 'main'
) → Dict[str, Dict[Parameter, int]]
Get the number of packing key switches per tag per parameter in the compiled program.
method programmable_bootstrap_count
programmable_bootstrap_count(function: str = 'main') → int
Get the number of programmable bootstraps in the compiled program.
method programmable_bootstrap_count_per_parameter
programmable_bootstrap_count_per_parameter(
function: str = 'main'
) → Dict[Parameter, int]
Get the number of programmable bootstraps per parameter in the compiled program.
method programmable_bootstrap_count_per_tag
programmable_bootstrap_count_per_tag(function: str = 'main') → Dict[str, int]
Get the number of programmable bootstraps per tag in the compiled program.
method programmable_bootstrap_count_per_tag_per_parameter
programmable_bootstrap_count_per_tag_per_parameter(
function: str = 'main'
) → Dict[str, Dict[Parameter, int]]
Get the number of programmable bootstraps per tag per parameter in the compiled program.
method run
run(
*args: Optional[Value, Tuple[Optional[Value], ]],
evaluation_keys: Optional[EvaluationKeys] = None,
function_name: str = 'main'
) → 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
function_name (str): The name of the function to run
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
method size_of_inputs
size_of_inputs(function: str = 'main') → int
Get size of the inputs of the compiled program.
method size_of_outputs
size_of_outputs(function: str = 'main') → int
Get size of the outputs of the compiled program.