Skip to main content

hetorch.backend.cost_model

Cost model abstraction for HE operations

Classes

CostAnalysis(total_operations: typing.Dict[str, int], estimated_latency: <class 'float'>, estimated_memory: <class 'int'>, critical_path: typing.List[str])

Cost analysis result for a graph or pass

Attributes: total_operations: Mapping from operation name to count estimated_latency: Estimated total latency in milliseconds estimated_memory: Estimated memory usage in bytes critical_path: List of operation names on critical path

Methods:

__init__(self, total_operations: Dict[str, int] = \<factory\>, estimated_latency: float = 0.0, estimated_memory: int = 0, critical_path: List[str] = \<factory\>) -\> None

Initialize self. See help(type(self)) for accurate signature.

CostModel(args, kwargs)

Abstract cost model for HE operations

Methods:

estimate_latency(self, operation: str, params: Dict[str, Any]) -\> float

Estimate operation latency in milliseconds

Args: operation: Operation name (e.g., "cadd", "cmult", "rotate") params: Operation-specific parameters

Returns: Estimated latency in milliseconds

estimate_memory(self, operation: str, params: Dict[str, Any]) -\> int

Estimate memory usage in bytes

Args: operation: Operation name params: Operation-specific parameters

Returns: Estimated memory usage in bytes

estimate_noise_growth(self, operation: str, params: Dict[str, Any]) -\> float

Estimate noise growth

Args: operation: Operation name params: Operation-specific parameters

Returns: Estimated noise growth factor

SimpleCostModel(latency_map: typing.Dict[str, float], memory_map: typing.Dict[str, int], noise_map: typing.Dict[str, float])

Simple cost model with fixed costs per operation

Methods:

__init__(self, latency_map: Dict[str, float] = None, memory_map: Dict[str, int] = None, noise_map: Dict[str, float] = None)

Initialize simple cost model

Args: latency_map: Mapping from operation to latency (ms) memory_map: Mapping from operation to memory (bytes) noise_map: Mapping from operation to noise growth factor

estimate_latency(self, operation: str, params: Dict[str, Any]) -\> float

Estimate latency using lookup table

estimate_memory(self, operation: str, params: Dict[str, Any]) -\> int

Estimate memory using lookup table

estimate_noise_growth(self, operation: str, params: Dict[str, Any]) -\> float

Estimate noise growth using lookup table