# module `concrete.fhe.compilation.configuration` Declaration of `Configuration` class. **Global Variables** --------------- - **MAXIMUM_TLU_BIT_WIDTH** - **DEFAULT_P_ERROR** - **DEFAULT_GLOBAL_P_ERROR** --- ## class `ParameterSelectionStrategy` ParameterSelectionStrategy, to set optimization strategy. --- ## class `MultiParameterStrategy` MultiParamStrategy, to set optimization strategy for multi-parameter. --- ## class `Exactness` Exactness, to specify for specific operator the implementation preference (default and local). --- ## class `ApproximateRoundingConfig` Controls the behavior of approximate rounding. In the following `k` is the ideal rounding output precision. Often the precision used after rounding is `k`+1 to avoid overflow. `logical_clipping`, `approximate_clipping_start_precision` can be used to stay at precision `k`, either logically or physically at the successor TLU. See examples in https://github.com/zama-ai/concrete/blob/main/docs/core-features/rounding.md. ### method `__init__` ```python __init__( logical_clipping: bool = True, approximate_clipping_start_precision: int = 5, reduce_precision_after_approximate_clipping: bool = True, symetrize_deltas: bool = True ) → None ``` --- ## class `ComparisonStrategy` ComparisonStrategy, to specify implementation preference for comparisons. --- ## class `BitwiseStrategy` BitwiseStrategy, to specify implementation preference for bitwise operations. --- ## class `MultivariateStrategy` MultivariateStrategy, to specify implementation preference for multivariate operations. --- ## class `MinMaxStrategy` MinMaxStrategy, to specify implementation preference for minimum and maximum operations. --- ## class `Configuration` Configuration class, to allow the compilation process to be customized. ### method `__init__` ```python __init__( verbose: bool = False, show_graph: Optional[bool] = None, show_bit_width_constraints: Optional[bool] = None, show_bit_width_assignments: Optional[bool] = None, show_assigned_graph: Optional[bool] = None, show_mlir: Optional[bool] = None, show_optimizer: Optional[bool] = None, show_statistics: Optional[bool] = None, dump_artifacts_on_unexpected_failures: bool = True, enable_unsafe_features: bool = False, use_insecure_key_cache: bool = False, insecure_key_cache_location: Optional[Path, str] = None, loop_parallelize: bool = True, dataflow_parallelize: bool = False, auto_parallelize: bool = False, compress_evaluation_keys: bool = False, compress_input_ciphertexts: bool = False, p_error: Optional[float] = None, global_p_error: Optional[float] = None, auto_adjust_rounders: bool = False, auto_adjust_truncators: bool = False, single_precision: bool = False, parameter_selection_strategy: Union[ParameterSelectionStrategy, str] = , multi_parameter_strategy: Union[MultiParameterStrategy, str] = , show_progress: bool = False, progress_title: str = '', progress_tag: Union[bool, int] = False, fhe_simulation: bool = False, fhe_execution: bool = True, compiler_debug_mode: bool = False, compiler_verbose_mode: bool = False, comparison_strategy_preference: Optional[ComparisonStrategy, str, List[Union[ComparisonStrategy, str]]] = None, bitwise_strategy_preference: Optional[BitwiseStrategy, str, List[Union[BitwiseStrategy, str]]] = None, shifts_with_promotion: bool = True, multivariate_strategy_preference: Optional[MultivariateStrategy, str, List[Union[MultivariateStrategy, str]]] = None, min_max_strategy_preference: Optional[MinMaxStrategy, str, List[Union[MinMaxStrategy, str]]] = None, composable: bool = False, use_gpu: bool = False, relu_on_bits_threshold: int = 7, relu_on_bits_chunk_size: int = 3, if_then_else_chunk_size: int = 3, additional_pre_processors: Optional[List[GraphProcessor]] = None, additional_post_processors: Optional[List[GraphProcessor]] = None, rounding_exactness: Exactness = , approximate_rounding_config: Optional[ApproximateRoundingConfig] = None, optimize_tlu_based_on_measured_bounds: bool = False, enable_tlu_fusing: bool = True, print_tlu_fusing: bool = False, optimize_tlu_based_on_original_bit_width: Union[bool, int] = 8, detect_overflow_in_simulation: bool = False, dynamic_indexing_check_out_of_bounds: bool = True, dynamic_assignment_check_out_of_bounds: bool = True, simulate_encrypt_run_decrypt: bool = False ) ``` --- ### method `fork` ```python fork( verbose: Union[Keep, bool] = , show_graph: Optional[Keep, bool] = , show_bit_width_constraints: Optional[Keep, bool] = , show_bit_width_assignments: Optional[Keep, bool] = , show_assigned_graph: Optional[Keep, bool] = , show_mlir: Optional[Keep, bool] = , show_optimizer: Optional[Keep, bool] = , show_statistics: Optional[Keep, bool] = , dump_artifacts_on_unexpected_failures: Union[Keep, bool] = , enable_unsafe_features: Union[Keep, bool] = , use_insecure_key_cache: Union[Keep, bool] = , insecure_key_cache_location: Optional[Keep, Path, str] = , loop_parallelize: Union[Keep, bool] = , dataflow_parallelize: Union[Keep, bool] = , auto_parallelize: Union[Keep, bool] = , compress_evaluation_keys: Union[Keep, bool] = , compress_input_ciphertexts: Union[Keep, bool] = , p_error: Optional[Keep, float] = , global_p_error: Optional[Keep, float] = , auto_adjust_rounders: Union[Keep, bool] = , auto_adjust_truncators: Union[Keep, bool] = , single_precision: Union[Keep, bool] = , parameter_selection_strategy: Union[Keep, ParameterSelectionStrategy, str] = , multi_parameter_strategy: Union[Keep, MultiParameterStrategy, str] = , show_progress: Union[Keep, bool] = , progress_title: Union[Keep, str] = , progress_tag: Union[Keep, bool, int] = , fhe_simulation: Union[Keep, bool] = , fhe_execution: Union[Keep, bool] = , compiler_debug_mode: Union[Keep, bool] = , compiler_verbose_mode: Union[Keep, bool] = , comparison_strategy_preference: Optional[Keep, ComparisonStrategy, str, List[Union[ComparisonStrategy, str]]] = , bitwise_strategy_preference: Optional[Keep, BitwiseStrategy, str, List[Union[BitwiseStrategy, str]]] = , shifts_with_promotion: Union[Keep, bool] = , multivariate_strategy_preference: Optional[Keep, MultivariateStrategy, str, List[Union[MultivariateStrategy, str]]] = , min_max_strategy_preference: Optional[Keep, MinMaxStrategy, str, List[Union[MinMaxStrategy, str]]] = , composable: Union[Keep, bool] = , use_gpu: Union[Keep, bool] = , relu_on_bits_threshold: Union[Keep, int] = , relu_on_bits_chunk_size: Union[Keep, int] = , if_then_else_chunk_size: Union[Keep, int] = , additional_pre_processors: Optional[Keep, List[GraphProcessor]] = , additional_post_processors: Optional[Keep, List[GraphProcessor]] = , rounding_exactness: Union[Keep, Exactness] = , approximate_rounding_config: Optional[Keep, ApproximateRoundingConfig] = , optimize_tlu_based_on_measured_bounds: Union[Keep, bool] = , enable_tlu_fusing: Union[Keep, bool] = , print_tlu_fusing: Union[Keep, bool] = , optimize_tlu_based_on_original_bit_width: Union[Keep, bool, int] = , detect_overflow_in_simulation: Union[Keep, bool] = , dynamic_indexing_check_out_of_bounds: Union[Keep, bool] = , dynamic_assignment_check_out_of_bounds: Union[Keep, bool] = , simulate_encrypt_run_decrypt: Union[Keep, bool] = ) → Configuration ``` Get a new configuration from another one specified changes. See Configuration.