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

Creates a LayerNode instance from a validated and normalized user definition of a single workload layer. More...

Public Member Functions

def __init__ (self, dict[str, Any] node_data, list[dict[str, Any]]|None mapping_data)
 @node_data validated and normalized user-defined data for a single workload layer @mapping_data validated and normalized user-defined data for all mappings, or None is case no mapping-related instances need to be constructed More...
 
LayerNode create (self)
 
LayerNodeAttributes create_node_attr (self)
 
def create_mapping_attr (self, LayerDimSizes layer_dim_sizes)
 
LayerEquation create_equation (self)
 
LayerDimSizes create_layer_dim_sizes (self)
 
LayerOperandPrecision create_operand_precision (self)
 
list[LayerDimRelationcreate_layer_dim_relations (self)
 
list[LayerOperandcreate_constant_operands (self)
 
InputOperandSource create_operand_source (self)
 
LayerPadding create_padding (self)
 
LayerDimSizes|None create_pr_layer_dim_sizes (self)
 

Public Attributes

 node_data
 
 mapping_data
 

Detailed Description

Creates a LayerNode instance from a validated and normalized user definition of a single workload layer.

Constructor & Destructor Documentation

◆ __init__()

def __init__ (   self,
dict[str, Any]  node_data,
list[dict[str, Any]] | None  mapping_data 
)

@node_data validated and normalized user-defined data for a single workload layer @mapping_data validated and normalized user-defined data for all mappings, or None is case no mapping-related instances need to be constructed

Member Function Documentation

◆ create()

LayerNode create (   self)
Here is the call graph for this function:

◆ create_constant_operands()

list[LayerOperand] create_constant_operands (   self)
Here is the caller graph for this function:

◆ create_equation()

LayerEquation create_equation (   self)
Here is the caller graph for this function:

◆ create_layer_dim_relations()

list[LayerDimRelation] create_layer_dim_relations (   self)
Here is the caller graph for this function:

◆ create_layer_dim_sizes()

LayerDimSizes create_layer_dim_sizes (   self)
Here is the caller graph for this function:

◆ create_mapping_attr()

def create_mapping_attr (   self,
LayerDimSizes  layer_dim_sizes 
)
Here is the caller graph for this function:

◆ create_node_attr()

LayerNodeAttributes create_node_attr (   self)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ create_operand_precision()

LayerOperandPrecision create_operand_precision (   self)
Here is the caller graph for this function:

◆ create_operand_source()

InputOperandSource create_operand_source (   self)
Here is the caller graph for this function:

◆ create_padding()

LayerPadding create_padding (   self)
Here is the caller graph for this function:

◆ create_pr_layer_dim_sizes()

LayerDimSizes | None create_pr_layer_dim_sizes (   self)
Here is the caller graph for this function:

Member Data Documentation

◆ mapping_data

mapping_data

◆ node_data

node_data

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