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 of this compute engine; must be unique per deployemnt
Mapping between operator names and ONNXLayer implementations
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]