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

Parser for ONNX Conv and QLinearConv nodes into LayerNode. More...

Inheritance diagram for ConvParser:
Collaboration diagram for ConvParser:

Public Member Functions

None __init__ (self, int node_id, NodeProto node, dict[int, Any] nodes_outputs, list[dict[str, Any]] mapping_data, ModelProto onnx_model)
 
LayerNode run (self)
 Run the parser and return the created LayerNode object. More...
 
dict[str, Any] get_layer_node_user_format (self, list[int] kernel_shape, list[int] strides, list[int] dilations, int group_size, list[int] padding, list[int] ia_shape, list[int] oa_shape)
 Generate the necessary dictionary items required for the LayerNode creation. More...
 
def generate_layer_node_for_conv (self)
 
- Public Member Functions inherited from ONNXOperatorParser
None __init__ (self, int node_id, NodeProto node, dict[int, Any] nodes_outputs, ModelProto onnx_model, *list[dict[str, Any]]|None mapping_data=None, Accelerator|None accelerator=None)
 
def get_input_output_weight_data_type (self)
 Return the data type of the input, output and weight tensors of this node. More...
 
def get_weight_name (self, NodeProto node)
 Return the name of the weight input of this node depending on its operator type. More...
 
list[int] get_node_predecessors (self)
 Compute node input sources. More...
 
def get_operand_source_user_format (self, list[int] predecessors)
 Set input source and indicate constant operands. More...
 
def get_weight_precision (self)
 Return the weight precision for this node. More...
 
def get_activation_precision (self)
 Return the activation precision for this node. More...
 
def get_intermediate_output_precision (self)
 Return the intermediate output precision for this node. More...
 

Public Attributes

 mapping_data
 
 onnx_model
 
- Public Attributes inherited from ONNXOperatorParser
 node_id
 
 node
 
 nodes_outputs
 
 onnx_model
 
 mapping_data
 
 accelerator
 

Additional Inherited Members

- Static Public Attributes inherited from ONNXOperatorParser
string CUSTOM_WEIGHT_SIZE_ATTR = "weight_size"
 
string CUSTOM_ACT_SIZE_ATTR = "act_size"
 
string CUSTOM_OUTPUT_SIZE_ATTR = "output_size"
 

Detailed Description

Parser for ONNX Conv and QLinearConv nodes into LayerNode.

Constructor & Destructor Documentation

◆ __init__()

None __init__ (   self,
int  node_id,
NodeProto  node,
dict[int, Any]  nodes_outputs,
list[dict[str, Any]]  mapping_data,
ModelProto  onnx_model 
)

Member Function Documentation

◆ generate_layer_node_for_conv()

def generate_layer_node_for_conv (   self)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_layer_node_user_format()

dict[str, Any] get_layer_node_user_format (   self,
list[int]  kernel_shape,
list[int]  strides,
list[int]  dilations,
int  group_size,
list[int]  padding,
list[int]  ia_shape,
list[int]  oa_shape 
)

Generate the necessary dictionary items required for the LayerNode creation.

If there is no data for a given Layer Attribute, the Layer Attribute is not included in the returned dict.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run()

LayerNode run (   self)

Run the parser and return the created LayerNode object.

Reimplemented from ONNXOperatorParser.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ mapping_data

mapping_data

◆ onnx_model

onnx_model

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