|
ZigZag - Deep Learning Hardware Design Space Exploration
This repository presents the novel version of our tried-and-tested hardware Architecture-Mapping Design Space Exploration (DSE) Framework for Deep Learning (DL) accelerators. ZigZag bridges the gap between algorithmic DL decisions and their acceleration cost on specialized accelerators through a fast and accurate hardware cost estimation.
|
Class that return the best temporal mapping found by the Simulated Annealing Loop-ordering Scheduler for Accelerators (SALSA) for a single layer. More...


Public Member Functions | |
| def | __init__ (self, list[StageCallable] list_of_callables, *Accelerator accelerator, LayerNode layer, SpatialMappingInternal spatial_mapping, TemporalMappingType temporal_mapping_type, **Any kwargs) |
| Initialize the SalsaStage by setting the accelerator, layer, and spatial mapping. More... | |
| def | run (self) |
| Set up and start salsa engine, then collect and return the best cost model evaluation. More... | |
| def | compare_cme_latency (self, CostModelEvaluation cme) |
| Compare the latency of the current cost model evaluation with the best latency found so far. More... | |
| def | compare_cme_energy (self, CostModelEvaluation cme) |
| Compare the energy of the current cost model evaluation with the best energy found so far. More... | |
Public Member Functions inherited from Stage | |
| def | __init__ (self, list["StageCallable"] list_of_callables, **Any kwargs) |
| def | __iter__ (self) |
| bool | is_leaf (self) |
Public Attributes | |
| spatial_mapping | |
| mapping_type | |
| engine | |
| opt_criterion_name | |
| number_of_core_allocated | |
| worker_list | |
| cme_queue | |
| compare_stage | |
| number_of_core | |
| best_cme | |
Public Attributes inherited from Stage | |
| kwargs | |
| list_of_callables | |
Class that return the best temporal mapping found by the Simulated Annealing Loop-ordering Scheduler for Accelerators (SALSA) for a single layer.
| def __init__ | ( | self, | |
| list[StageCallable] | list_of_callables, | ||
| *Accelerator | accelerator, | ||
| LayerNode | layer, | ||
| SpatialMappingInternal | spatial_mapping, | ||
| TemporalMappingType | temporal_mapping_type, | ||
| **Any | kwargs | ||
| ) |
Initialize the SalsaStage by setting the accelerator, layer, and spatial mapping.
| list_of_callables | (List[Callable]): List of substages to call with each generated temporal mapping. |
| def compare_cme_energy | ( | self, | |
| CostModelEvaluation | cme | ||
| ) |
Compare the energy of the current cost model evaluation with the best energy found so far.
| def compare_cme_latency | ( | self, | |
| CostModelEvaluation | cme | ||
| ) |
Compare the latency of the current cost model evaluation with the best latency found so far.
Then replace the current best cme if the current cme has a lower latency.
| def run | ( | self | ) |
Set up and start salsa engine, then collect and return the best cost model evaluation.
Reimplemented from Stage.

| best_cme |
| cme_queue |
| compare_stage |
| engine |
| mapping_type |
| number_of_core |
| number_of_core_allocated |
| opt_criterion_name |
| spatial_mapping |
| worker_list |