Deeploy.Targets.Snitch.Platform.SnitchClusterEngine
- class Deeploy.Targets.Snitch.Platform.SnitchClusterEngine(name: str, Mapping={'Add': AddLayer(maps=[ SnitchAddParser [ _SnitchAddTemplate(int8_t, int8_t) -> int32_t NodeTemplate(float32_t, float32_t) -> float32_t ] ]), 'Concat': ConcatLayer(maps=[ ConcatParser [ _ConcatTemplate(float32_t, float32_t) -> float32_t ] ]), 'Div': DivLayer(maps=[ SnitchDivParser [ NodeTemplate(float32_t, float32_t) -> float32_t ] ]), 'Gather': GatherLayer(maps=[ GatherParser [ NodeTemplate(float32_t, int32_t) -> float32_t ] ]), 'Gemm': GEMMLayer(maps=[ SnitchGEMMParser [ SnitchGemmTemplate(int8_t, int8_t, int32_t) -> int32_t NodeTemplate(float32_t, float32_t, float32_t) -> float32_t ] ]), 'HardSwish': HardSwishLayer(maps=[ SnitchHardSwishParser [ FloatHardSwishTemplate(float32_t) -> float32_t ] ]), 'MatMul': MatMulLayer(maps=[ MatMulParser [ _MatMulTemplate(int8_t, int8_t) -> int32_t NodeTemplate(float32_t, float32_t) -> float32_t ] ]), 'Mul': MulLayer(maps=[ SnitchMulParser [ NodeTemplate(float32_t, float32_t) -> float32_t ] ]), 'Pad': PadLayer(maps=[ Pad1DParser [ _Pad1DTemplate(int8_t) -> int8_t _Pad1DTemplate(int16_t) -> int16_t _Pad1DTemplate(int32_t) -> int32_t _Pad1DTemplate(int64_t) -> int64_t NodeTemplate(bfloat16_t) -> bfloat16_t NodeTemplate(float16_t) -> float16_t NodeTemplate(float32_t) -> float32_t NodeTemplate(float64_t) -> float64_t ] Pad2DParser [ _Pad2DTemplate(int8_t) -> int8_t _Pad2DTemplate(int16_t) -> int16_t _Pad2DTemplate(int32_t) -> int32_t _Pad2DTemplate(int64_t) -> int64_t NodeTemplate(float32_t, float32_t, float32_t) -> float32_t ] ]), 'RMSNorm': RMSNormLayer(maps=[ SnitchRMSNormParser [ FloatRMSNormTemplate(float32_t, float32_t) -> float32_t ] ]), 'RQGemm': RQGEMMLayer(maps=[ SnitchRQGEMMParser [ SnitchRqGemmTemplate(int8_t, int8_t, int32_t, int32_t, int32_t) -> int8_t ] ]), 'RQIntegerDiv': RQIntegerDivLayer(maps=[ RQIntegerDivParser [ NodeTemplate(int32_t, int32_t, int32_t, int32_t, int32_t) -> int8_t ] ]), 'RequantizedAdd': AddLayer(maps=[ RQAddParser [ RQAddTemplate(int8_t, int8_t) -> int8_t ] ]), 'Reshape': ReshapeLayer(maps=[ ReshapeParser [ _ReshapeTemplate(float32_t) -> float32_t ] ]), 'Softmax': SoftmaxLayer(maps=[ SoftmaxParser [ iSoftmaxPreAllocatedBuffTemplate(int8_t) -> uint8_t iSoftmaxPreAllocatedBuffTemplate(uint8_t) -> uint8_t NodeTemplate(float32_t) -> float32_t ] ]), 'Transpose': TransposeLayer(maps=[ TransposeParser [ SnitchTransposeTemplate(float32_t) -> float32_t ] ]), 'Unsqueeze': ReshapeLayer(maps=[ UnsqueezeParser [ _ReshapeTemplate(float32_t) -> float32_t ] ]), 'iLayerNorm': LayerNormLayer(maps=[ iLayerNormParser [ _iLayerNormTemplate(int8_t, int32_t, int32_t) -> int8_t NodeTemplate(float32_t, float32_t, float32_t) -> float32_t, float32_t, float32_t ] ]), 'iNoNorm': iNoNormLayer(maps=[ iNoNormParser [ _iNoNormTemplate(int8_t, int8_t, int32_t) -> int8_t ] ]), 'iSoftmax': SoftmaxLayer(maps=[ iSoftmaxParser [ iSoftmaxPreAllocatedBuffTemplate(int8_t) -> uint8_t iSoftmaxPreAllocatedBuffTemplate(uint8_t) -> uint8_t NodeTemplate(float32_t) -> float32_t ] ])}, initCode='', includeList=['snrt.h', 'DeeploySnitchMath.h'])
Bases:
DeploymentEngineMethods
- __init__(name: str, Mapping={'Add': AddLayer(maps=[ SnitchAddParser [ _SnitchAddTemplate(int8_t, int8_t) -> int32_t NodeTemplate(float32_t, float32_t) -> float32_t ] ]), 'Concat': ConcatLayer(maps=[ ConcatParser [ _ConcatTemplate(float32_t, float32_t) -> float32_t ] ]), 'Div': DivLayer(maps=[ SnitchDivParser [ NodeTemplate(float32_t, float32_t) -> float32_t ] ]), 'Gather': GatherLayer(maps=[ GatherParser [ NodeTemplate(float32_t, int32_t) -> float32_t ] ]), 'Gemm': GEMMLayer(maps=[ SnitchGEMMParser [ SnitchGemmTemplate(int8_t, int8_t, int32_t) -> int32_t NodeTemplate(float32_t, float32_t, float32_t) -> float32_t ] ]), 'HardSwish': HardSwishLayer(maps=[ SnitchHardSwishParser [ FloatHardSwishTemplate(float32_t) -> float32_t ] ]), 'MatMul': MatMulLayer(maps=[ MatMulParser [ _MatMulTemplate(int8_t, int8_t) -> int32_t NodeTemplate(float32_t, float32_t) -> float32_t ] ]), 'Mul': MulLayer(maps=[ SnitchMulParser [ NodeTemplate(float32_t, float32_t) -> float32_t ] ]), 'Pad': PadLayer(maps=[ Pad1DParser [ _Pad1DTemplate(int8_t) -> int8_t _Pad1DTemplate(int16_t) -> int16_t _Pad1DTemplate(int32_t) -> int32_t _Pad1DTemplate(int64_t) -> int64_t NodeTemplate(bfloat16_t) -> bfloat16_t NodeTemplate(float16_t) -> float16_t NodeTemplate(float32_t) -> float32_t NodeTemplate(float64_t) -> float64_t ] Pad2DParser [ _Pad2DTemplate(int8_t) -> int8_t _Pad2DTemplate(int16_t) -> int16_t _Pad2DTemplate(int32_t) -> int32_t _Pad2DTemplate(int64_t) -> int64_t NodeTemplate(float32_t, float32_t, float32_t) -> float32_t ] ]), 'RMSNorm': RMSNormLayer(maps=[ SnitchRMSNormParser [ FloatRMSNormTemplate(float32_t, float32_t) -> float32_t ] ]), 'RQGemm': RQGEMMLayer(maps=[ SnitchRQGEMMParser [ SnitchRqGemmTemplate(int8_t, int8_t, int32_t, int32_t, int32_t) -> int8_t ] ]), 'RQIntegerDiv': RQIntegerDivLayer(maps=[ RQIntegerDivParser [ NodeTemplate(int32_t, int32_t, int32_t, int32_t, int32_t) -> int8_t ] ]), 'RequantizedAdd': AddLayer(maps=[ RQAddParser [ RQAddTemplate(int8_t, int8_t) -> int8_t ] ]), 'Reshape': ReshapeLayer(maps=[ ReshapeParser [ _ReshapeTemplate(float32_t) -> float32_t ] ]), 'Softmax': SoftmaxLayer(maps=[ SoftmaxParser [ iSoftmaxPreAllocatedBuffTemplate(int8_t) -> uint8_t iSoftmaxPreAllocatedBuffTemplate(uint8_t) -> uint8_t NodeTemplate(float32_t) -> float32_t ] ]), 'Transpose': TransposeLayer(maps=[ TransposeParser [ SnitchTransposeTemplate(float32_t) -> float32_t ] ]), 'Unsqueeze': ReshapeLayer(maps=[ UnsqueezeParser [ _ReshapeTemplate(float32_t) -> float32_t ] ]), 'iLayerNorm': LayerNormLayer(maps=[ iLayerNormParser [ _iLayerNormTemplate(int8_t, int32_t, int32_t) -> int8_t NodeTemplate(float32_t, float32_t, float32_t) -> float32_t, float32_t, float32_t ] ]), 'iNoNorm': iNoNormLayer(maps=[ iNoNormParser [ _iNoNormTemplate(int8_t, int8_t, int32_t) -> int8_t ] ]), 'iSoftmax': SoftmaxLayer(maps=[ iSoftmaxParser [ iSoftmaxPreAllocatedBuffTemplate(int8_t) -> uint8_t iSoftmaxPreAllocatedBuffTemplate(uint8_t) -> uint8_t NodeTemplate(float32_t) -> float32_t ] ])}, initCode='', includeList=['snrt.h', 'DeeploySnitchMath.h']) 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
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]