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.
SalsaStage Class Reference

Class that return the best temporal mapping found by the Simulated Annealing Loop-ordering Scheduler for Accelerators (SALSA) for a single layer. More...

Inheritance diagram for SalsaStage:
Collaboration diagram for SalsaStage:

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
 

Detailed Description

Class that return the best temporal mapping found by the Simulated Annealing Loop-ordering Scheduler for Accelerators (SALSA) for a single layer.

Constructor & Destructor Documentation

◆ __init__()

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.

Parameters
list_of_callables(List[Callable]): List of substages to call with each generated temporal mapping.

Member Function Documentation

◆ compare_cme_energy()

def compare_cme_energy (   self,
CostModelEvaluation  cme 
)

Compare the energy of the current cost model evaluation with the best energy found so far.

Then replace the best cme if the current cme has a lower energy.

◆ compare_cme_latency()

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.

◆ run()

def run (   self)

Set up and start salsa engine, then collect and return the best cost model evaluation.

Reimplemented from Stage.

Here is the caller graph for this function:

Member Data Documentation

◆ best_cme

best_cme

◆ cme_queue

cme_queue

◆ compare_stage

compare_stage

◆ engine

engine

◆ mapping_type

mapping_type

◆ number_of_core

number_of_core

◆ number_of_core_allocated

number_of_core_allocated

◆ opt_criterion_name

opt_criterion_name

◆ spatial_mapping

spatial_mapping

◆ worker_list

worker_list

The documentation for this class was generated from the following file: