Deeploy.Targets.Neureka.Engine.NeurekaEngine

class Deeploy.Targets.Neureka.Engine.NeurekaEngine(name: str, Mapping={'Conv': ConvLayer(maps=[   NeurekaPWConv2DParser [   Neureka2DPWConvTemplate(uint8_t, uint8_t, int32_t) -> int32_t   Neureka2DPWConvTemplate(uint8_t, int8_t, int32_t) -> int32_t   Neureka2DPWConvTemplate(int8_t, uint8_t, int32_t) -> int32_t   Neureka2DPWConvTemplate(int8_t, int8_t, int32_t) -> int32_t   Neureka2DPWConvTemplate(uint8_t, uint8_t, int32_t) -> int32_t   Neureka2DPWConvTemplate(uint8_t, int8_t, int32_t) -> int32_t   Neureka2DPWConvTemplate(int8_t, uint8_t, int32_t) -> int32_t   Neureka2DPWConvTemplate(int8_t, int8_t, int32_t) -> int32_t ]   NeurekaDWConv2DParser [   Neureka2DDWConvTemplate(uint8_t, uint8_t, int32_t) -> int32_t   Neureka2DDWConvTemplate(uint8_t, int8_t, int32_t) -> int32_t   Neureka2DDWConvTemplate(int8_t, uint8_t, int32_t) -> int32_t   Neureka2DDWConvTemplate(int8_t, int8_t, int32_t) -> int32_t   Neureka2DDWConvTemplate(uint8_t, uint8_t, int32_t) -> int32_t   Neureka2DDWConvTemplate(uint8_t, int8_t, int32_t) -> int32_t   Neureka2DDWConvTemplate(int8_t, uint8_t, int32_t) -> int32_t   Neureka2DDWConvTemplate(int8_t, int8_t, int32_t) -> int32_t ]   NeurekaDenseConv2DParser [   Neureka2DDenseConvTemplate(uint8_t, uint8_t, int32_t) -> int32_t   Neureka2DDenseConvTemplate(uint8_t, int8_t, int32_t) -> int32_t   Neureka2DDenseConvTemplate(int8_t, uint8_t, int32_t) -> int32_t   Neureka2DDenseConvTemplate(int8_t, int8_t, int32_t) -> int32_t   Neureka2DDenseConvTemplate(uint8_t, uint8_t, int32_t) -> int32_t   Neureka2DDenseConvTemplate(uint8_t, int8_t, int32_t) -> int32_t   Neureka2DDenseConvTemplate(int8_t, uint8_t, int32_t) -> int32_t   Neureka2DDenseConvTemplate(int8_t, int8_t, int32_t) -> int32_t ] ]), 'RequantizedConv': PULPRQSConvLayer(maps=[   NeurekaRQSPWConv2DParser [   Neureka2DPWConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DPWConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DPWConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DPWConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> int8_t   Neureka2DPWConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DPWConvTemplate(int8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DPWConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DPWConvTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t   Neureka2DPWConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DPWConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DPWConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DPWConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> int8_t   Neureka2DPWConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DPWConvTemplate(int8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DPWConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DPWConvTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t ]   NeurekaRQSDWConv2DParser [   Neureka2DDWConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DDWConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DDWConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DDWConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> int8_t   Neureka2DDWConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DDWConvTemplate(int8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DDWConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DDWConvTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t   Neureka2DDWConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DDWConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DDWConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DDWConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> int8_t   Neureka2DDWConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DDWConvTemplate(int8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DDWConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DDWConvTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t ]   NeurekaRQSDenseConv2DParser [   Neureka2DDenseConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DDenseConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DDenseConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DDenseConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> int8_t   Neureka2DDenseConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DDenseConvTemplate(int8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DDenseConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DDenseConvTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t   Neureka2DDenseConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DDenseConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DDenseConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DDenseConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> int8_t   Neureka2DDenseConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DDenseConvTemplate(int8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DDenseConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DDenseConvTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t ] ])}, initCode: str = '\nneureka_siracusa_conf_t conf = {.max_stall = 8};\nneureka_nnx_init(neureka_siracusa_get_dev(), &conf);\n', includeList: ~typing.List[str] = ['pulp_nnx_neureka.h', 'pulp_nnx_util.h', 'neureka_siracusa_bsp.h', 'neureka.h', 'neureka_task.h'], enable3x3: bool = False, enableStrides: bool = False)

Bases: DeploymentEngine

Methods

__init__(name: str, Mapping={'Conv': ConvLayer(maps=[   NeurekaPWConv2DParser [   Neureka2DPWConvTemplate(uint8_t, uint8_t, int32_t) -> int32_t   Neureka2DPWConvTemplate(uint8_t, int8_t, int32_t) -> int32_t   Neureka2DPWConvTemplate(int8_t, uint8_t, int32_t) -> int32_t   Neureka2DPWConvTemplate(int8_t, int8_t, int32_t) -> int32_t   Neureka2DPWConvTemplate(uint8_t, uint8_t, int32_t) -> int32_t   Neureka2DPWConvTemplate(uint8_t, int8_t, int32_t) -> int32_t   Neureka2DPWConvTemplate(int8_t, uint8_t, int32_t) -> int32_t   Neureka2DPWConvTemplate(int8_t, int8_t, int32_t) -> int32_t ]   NeurekaDWConv2DParser [   Neureka2DDWConvTemplate(uint8_t, uint8_t, int32_t) -> int32_t   Neureka2DDWConvTemplate(uint8_t, int8_t, int32_t) -> int32_t   Neureka2DDWConvTemplate(int8_t, uint8_t, int32_t) -> int32_t   Neureka2DDWConvTemplate(int8_t, int8_t, int32_t) -> int32_t   Neureka2DDWConvTemplate(uint8_t, uint8_t, int32_t) -> int32_t   Neureka2DDWConvTemplate(uint8_t, int8_t, int32_t) -> int32_t   Neureka2DDWConvTemplate(int8_t, uint8_t, int32_t) -> int32_t   Neureka2DDWConvTemplate(int8_t, int8_t, int32_t) -> int32_t ]   NeurekaDenseConv2DParser [   Neureka2DDenseConvTemplate(uint8_t, uint8_t, int32_t) -> int32_t   Neureka2DDenseConvTemplate(uint8_t, int8_t, int32_t) -> int32_t   Neureka2DDenseConvTemplate(int8_t, uint8_t, int32_t) -> int32_t   Neureka2DDenseConvTemplate(int8_t, int8_t, int32_t) -> int32_t   Neureka2DDenseConvTemplate(uint8_t, uint8_t, int32_t) -> int32_t   Neureka2DDenseConvTemplate(uint8_t, int8_t, int32_t) -> int32_t   Neureka2DDenseConvTemplate(int8_t, uint8_t, int32_t) -> int32_t   Neureka2DDenseConvTemplate(int8_t, int8_t, int32_t) -> int32_t ] ]), 'RequantizedConv': PULPRQSConvLayer(maps=[   NeurekaRQSPWConv2DParser [   Neureka2DPWConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DPWConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DPWConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DPWConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> int8_t   Neureka2DPWConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DPWConvTemplate(int8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DPWConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DPWConvTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t   Neureka2DPWConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DPWConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DPWConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DPWConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> int8_t   Neureka2DPWConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DPWConvTemplate(int8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DPWConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DPWConvTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t ]   NeurekaRQSDWConv2DParser [   Neureka2DDWConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DDWConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DDWConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DDWConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> int8_t   Neureka2DDWConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DDWConvTemplate(int8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DDWConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DDWConvTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t   Neureka2DDWConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DDWConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DDWConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DDWConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> int8_t   Neureka2DDWConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DDWConvTemplate(int8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DDWConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DDWConvTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t ]   NeurekaRQSDenseConv2DParser [   Neureka2DDenseConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DDenseConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DDenseConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DDenseConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> int8_t   Neureka2DDenseConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DDenseConvTemplate(int8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DDenseConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DDenseConvTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t   Neureka2DDenseConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DDenseConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DDenseConvTemplate(uint8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DDenseConvTemplate(uint8_t, int8_t, int32_t, int32_t) -> int8_t   Neureka2DDenseConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> uint8_t   Neureka2DDenseConvTemplate(int8_t, int8_t, int32_t, int32_t) -> uint8_t   Neureka2DDenseConvTemplate(int8_t, uint8_t, int32_t, int32_t) -> int8_t   Neureka2DDenseConvTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t ] ])}, initCode: str = '\nneureka_siracusa_conf_t conf = {.max_stall = 8};\nneureka_nnx_init(neureka_siracusa_get_dev(), &conf);\n', includeList: ~typing.List[str] = ['pulp_nnx_neureka.h', 'pulp_nnx_util.h', 'neureka_siracusa_bsp.h', 'neureka.h', 'neureka_task.h'], enable3x3: bool = False, enableStrides: bool = False) None

Instantiate a new engine

Parameters:
  • name (str) – Name of this compute engine; must be unique per deployemnt

  • Mapping (Dict[str, Union[ONNXLayer, Callable[[gs.Node], Any]]]) – Mapping between operator names and ONNXLayer implementations

  • initCode (str) – Static initialization code for this engine

  • includeList (List[str]) – List of header files to be included with #include directives

__init__(name[, Mapping])

Instantiate a new engine

canExecute(node)

Return whether this accelerator can execute an operator

isDWConv(node)

isDenseConv(node)

isPWConv(node)

Attributes

name

Name of this compute engine; must be unique per deployemnt

Mapping

Mapping between operator names and ONNXLayer implementations

includeList

List of header files to be included with #include directives

canExecute(node: Node) bool

Return whether this accelerator can execute an operator

Parameters:

node (gs.Node) – Operator to be checked

Returns:

True if operator can be run on this Engine, False otherwise

Return type:

bool

name

Name of this compute engine; must be unique per deployemnt

Type:

str

Mapping

Mapping between operator names and ONNXLayer implementations

includeList

List of header files to be included with #include directives

Type:

List[str]