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

Class that provides the interface between ZigZag and CACTI. More...

Public Member Functions

def __init__ (self)
 
bool item_exists (self, int size, int r_bw, int r_port, int w_port, int rw_port, int bank, float technology, str mem_pool_path=MEM_POOL_PATH)
 This function checks whether the provided memory configuration was already used in the past. More...
 
None create_item (self, str mem_type, int size, int r_bw, int r_port, int w_port, int rw_port, int bank, float technology=0.022, str mem_pool_path=MEM_POOL_PATH, str cacti_top_path=CACTI_TOP_PATH)
 This function simulates a new item by calling CACTI7 based on the provided parameters. More...
 
tuple[float, float, float] get_item (self, *str mem_name, str mem_type, int size, int r_bw, int r_port, int w_port, int rw_port, int bank, float technology=0.022, str mem_pool_path=MEM_POOL_PATH, str cacti_top_path=CACTI_TOP_PATH)
 This functions checks first if the memory with the provided parameters was already simulated once. More...
 

Static Public Attributes

 cacti_path = os.path.dirname(os.path.realpath(__file__))
 Path of current directory. More...
 
string MEM_POOL_PATH = f"{cacti_path}/cacti_master/example_mem_pool.yaml"
 Path to cached cacti simulated memories. More...
 
string CACTI_TOP_PATH = f"{cacti_path}/cacti_master/cacti_top.py"
 Path to cacti python script to extract costs. More...
 

Detailed Description

Class that provides the interface between ZigZag and CACTI.

Constructor & Destructor Documentation

◆ __init__()

def __init__ (   self)

Member Function Documentation

◆ create_item()

None create_item (   self,
str  mem_type,
int  size,
int  r_bw,
int  r_port,
int  w_port,
int  rw_port,
int  bank,
float   technology = 0.022,
str   mem_pool_path = MEM_POOL_PATH,
str   cacti_top_path = CACTI_TOP_PATH 
)

This function simulates a new item by calling CACTI7 based on the provided parameters.

Parameters
mem_pool_pathPath to cached cacti simulated memories
cacti_top_pathPath to cacti python script to extract costs
Here is the caller graph for this function:

◆ get_item()

tuple[float, float, float] get_item (   self,
*str  mem_name,
str  mem_type,
int  size,
int  r_bw,
int  r_port,
int  w_port,
int  rw_port,
int  bank,
float   technology = 0.022,
str   mem_pool_path = MEM_POOL_PATH,
str   cacti_top_path = CACTI_TOP_PATH 
)

This functions checks first if the memory with the provided parameters was already simulated once.

In case it hasn't been simulated, then it will create a new memory item based on the provided parameters.

Parameters
mem_pool_pathPath to cached cacti simulated memories
cacti_top_pathPath to cacti python script to extract costs
Here is the call graph for this function:

◆ item_exists()

bool item_exists (   self,
int  size,
int  r_bw,
int  r_port,
int  w_port,
int  rw_port,
int  bank,
float  technology,
str   mem_pool_path = MEM_POOL_PATH 
)

This function checks whether the provided memory configuration was already used in the past.

Parameters
mem_pool_pathPath to cached cacti simulated memories
Returns
Return wether the requested memory item has been simulated before.
Here is the caller graph for this function:

Member Data Documentation

◆ cacti_path

cacti_path = os.path.dirname(os.path.realpath(__file__))
static

Path of current directory.

◆ CACTI_TOP_PATH

string CACTI_TOP_PATH = f"{cacti_path}/cacti_master/cacti_top.py"
static

Path to cacti python script to extract costs.

◆ MEM_POOL_PATH

string MEM_POOL_PATH = f"{cacti_path}/cacti_master/example_mem_pool.yaml"
static

Path to cached cacti simulated memories.


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