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

This class houses the array of multipliers and the attached memory hierarchy. More...

Public Member Functions

def __init__ (self, int core_id, str name, OperationalArrayABC operational_array, MemoryHierarchy memory_hierarchy, SpatialMapping|None dataflows=None)
 
MemoryLevel get_memory_level (self, MemoryOperand mem_op, int mem_lv)
 Returns a specific memory level in the memory hierarchy for the memory operand. More...
 
None recalculate_memory_hierarchy_information (self)
 
MemoryInstance get_top_memory_instance (self, MemoryOperand mem_op)
 
def get_memory_bw_dict (self)
 
def get_memory_bw_min_dict (self)
 
str __str__ (self)
 
str __repr__ (self)
 
def __jsonrepr__ (self)
 
int __hash__ (self)
 
bool __eq__ (self, object other)
 
bool has_same_performance (self, "Accelerator" other)
 

Public Attributes

 id
 
 name
 
 operational_array
 
 memory_hierarchy
 
 mem_hierarchy_dict
 
 dataflows
 
 mem_size_dict
 
 mem_r_bw_dict
 
 mem_w_bw_dict
 
 mem_r_bw_min_dict
 
 mem_w_bw_min_dict
 
 mem_sharing_list
 

Detailed Description

This class houses the array of multipliers and the attached memory hierarchy.

This class supports a singular multiplier array and memory hierarchy, runtime flexibility should be implemented on top.

Constructor & Destructor Documentation

◆ __init__()

def __init__ (   self,
int  core_id,
str  name,
OperationalArrayABC  operational_array,
MemoryHierarchy  memory_hierarchy,
SpatialMapping | None   dataflows = None 
)

Member Function Documentation

◆ __eq__()

bool __eq__ (   self,
object  other 
)

◆ __hash__()

int __hash__ (   self)

◆ __jsonrepr__()

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

◆ __repr__()

str __repr__ (   self)

◆ __str__()

str __str__ (   self)

◆ get_memory_bw_dict()

def get_memory_bw_dict (   self)

◆ get_memory_bw_min_dict()

def get_memory_bw_min_dict (   self)

◆ get_memory_level()

MemoryLevel get_memory_level (   self,
MemoryOperand  mem_op,
int  mem_lv 
)

Returns a specific memory level in the memory hierarchy for the memory operand.

◆ get_top_memory_instance()

MemoryInstance get_top_memory_instance (   self,
MemoryOperand  mem_op 
)

◆ has_same_performance()

bool has_same_performance (   self,
"Accelerator"  other 
)

◆ recalculate_memory_hierarchy_information()

None recalculate_memory_hierarchy_information (   self)
Here is the call graph for this function:

Member Data Documentation

◆ dataflows

dataflows

◆ id

id

◆ mem_hierarchy_dict

mem_hierarchy_dict

◆ mem_r_bw_dict

mem_r_bw_dict

◆ mem_r_bw_min_dict

mem_r_bw_min_dict

◆ mem_sharing_list

mem_sharing_list

◆ mem_size_dict

mem_size_dict

◆ mem_w_bw_dict

mem_w_bw_dict

◆ mem_w_bw_min_dict

mem_w_bw_min_dict

◆ memory_hierarchy

memory_hierarchy

◆ name

name

◆ operational_array

operational_array

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