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