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.
|
Functions | |
def | shorten_onnx_layer_name (str name) |
Names generated in the ONNX format are quite long (e.g. More... | |
def | get_mem_energy_single_op (CostModelEvaluation cme, LayerOperand op, int mem_level) |
def | get_energy_array (list[CostModelEvaluation] cmes, list[LayerOperand] all_ops, list[MemoryInstance] all_mems) |
Convert the given list of cmes to a numpy array with the energy per layer, memory level, operand and data direction. More... | |
def | get_latency_array (list[CostModelEvaluation] cmes) |
def | bar_plot_cost_model_evaluations_breakdown (list[CostModelEvaluationABC] cmes, str save_path) |
Variables | |
int | SMALLEST_SIZE = 10 |
int | SMALLER_SIZE = 12 |
int | SMALL_SIZE = 14 |
int | MEDIUM_SIZE = 16 |
int | BIG_SIZE = 18 |
int | BIGGER_SIZE = 20 |
size | |
titlesize | |
labelsize | |
fontsize | |
int | BAR_WIDTH = 1 |
int | BAR_SPACING = 0 |
int | GROUP_SPACING = 1 |
def zigzag.visualization.results.plot_cme.bar_plot_cost_model_evaluations_breakdown | ( | list[CostModelEvaluationABC] | cmes, |
str | save_path | ||
) |
def zigzag.visualization.results.plot_cme.get_energy_array | ( | list[CostModelEvaluation] | cmes, |
list[LayerOperand] | all_ops, | ||
list[MemoryInstance] | all_mems | ||
) |
Convert the given list of cmes to a numpy array with the energy per layer, memory level, operand and data direction.
Output shape: (cmes, all_mems, all_ops, data_directions)
def zigzag.visualization.results.plot_cme.get_latency_array | ( | list[CostModelEvaluation] | cmes | ) |
def zigzag.visualization.results.plot_cme.get_mem_energy_single_op | ( | CostModelEvaluation | cme, |
LayerOperand | op, | ||
int | mem_level | ||
) |
def zigzag.visualization.results.plot_cme.shorten_onnx_layer_name | ( | str | name | ) |
Names generated in the ONNX format are quite long (e.g.
layer1/layer1.0/conv2/Conv
). This function extracts the most informative part (conv2/Conv
in this case)
int BAR_SPACING = 0 |
int BAR_WIDTH = 1 |
int BIG_SIZE = 18 |
int BIGGER_SIZE = 20 |
fontsize |
int GROUP_SPACING = 1 |
labelsize |
int MEDIUM_SIZE = 16 |
size |
int SMALL_SIZE = 14 |
int SMALLER_SIZE = 12 |
int SMALLEST_SIZE = 10 |
titlesize |