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

Pipeline stage that calls a cost model to evaluate a mapping on a HW config. More...

Inheritance diagram for CostModelStage:
Collaboration diagram for CostModelStage:

Public Member Functions

def __init__ (self, list[StageCallable] list_of_callables, *Accelerator accelerator, LayerNode layer, SpatialMappingInternal spatial_mapping, SpatialMappingInternal spatial_mapping_int, TemporalMapping temporal_mapping, bool access_same_data_considered_as_no_access=True, **Any kwargs)
 
def run (self)
 Run the cost model stage by calling the internal zigzag cost model with the correct inputs. More...
 
bool is_leaf (self)
 
- Public Member Functions inherited from Stage
def __init__ (self, list["StageCallable"] list_of_callables, **Any kwargs)
 
def __iter__ (self)
 

Public Attributes

 accelerator
 
 layer
 
 spatial_mapping
 
 spatial_mapping_int
 
 temporal_mapping
 
 access_same_data_considered_as_no_access
 
- Public Attributes inherited from Stage
 kwargs
 
 list_of_callables
 

Detailed Description

Pipeline stage that calls a cost model to evaluate a mapping on a HW config.

Constructor & Destructor Documentation

◆ __init__()

def __init__ (   self,
list[StageCallable list_of_callables,
*Accelerator  accelerator,
LayerNode  layer,
SpatialMappingInternal  spatial_mapping,
SpatialMappingInternal  spatial_mapping_int,
TemporalMapping  temporal_mapping,
bool   access_same_data_considered_as_no_access = True,
**Any  kwargs 
)

Member Function Documentation

◆ is_leaf()

bool is_leaf (   self)
Returns
: Returns true if the runnable is a leaf runnable, meaning that it does not use (or thus need) any substages to be able to yield a result. Final element in list_of_callables must always have is_leaf() == True, except for that final element that has an empty list_of_callables

Reimplemented from Stage.

◆ run()

def run (   self)

Run the cost model stage by calling the internal zigzag cost model with the correct inputs.

Reimplemented from Stage.

Here is the caller graph for this function:

Member Data Documentation

◆ accelerator

accelerator

◆ access_same_data_considered_as_no_access

access_same_data_considered_as_no_access

◆ layer

layer

◆ spatial_mapping

spatial_mapping

◆ spatial_mapping_int

spatial_mapping_int

◆ temporal_mapping

temporal_mapping

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