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... | |
![]() | |
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 | |
![]() | |
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 |