Deeploy.Targets.PULPOpen.Platform.PULPClusterEngine
- class Deeploy.Targets.PULPOpen.Platform.PULPClusterEngine(name: str, Mapping={'Add': AddLayer(maps=[ AddParser [ _AddTemplate(int8_t, int8_t) -> int32_t _AddTemplate(int8_t, uint8_t) -> int32_t _AddTemplate(int8_t, int16_t) -> int32_t _AddTemplate(int8_t, uint16_t) -> int32_t _AddTemplate(int8_t, int32_t) -> int32_t _AddTemplate(int8_t, uint32_t) -> int32_t _AddTemplate(int8_t, int64_t) -> int32_t _AddTemplate(int8_t, uint64_t) -> int32_t _AddTemplate(uint8_t, int8_t) -> int32_t _AddTemplate(uint8_t, uint8_t) -> int32_t _AddTemplate(uint8_t, int16_t) -> int32_t _AddTemplate(uint8_t, uint16_t) -> int32_t _AddTemplate(uint8_t, int32_t) -> int32_t _AddTemplate(uint8_t, uint32_t) -> int32_t _AddTemplate(uint8_t, int64_t) -> int32_t _AddTemplate(uint8_t, uint64_t) -> int32_t _AddTemplate(int16_t, int8_t) -> int32_t _AddTemplate(int16_t, uint8_t) -> int32_t _AddTemplate(int16_t, int16_t) -> int32_t _AddTemplate(int16_t, uint16_t) -> int32_t _AddTemplate(int16_t, int32_t) -> int32_t _AddTemplate(int16_t, uint32_t) -> int32_t _AddTemplate(int16_t, int64_t) -> int32_t _AddTemplate(int16_t, uint64_t) -> int32_t _AddTemplate(uint16_t, int8_t) -> int32_t _AddTemplate(uint16_t, uint8_t) -> int32_t _AddTemplate(uint16_t, int16_t) -> int32_t _AddTemplate(uint16_t, uint16_t) -> int32_t _AddTemplate(uint16_t, int32_t) -> int32_t _AddTemplate(uint16_t, uint32_t) -> int32_t _AddTemplate(uint16_t, int64_t) -> int32_t _AddTemplate(uint16_t, uint64_t) -> int32_t _AddTemplate(int32_t, int8_t) -> int32_t _AddTemplate(int32_t, uint8_t) -> int32_t _AddTemplate(int32_t, int16_t) -> int32_t _AddTemplate(int32_t, uint16_t) -> int32_t _AddTemplate(int32_t, int32_t) -> int32_t _AddTemplate(int32_t, uint32_t) -> int32_t _AddTemplate(int32_t, int64_t) -> int32_t _AddTemplate(int32_t, uint64_t) -> int32_t _AddTemplate(uint32_t, int8_t) -> int32_t _AddTemplate(uint32_t, uint8_t) -> int32_t _AddTemplate(uint32_t, int16_t) -> int32_t _AddTemplate(uint32_t, uint16_t) -> int32_t _AddTemplate(uint32_t, int32_t) -> int32_t _AddTemplate(uint32_t, uint32_t) -> int32_t _AddTemplate(uint32_t, int64_t) -> int32_t _AddTemplate(uint32_t, uint64_t) -> int32_t _AddTemplate(int64_t, int8_t) -> int32_t _AddTemplate(int64_t, uint8_t) -> int32_t _AddTemplate(int64_t, int16_t) -> int32_t _AddTemplate(int64_t, uint16_t) -> int32_t _AddTemplate(int64_t, int32_t) -> int32_t _AddTemplate(int64_t, uint32_t) -> int32_t _AddTemplate(int64_t, int64_t) -> int32_t _AddTemplate(int64_t, uint64_t) -> int32_t _AddTemplate(uint64_t, int8_t) -> int32_t _AddTemplate(uint64_t, uint8_t) -> int32_t _AddTemplate(uint64_t, int16_t) -> int32_t _AddTemplate(uint64_t, uint16_t) -> int32_t _AddTemplate(uint64_t, int32_t) -> int32_t _AddTemplate(uint64_t, uint32_t) -> int32_t _AddTemplate(uint64_t, int64_t) -> int32_t _AddTemplate(uint64_t, uint64_t) -> int32_t NodeTemplate(float32_t, float32_t) -> float32_t ] ]), 'Concat': ConcatLayer(maps=[ ConcatParser [ _ConcatTemplate(int8_t, int8_t) -> int8_t _ConcatTemplate(uint8_t, uint8_t) -> uint8_t _ConcatTemplate(int16_t, int16_t) -> int16_t _ConcatTemplate(uint16_t, uint16_t) -> uint16_t _ConcatTemplate(int32_t, int32_t) -> int32_t _ConcatTemplate(uint32_t, uint32_t) -> uint32_t _ConcatTemplate(int64_t, int64_t) -> int64_t _ConcatTemplate(uint64_t, uint64_t) -> uint64_t ] ]), 'Conv': ConvLayer(maps=[ PULPFPConv2DParser [ PULP2DFloatConvIm2ColTemplate(float32_t, float32_t, float32_t) -> float32_t ] ]), 'Dequant': QuantLayer(maps=[ DequantParser [ _DequantTemplate(int8_t) -> float32_t _DequantTemplate(int32_t) -> float32_t ] ]), 'Flatten': ReshapeLayer(maps=[ FlattenParser [ _ReshapeTemplate(int8_t, int32_t) -> int8_t _ReshapeTemplate(uint8_t, int32_t) -> uint8_t _ReshapeTemplate(int16_t, int32_t) -> int16_t _ReshapeTemplate(uint16_t, int32_t) -> uint16_t _ReshapeTemplate(int32_t, int32_t) -> int32_t _ReshapeTemplate(uint32_t, int32_t) -> uint32_t _ReshapeTemplate(int64_t, int32_t) -> int64_t _ReshapeTemplate(uint64_t, int32_t) -> uint64_t _ReshapeTemplate(float32_t, int8_t) -> float32_t _ReshapeTemplate(float32_t, uint8_t) -> float32_t _ReshapeTemplate(float32_t, int16_t) -> float32_t _ReshapeTemplate(float32_t, uint16_t) -> float32_t _ReshapeTemplate(float32_t, int32_t) -> float32_t _ReshapeTemplate(float32_t, uint32_t) -> float32_t _ReshapeTemplate(float32_t, int64_t) -> float32_t _ReshapeTemplate(float32_t, uint64_t) -> float32_t ] ]), 'Gather': GatherLayer(maps=[ GatherParser [ NodeTemplate(float32_t, int8_t) -> float32_t NodeTemplate(float32_t, uint8_t) -> float32_t NodeTemplate(float32_t, int16_t) -> float32_t NodeTemplate(float32_t, uint16_t) -> float32_t NodeTemplate(float32_t, int32_t) -> float32_t NodeTemplate(float32_t, uint32_t) -> float32_t NodeTemplate(float32_t, int64_t) -> float32_t NodeTemplate(float32_t, uint64_t) -> float32_t ] ]), 'Gelu': GELULayer(maps=[ GELUParser [ NodeTemplate(float32_t, float32_t) -> float32_t ] ]), 'Gemm': GEMMLayer(maps=[ GEMMParser [ NodeTemplate(float32_t, float32_t, float32_t) -> float32_t ] PULPGEMMParser [ _GemmTemplate(int8_t, int8_t, int32_t) -> int32_t NodeTemplate(float32_t, float32_t, float32_t) -> float32_t ] ]), 'IntegerMean': ReduceMeanLayer(maps=[ ReduceMeanParser [ _ReduceMeanTemplate(int8_t) -> int8_t _ReduceMeanTemplate(uint8_t) -> uint8_t _ReduceMeanTemplate(int16_t) -> int16_t _ReduceMeanTemplate(uint16_t) -> uint16_t _ReduceMeanTemplate(int32_t) -> int32_t _ReduceMeanTemplate(uint32_t) -> uint32_t _ReduceMeanTemplate(int64_t) -> int64_t _ReduceMeanTemplate(uint64_t) -> uint64_t ] ]), 'LayerNormalization': LayerNormLayer(maps=[ LayerNormParser [ NodeTemplate(float32_t, float32_t, float32_t) -> float32_t ] ]), 'MatMul': MatMulLayer(maps=[ MatMulParser [ _MatMulTemplate(int8_t, int8_t) -> int32_t NodeTemplate(float32_t, float32_t) -> float32_t ] ]), 'MaxPool': MaxPoolLayer(maps=[ MaxPool2DParser [ PULPMaxPoolTemplate(int8_t) -> int8_t PULPMaxPoolTemplate(uint8_t) -> uint8_t NodeTemplate(float32_t) -> float32_t ] ]), 'Mul': MulLayer(maps=[ MulParser [ _MulTemplate(int8_t, int8_t) -> int32_t _MulTemplate(int8_t, int16_t) -> int32_t _MulTemplate(int8_t, int32_t) -> int32_t _MulTemplate(int8_t, int64_t) -> int32_t _MulTemplate(int16_t, int8_t) -> int32_t _MulTemplate(int16_t, int16_t) -> int32_t _MulTemplate(int16_t, int32_t) -> int32_t _MulTemplate(int16_t, int64_t) -> int32_t _MulTemplate(int32_t, int8_t) -> int32_t _MulTemplate(int32_t, int16_t) -> int32_t _MulTemplate(int32_t, int32_t) -> int32_t _MulTemplate(int32_t, int64_t) -> int32_t _MulTemplate(int64_t, int8_t) -> int32_t _MulTemplate(int64_t, int16_t) -> int32_t _MulTemplate(int64_t, int32_t) -> int32_t _MulTemplate(int64_t, int64_t) -> int32_t 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 ] 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 ] ]), 'Quant': QuantLayer(maps=[ QuantParser [ _QuantTemplate(float32_t) -> int8_t ] ]), 'RQIntegerDiv': RQIntegerDivLayer(maps=[ RQIntegerDivParser [ NodeTemplate(int32_t, int32_t, int32_t, int32_t, int32_t) -> int8_t ] ]), 'ReduceMean': ReduceMeanLayer(maps=[ ReduceMeanParser [ _ReduceMeanTemplate(int8_t) -> int8_t _ReduceMeanTemplate(uint8_t) -> uint8_t _ReduceMeanTemplate(int16_t) -> int16_t _ReduceMeanTemplate(uint16_t) -> uint16_t _ReduceMeanTemplate(int32_t) -> int32_t _ReduceMeanTemplate(uint32_t) -> uint32_t _ReduceMeanTemplate(int64_t) -> int64_t _ReduceMeanTemplate(uint64_t) -> uint64_t ] ]), 'ReduceSum': ReduceSumLayer(maps=[ ReduceSumParser [ NodeTemplate(float32_t) -> float32_t ] ]), 'Relu': ReluLayer(maps=[ ReluParser [ NodeTemplate(float32_t) -> float32_t ] ]), 'RequantShift': RequantShiftLayer(maps=[ UniformRequantShiftParser [ _UniformRequantShiftTemplate(int8_t, int32_t, int32_t) -> int8_t _UniformRequantShiftTemplate(uint8_t, int32_t, int32_t) -> int8_t _UniformRequantShiftTemplate(int16_t, int32_t, int32_t) -> int8_t _UniformRequantShiftTemplate(uint16_t, int32_t, int32_t) -> int8_t _UniformRequantShiftTemplate(int32_t, int32_t, int32_t) -> int8_t _UniformRequantShiftTemplate(uint32_t, int32_t, int32_t) -> int8_t _UniformRequantShiftTemplate(int64_t, int32_t, int32_t) -> int8_t _UniformRequantShiftTemplate(uint64_t, int32_t, int32_t) -> int8_t ] RequantShiftParser [ _RequantShiftTemplate(int8_t, int32_t, int32_t) -> int8_t _RequantShiftTemplate(uint8_t, int32_t, int32_t) -> int8_t _RequantShiftTemplate(int16_t, int32_t, int32_t) -> int8_t _RequantShiftTemplate(uint16_t, int32_t, int32_t) -> int8_t _RequantShiftTemplate(int32_t, int32_t, int32_t) -> int8_t _RequantShiftTemplate(uint32_t, int32_t, int32_t) -> int8_t _RequantShiftTemplate(int64_t, int32_t, int32_t) -> int8_t _RequantShiftTemplate(uint64_t, int32_t, int32_t) -> int8_t _RequantShiftTemplate(int8_t, int32_t, int32_t) -> uint8_t _RequantShiftTemplate(uint8_t, int32_t, int32_t) -> uint8_t _RequantShiftTemplate(int16_t, int32_t, int32_t) -> uint8_t _RequantShiftTemplate(uint16_t, int32_t, int32_t) -> uint8_t _RequantShiftTemplate(int32_t, int32_t, int32_t) -> uint8_t _RequantShiftTemplate(uint32_t, int32_t, int32_t) -> uint8_t _RequantShiftTemplate(int64_t, int32_t, int32_t) -> uint8_t _RequantShiftTemplate(uint64_t, int32_t, int32_t) -> uint8_t ] ]), 'RequantizedAdd': AddLayer(maps=[ RQAddParser [ RQAddTemplate(int8_t, int8_t) -> int8_t RQAddTemplate(int8_t, int8_t) -> uint8_t RQAddTemplate(int8_t, uint8_t) -> int8_t RQAddTemplate(int8_t, uint8_t) -> uint8_t RQAddTemplate(uint8_t, int8_t) -> int8_t RQAddTemplate(uint8_t, int8_t) -> uint8_t RQAddTemplate(uint8_t, uint8_t) -> int8_t RQAddTemplate(uint8_t, uint8_t) -> uint8_t ] ]), 'RequantizedConv': PULPRQSConvLayer(maps=[ PULPConv2DParser [ PULP2DConvTemplate(int8_t, int8_t, int32_t, int32_t, int32_t) -> int8_t PULP2DConvTemplate(int8_t, int8_t, int32_t, int32_t, int32_t) -> uint8_t PULP2DConvTemplate(uint8_t, int8_t, int32_t, int32_t, int32_t) -> int8_t PULP2DConvTemplate(uint8_t, int8_t, int32_t, int32_t, int32_t) -> uint8_t ] PULPDWConv2DParser [ PULP2DDWConvTemplate(int8_t, int8_t, int32_t, int32_t, int32_t) -> int8_t PULP2DDWConvTemplate(int8_t, int8_t, int32_t, int32_t, int32_t) -> uint8_t PULP2DDWConvTemplate(uint8_t, int8_t, int32_t, int32_t, int32_t) -> int8_t PULP2DDWConvTemplate(uint8_t, int8_t, int32_t, int32_t, int32_t) -> uint8_t ] PULPConv1DParser [ PULP1DConvTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t ] PULPDWConv1DParser [ PULP1DDWConvTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t ] ]), 'RequantizedGemm': PULPRQSGEMMLayer(maps=[ PULPMatrixVecParser [ _PULPMatrixVectorTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t ] PULPTallGEMMParser [ _PULPTallGEMMTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t ] PULPGEMMParser [ PULPGEMMTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t PULPGEMMTemplate(uint8_t, int8_t, int32_t, int32_t) -> uint8_t PULPGEMMTemplate(int8_t, int8_t, int32_t, int32_t) -> uint8_t PULPGEMMTemplate(uint8_t, int8_t, int32_t, int32_t) -> int8_t ] ]), 'RequantizediGELU': RQSiGELULayer(maps=[ RQSiGELUParser [ _RQSiGELUTemplate(int8_t, int32_t, int32_t, int32_t) -> int8_t ] ]), 'RequantizediHardswish': RQSiHardswishLayer(maps=[ RQSiHardswishParser [ _RQSiHardswishTemplate(int8_t, int32_t, int32_t, int32_t) -> int8_t ] ]), 'Reshape': ReshapeLayer(maps=[ ReshapeParser [ _ReshapeTemplate(int8_t, int32_t) -> int8_t _ReshapeTemplate(uint8_t, int32_t) -> uint8_t _ReshapeTemplate(int16_t, int32_t) -> int16_t _ReshapeTemplate(uint16_t, int32_t) -> uint16_t _ReshapeTemplate(int32_t, int32_t) -> int32_t _ReshapeTemplate(uint32_t, int32_t) -> uint32_t _ReshapeTemplate(int64_t, int32_t) -> int64_t _ReshapeTemplate(uint64_t, int32_t) -> uint64_t _ReshapeTemplate(float32_t, int8_t) -> float32_t _ReshapeTemplate(float32_t, uint8_t) -> float32_t _ReshapeTemplate(float32_t, int16_t) -> float32_t _ReshapeTemplate(float32_t, uint16_t) -> float32_t _ReshapeTemplate(float32_t, int32_t) -> float32_t _ReshapeTemplate(float32_t, uint32_t) -> float32_t _ReshapeTemplate(float32_t, int64_t) -> float32_t _ReshapeTemplate(float32_t, uint64_t) -> float32_t ] ]), 'SGD': SGDLayer(maps=[ SGDParser [ NodeTemplate(float32_t, float32_t) -> float32_t ] ]), 'Slice': SliceLayer(maps=[ SliceParser [ _SliceTemplate(int8_t, uint8_t, uint8_t, uint8_t, uint8_t) -> int8_t _SliceTemplate(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t) -> int8_t _SliceTemplate(int16_t, uint8_t, uint8_t, uint8_t, uint8_t) -> int8_t _SliceTemplate(uint16_t, uint8_t, uint8_t, uint8_t, uint8_t) -> int8_t _SliceTemplate(int32_t, uint8_t, uint8_t, uint8_t, uint8_t) -> int8_t _SliceTemplate(uint32_t, uint8_t, uint8_t, uint8_t, uint8_t) -> int8_t _SliceTemplate(int64_t, uint8_t, uint8_t, uint8_t, uint8_t) -> int8_t _SliceTemplate(uint64_t, uint8_t, uint8_t, uint8_t, uint8_t) -> int8_t ] ]), 'Softmax': SoftmaxLayer(maps=[ SoftmaxParser [ PULPiSoftmaxTemplate(int8_t) -> uint8_t PULPiSoftmaxTemplate(uint8_t) -> uint8_t NodeTemplate(float32_t) -> float32_t ] ]), 'SoftmaxCrossEntropyLoss': SoftmaxCrossEntropyLossLayer(maps=[ SoftmaxCrossEntropyLossParser [ NodeTemplate(float32_t, int8_t) -> float32_t NodeTemplate(float32_t, uint8_t) -> float32_t NodeTemplate(float32_t, int16_t) -> float32_t NodeTemplate(float32_t, uint16_t) -> float32_t NodeTemplate(float32_t, int32_t) -> float32_t NodeTemplate(float32_t, uint32_t) -> float32_t NodeTemplate(float32_t, int64_t) -> float32_t NodeTemplate(float32_t, uint64_t) -> float32_t ] ]), 'SoftmaxCrossEntropyLossGrad': SoftmaxCrossEntropyLossGradLayer(maps=[ SoftmaxCrossEntropyLossGradParser [ NodeTemplate(float32_t, int8_t) -> float32_t NodeTemplate(float32_t, uint8_t) -> float32_t NodeTemplate(float32_t, int16_t) -> float32_t NodeTemplate(float32_t, uint16_t) -> float32_t NodeTemplate(float32_t, int32_t) -> float32_t NodeTemplate(float32_t, uint32_t) -> float32_t NodeTemplate(float32_t, int64_t) -> float32_t NodeTemplate(float32_t, uint64_t) -> float32_t ] ]), 'SoftmaxGrad': SoftmaxGradLayer(maps=[ SoftmaxGradParser [ NodeTemplate(float32_t, float32_t) -> float32_t ] ]), 'Squeeze': ReshapeLayer(maps=[ UnsqueezeParser [ _ReshapeTemplate(int8_t, int32_t) -> int8_t _ReshapeTemplate(uint8_t, int32_t) -> uint8_t _ReshapeTemplate(int16_t, int32_t) -> int16_t _ReshapeTemplate(uint16_t, int32_t) -> uint16_t _ReshapeTemplate(int32_t, int32_t) -> int32_t _ReshapeTemplate(uint32_t, int32_t) -> uint32_t _ReshapeTemplate(int64_t, int32_t) -> int64_t _ReshapeTemplate(uint64_t, int32_t) -> uint64_t _ReshapeTemplate(float32_t, int8_t) -> float32_t _ReshapeTemplate(float32_t, uint8_t) -> float32_t _ReshapeTemplate(float32_t, int16_t) -> float32_t _ReshapeTemplate(float32_t, uint16_t) -> float32_t _ReshapeTemplate(float32_t, int32_t) -> float32_t _ReshapeTemplate(float32_t, uint32_t) -> float32_t _ReshapeTemplate(float32_t, int64_t) -> float32_t _ReshapeTemplate(float32_t, uint64_t) -> float32_t ] ]), 'Transpose': TransposeLayer(maps=[ TransposeParser [ PULPTransposeTemplate(int8_t) -> int8_t PULPTransposeTemplate(uint8_t) -> uint8_t PULPTransposeTemplate(int16_t) -> int16_t PULPTransposeTemplate(uint16_t) -> uint16_t PULPTransposeTemplate(int32_t) -> int32_t PULPTransposeTemplate(uint32_t) -> uint32_t PULPTransposeTemplate(int64_t) -> int64_t PULPTransposeTemplate(uint64_t) -> uint64_t PULPTransposeTemplate(float32_t) -> float32_t ] ]), 'Unsqueeze': ReshapeLayer(maps=[ UnsqueezeParser [ _ReshapeTemplate(int8_t, int32_t) -> int8_t _ReshapeTemplate(uint8_t, int32_t) -> uint8_t _ReshapeTemplate(int16_t, int32_t) -> int16_t _ReshapeTemplate(uint16_t, int32_t) -> uint16_t _ReshapeTemplate(int32_t, int32_t) -> int32_t _ReshapeTemplate(uint32_t, int32_t) -> uint32_t _ReshapeTemplate(int64_t, int32_t) -> int64_t _ReshapeTemplate(uint64_t, int32_t) -> uint64_t _ReshapeTemplate(float32_t, int8_t) -> float32_t _ReshapeTemplate(float32_t, uint8_t) -> float32_t _ReshapeTemplate(float32_t, int16_t) -> float32_t _ReshapeTemplate(float32_t, uint16_t) -> float32_t _ReshapeTemplate(float32_t, int32_t) -> float32_t _ReshapeTemplate(float32_t, uint32_t) -> float32_t _ReshapeTemplate(float32_t, int64_t) -> float32_t _ReshapeTemplate(float32_t, uint64_t) -> float32_t ] ]), 'iHardswish': iHardswishLayer(maps=[ iHardswishParser [ _iHardswishTemplate(int8_t) -> int32_t ] ]), 'iRMSNorm': iRMSNormLayer(maps=[ iRMSNormParser [ _iRMSNormTemplate(int8_t, int32_t) -> int8_t ] ]), 'iSoftmax': SoftmaxLayer(maps=[ iSoftmaxParser [ PULPiSoftmaxTemplate(int8_t) -> uint8_t PULPiSoftmaxTemplate(uint8_t) -> uint8_t NodeTemplate(float32_t) -> float32_t ] ])}, initCode='', includeList=['pmsis.h', 'stdint.h', 'pulp_nn_kernels.h', 'DeeployPULPMath.h', 'mchan_siracusa.h', 'dory_mem.h', 'bsp/ram.h'])
Bases:
DeploymentEngine
Methods
- __init__(name: str, Mapping={'Add': AddLayer(maps=[ AddParser [ _AddTemplate(int8_t, int8_t) -> int32_t _AddTemplate(int8_t, uint8_t) -> int32_t _AddTemplate(int8_t, int16_t) -> int32_t _AddTemplate(int8_t, uint16_t) -> int32_t _AddTemplate(int8_t, int32_t) -> int32_t _AddTemplate(int8_t, uint32_t) -> int32_t _AddTemplate(int8_t, int64_t) -> int32_t _AddTemplate(int8_t, uint64_t) -> int32_t _AddTemplate(uint8_t, int8_t) -> int32_t _AddTemplate(uint8_t, uint8_t) -> int32_t _AddTemplate(uint8_t, int16_t) -> int32_t _AddTemplate(uint8_t, uint16_t) -> int32_t _AddTemplate(uint8_t, int32_t) -> int32_t _AddTemplate(uint8_t, uint32_t) -> int32_t _AddTemplate(uint8_t, int64_t) -> int32_t _AddTemplate(uint8_t, uint64_t) -> int32_t _AddTemplate(int16_t, int8_t) -> int32_t _AddTemplate(int16_t, uint8_t) -> int32_t _AddTemplate(int16_t, int16_t) -> int32_t _AddTemplate(int16_t, uint16_t) -> int32_t _AddTemplate(int16_t, int32_t) -> int32_t _AddTemplate(int16_t, uint32_t) -> int32_t _AddTemplate(int16_t, int64_t) -> int32_t _AddTemplate(int16_t, uint64_t) -> int32_t _AddTemplate(uint16_t, int8_t) -> int32_t _AddTemplate(uint16_t, uint8_t) -> int32_t _AddTemplate(uint16_t, int16_t) -> int32_t _AddTemplate(uint16_t, uint16_t) -> int32_t _AddTemplate(uint16_t, int32_t) -> int32_t _AddTemplate(uint16_t, uint32_t) -> int32_t _AddTemplate(uint16_t, int64_t) -> int32_t _AddTemplate(uint16_t, uint64_t) -> int32_t _AddTemplate(int32_t, int8_t) -> int32_t _AddTemplate(int32_t, uint8_t) -> int32_t _AddTemplate(int32_t, int16_t) -> int32_t _AddTemplate(int32_t, uint16_t) -> int32_t _AddTemplate(int32_t, int32_t) -> int32_t _AddTemplate(int32_t, uint32_t) -> int32_t _AddTemplate(int32_t, int64_t) -> int32_t _AddTemplate(int32_t, uint64_t) -> int32_t _AddTemplate(uint32_t, int8_t) -> int32_t _AddTemplate(uint32_t, uint8_t) -> int32_t _AddTemplate(uint32_t, int16_t) -> int32_t _AddTemplate(uint32_t, uint16_t) -> int32_t _AddTemplate(uint32_t, int32_t) -> int32_t _AddTemplate(uint32_t, uint32_t) -> int32_t _AddTemplate(uint32_t, int64_t) -> int32_t _AddTemplate(uint32_t, uint64_t) -> int32_t _AddTemplate(int64_t, int8_t) -> int32_t _AddTemplate(int64_t, uint8_t) -> int32_t _AddTemplate(int64_t, int16_t) -> int32_t _AddTemplate(int64_t, uint16_t) -> int32_t _AddTemplate(int64_t, int32_t) -> int32_t _AddTemplate(int64_t, uint32_t) -> int32_t _AddTemplate(int64_t, int64_t) -> int32_t _AddTemplate(int64_t, uint64_t) -> int32_t _AddTemplate(uint64_t, int8_t) -> int32_t _AddTemplate(uint64_t, uint8_t) -> int32_t _AddTemplate(uint64_t, int16_t) -> int32_t _AddTemplate(uint64_t, uint16_t) -> int32_t _AddTemplate(uint64_t, int32_t) -> int32_t _AddTemplate(uint64_t, uint32_t) -> int32_t _AddTemplate(uint64_t, int64_t) -> int32_t _AddTemplate(uint64_t, uint64_t) -> int32_t NodeTemplate(float32_t, float32_t) -> float32_t ] ]), 'Concat': ConcatLayer(maps=[ ConcatParser [ _ConcatTemplate(int8_t, int8_t) -> int8_t _ConcatTemplate(uint8_t, uint8_t) -> uint8_t _ConcatTemplate(int16_t, int16_t) -> int16_t _ConcatTemplate(uint16_t, uint16_t) -> uint16_t _ConcatTemplate(int32_t, int32_t) -> int32_t _ConcatTemplate(uint32_t, uint32_t) -> uint32_t _ConcatTemplate(int64_t, int64_t) -> int64_t _ConcatTemplate(uint64_t, uint64_t) -> uint64_t ] ]), 'Conv': ConvLayer(maps=[ PULPFPConv2DParser [ PULP2DFloatConvIm2ColTemplate(float32_t, float32_t, float32_t) -> float32_t ] ]), 'Dequant': QuantLayer(maps=[ DequantParser [ _DequantTemplate(int8_t) -> float32_t _DequantTemplate(int32_t) -> float32_t ] ]), 'Flatten': ReshapeLayer(maps=[ FlattenParser [ _ReshapeTemplate(int8_t, int32_t) -> int8_t _ReshapeTemplate(uint8_t, int32_t) -> uint8_t _ReshapeTemplate(int16_t, int32_t) -> int16_t _ReshapeTemplate(uint16_t, int32_t) -> uint16_t _ReshapeTemplate(int32_t, int32_t) -> int32_t _ReshapeTemplate(uint32_t, int32_t) -> uint32_t _ReshapeTemplate(int64_t, int32_t) -> int64_t _ReshapeTemplate(uint64_t, int32_t) -> uint64_t _ReshapeTemplate(float32_t, int8_t) -> float32_t _ReshapeTemplate(float32_t, uint8_t) -> float32_t _ReshapeTemplate(float32_t, int16_t) -> float32_t _ReshapeTemplate(float32_t, uint16_t) -> float32_t _ReshapeTemplate(float32_t, int32_t) -> float32_t _ReshapeTemplate(float32_t, uint32_t) -> float32_t _ReshapeTemplate(float32_t, int64_t) -> float32_t _ReshapeTemplate(float32_t, uint64_t) -> float32_t ] ]), 'Gather': GatherLayer(maps=[ GatherParser [ NodeTemplate(float32_t, int8_t) -> float32_t NodeTemplate(float32_t, uint8_t) -> float32_t NodeTemplate(float32_t, int16_t) -> float32_t NodeTemplate(float32_t, uint16_t) -> float32_t NodeTemplate(float32_t, int32_t) -> float32_t NodeTemplate(float32_t, uint32_t) -> float32_t NodeTemplate(float32_t, int64_t) -> float32_t NodeTemplate(float32_t, uint64_t) -> float32_t ] ]), 'Gelu': GELULayer(maps=[ GELUParser [ NodeTemplate(float32_t, float32_t) -> float32_t ] ]), 'Gemm': GEMMLayer(maps=[ GEMMParser [ NodeTemplate(float32_t, float32_t, float32_t) -> float32_t ] PULPGEMMParser [ _GemmTemplate(int8_t, int8_t, int32_t) -> int32_t NodeTemplate(float32_t, float32_t, float32_t) -> float32_t ] ]), 'IntegerMean': ReduceMeanLayer(maps=[ ReduceMeanParser [ _ReduceMeanTemplate(int8_t) -> int8_t _ReduceMeanTemplate(uint8_t) -> uint8_t _ReduceMeanTemplate(int16_t) -> int16_t _ReduceMeanTemplate(uint16_t) -> uint16_t _ReduceMeanTemplate(int32_t) -> int32_t _ReduceMeanTemplate(uint32_t) -> uint32_t _ReduceMeanTemplate(int64_t) -> int64_t _ReduceMeanTemplate(uint64_t) -> uint64_t ] ]), 'LayerNormalization': LayerNormLayer(maps=[ LayerNormParser [ NodeTemplate(float32_t, float32_t, float32_t) -> float32_t ] ]), 'MatMul': MatMulLayer(maps=[ MatMulParser [ _MatMulTemplate(int8_t, int8_t) -> int32_t NodeTemplate(float32_t, float32_t) -> float32_t ] ]), 'MaxPool': MaxPoolLayer(maps=[ MaxPool2DParser [ PULPMaxPoolTemplate(int8_t) -> int8_t PULPMaxPoolTemplate(uint8_t) -> uint8_t NodeTemplate(float32_t) -> float32_t ] ]), 'Mul': MulLayer(maps=[ MulParser [ _MulTemplate(int8_t, int8_t) -> int32_t _MulTemplate(int8_t, int16_t) -> int32_t _MulTemplate(int8_t, int32_t) -> int32_t _MulTemplate(int8_t, int64_t) -> int32_t _MulTemplate(int16_t, int8_t) -> int32_t _MulTemplate(int16_t, int16_t) -> int32_t _MulTemplate(int16_t, int32_t) -> int32_t _MulTemplate(int16_t, int64_t) -> int32_t _MulTemplate(int32_t, int8_t) -> int32_t _MulTemplate(int32_t, int16_t) -> int32_t _MulTemplate(int32_t, int32_t) -> int32_t _MulTemplate(int32_t, int64_t) -> int32_t _MulTemplate(int64_t, int8_t) -> int32_t _MulTemplate(int64_t, int16_t) -> int32_t _MulTemplate(int64_t, int32_t) -> int32_t _MulTemplate(int64_t, int64_t) -> int32_t 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 ] 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 ] ]), 'Quant': QuantLayer(maps=[ QuantParser [ _QuantTemplate(float32_t) -> int8_t ] ]), 'RQIntegerDiv': RQIntegerDivLayer(maps=[ RQIntegerDivParser [ NodeTemplate(int32_t, int32_t, int32_t, int32_t, int32_t) -> int8_t ] ]), 'ReduceMean': ReduceMeanLayer(maps=[ ReduceMeanParser [ _ReduceMeanTemplate(int8_t) -> int8_t _ReduceMeanTemplate(uint8_t) -> uint8_t _ReduceMeanTemplate(int16_t) -> int16_t _ReduceMeanTemplate(uint16_t) -> uint16_t _ReduceMeanTemplate(int32_t) -> int32_t _ReduceMeanTemplate(uint32_t) -> uint32_t _ReduceMeanTemplate(int64_t) -> int64_t _ReduceMeanTemplate(uint64_t) -> uint64_t ] ]), 'ReduceSum': ReduceSumLayer(maps=[ ReduceSumParser [ NodeTemplate(float32_t) -> float32_t ] ]), 'Relu': ReluLayer(maps=[ ReluParser [ NodeTemplate(float32_t) -> float32_t ] ]), 'RequantShift': RequantShiftLayer(maps=[ UniformRequantShiftParser [ _UniformRequantShiftTemplate(int8_t, int32_t, int32_t) -> int8_t _UniformRequantShiftTemplate(uint8_t, int32_t, int32_t) -> int8_t _UniformRequantShiftTemplate(int16_t, int32_t, int32_t) -> int8_t _UniformRequantShiftTemplate(uint16_t, int32_t, int32_t) -> int8_t _UniformRequantShiftTemplate(int32_t, int32_t, int32_t) -> int8_t _UniformRequantShiftTemplate(uint32_t, int32_t, int32_t) -> int8_t _UniformRequantShiftTemplate(int64_t, int32_t, int32_t) -> int8_t _UniformRequantShiftTemplate(uint64_t, int32_t, int32_t) -> int8_t ] RequantShiftParser [ _RequantShiftTemplate(int8_t, int32_t, int32_t) -> int8_t _RequantShiftTemplate(uint8_t, int32_t, int32_t) -> int8_t _RequantShiftTemplate(int16_t, int32_t, int32_t) -> int8_t _RequantShiftTemplate(uint16_t, int32_t, int32_t) -> int8_t _RequantShiftTemplate(int32_t, int32_t, int32_t) -> int8_t _RequantShiftTemplate(uint32_t, int32_t, int32_t) -> int8_t _RequantShiftTemplate(int64_t, int32_t, int32_t) -> int8_t _RequantShiftTemplate(uint64_t, int32_t, int32_t) -> int8_t _RequantShiftTemplate(int8_t, int32_t, int32_t) -> uint8_t _RequantShiftTemplate(uint8_t, int32_t, int32_t) -> uint8_t _RequantShiftTemplate(int16_t, int32_t, int32_t) -> uint8_t _RequantShiftTemplate(uint16_t, int32_t, int32_t) -> uint8_t _RequantShiftTemplate(int32_t, int32_t, int32_t) -> uint8_t _RequantShiftTemplate(uint32_t, int32_t, int32_t) -> uint8_t _RequantShiftTemplate(int64_t, int32_t, int32_t) -> uint8_t _RequantShiftTemplate(uint64_t, int32_t, int32_t) -> uint8_t ] ]), 'RequantizedAdd': AddLayer(maps=[ RQAddParser [ RQAddTemplate(int8_t, int8_t) -> int8_t RQAddTemplate(int8_t, int8_t) -> uint8_t RQAddTemplate(int8_t, uint8_t) -> int8_t RQAddTemplate(int8_t, uint8_t) -> uint8_t RQAddTemplate(uint8_t, int8_t) -> int8_t RQAddTemplate(uint8_t, int8_t) -> uint8_t RQAddTemplate(uint8_t, uint8_t) -> int8_t RQAddTemplate(uint8_t, uint8_t) -> uint8_t ] ]), 'RequantizedConv': PULPRQSConvLayer(maps=[ PULPConv2DParser [ PULP2DConvTemplate(int8_t, int8_t, int32_t, int32_t, int32_t) -> int8_t PULP2DConvTemplate(int8_t, int8_t, int32_t, int32_t, int32_t) -> uint8_t PULP2DConvTemplate(uint8_t, int8_t, int32_t, int32_t, int32_t) -> int8_t PULP2DConvTemplate(uint8_t, int8_t, int32_t, int32_t, int32_t) -> uint8_t ] PULPDWConv2DParser [ PULP2DDWConvTemplate(int8_t, int8_t, int32_t, int32_t, int32_t) -> int8_t PULP2DDWConvTemplate(int8_t, int8_t, int32_t, int32_t, int32_t) -> uint8_t PULP2DDWConvTemplate(uint8_t, int8_t, int32_t, int32_t, int32_t) -> int8_t PULP2DDWConvTemplate(uint8_t, int8_t, int32_t, int32_t, int32_t) -> uint8_t ] PULPConv1DParser [ PULP1DConvTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t ] PULPDWConv1DParser [ PULP1DDWConvTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t ] ]), 'RequantizedGemm': PULPRQSGEMMLayer(maps=[ PULPMatrixVecParser [ _PULPMatrixVectorTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t ] PULPTallGEMMParser [ _PULPTallGEMMTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t ] PULPGEMMParser [ PULPGEMMTemplate(int8_t, int8_t, int32_t, int32_t) -> int8_t PULPGEMMTemplate(uint8_t, int8_t, int32_t, int32_t) -> uint8_t PULPGEMMTemplate(int8_t, int8_t, int32_t, int32_t) -> uint8_t PULPGEMMTemplate(uint8_t, int8_t, int32_t, int32_t) -> int8_t ] ]), 'RequantizediGELU': RQSiGELULayer(maps=[ RQSiGELUParser [ _RQSiGELUTemplate(int8_t, int32_t, int32_t, int32_t) -> int8_t ] ]), 'RequantizediHardswish': RQSiHardswishLayer(maps=[ RQSiHardswishParser [ _RQSiHardswishTemplate(int8_t, int32_t, int32_t, int32_t) -> int8_t ] ]), 'Reshape': ReshapeLayer(maps=[ ReshapeParser [ _ReshapeTemplate(int8_t, int32_t) -> int8_t _ReshapeTemplate(uint8_t, int32_t) -> uint8_t _ReshapeTemplate(int16_t, int32_t) -> int16_t _ReshapeTemplate(uint16_t, int32_t) -> uint16_t _ReshapeTemplate(int32_t, int32_t) -> int32_t _ReshapeTemplate(uint32_t, int32_t) -> uint32_t _ReshapeTemplate(int64_t, int32_t) -> int64_t _ReshapeTemplate(uint64_t, int32_t) -> uint64_t _ReshapeTemplate(float32_t, int8_t) -> float32_t _ReshapeTemplate(float32_t, uint8_t) -> float32_t _ReshapeTemplate(float32_t, int16_t) -> float32_t _ReshapeTemplate(float32_t, uint16_t) -> float32_t _ReshapeTemplate(float32_t, int32_t) -> float32_t _ReshapeTemplate(float32_t, uint32_t) -> float32_t _ReshapeTemplate(float32_t, int64_t) -> float32_t _ReshapeTemplate(float32_t, uint64_t) -> float32_t ] ]), 'SGD': SGDLayer(maps=[ SGDParser [ NodeTemplate(float32_t, float32_t) -> float32_t ] ]), 'Slice': SliceLayer(maps=[ SliceParser [ _SliceTemplate(int8_t, uint8_t, uint8_t, uint8_t, uint8_t) -> int8_t _SliceTemplate(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t) -> int8_t _SliceTemplate(int16_t, uint8_t, uint8_t, uint8_t, uint8_t) -> int8_t _SliceTemplate(uint16_t, uint8_t, uint8_t, uint8_t, uint8_t) -> int8_t _SliceTemplate(int32_t, uint8_t, uint8_t, uint8_t, uint8_t) -> int8_t _SliceTemplate(uint32_t, uint8_t, uint8_t, uint8_t, uint8_t) -> int8_t _SliceTemplate(int64_t, uint8_t, uint8_t, uint8_t, uint8_t) -> int8_t _SliceTemplate(uint64_t, uint8_t, uint8_t, uint8_t, uint8_t) -> int8_t ] ]), 'Softmax': SoftmaxLayer(maps=[ SoftmaxParser [ PULPiSoftmaxTemplate(int8_t) -> uint8_t PULPiSoftmaxTemplate(uint8_t) -> uint8_t NodeTemplate(float32_t) -> float32_t ] ]), 'SoftmaxCrossEntropyLoss': SoftmaxCrossEntropyLossLayer(maps=[ SoftmaxCrossEntropyLossParser [ NodeTemplate(float32_t, int8_t) -> float32_t NodeTemplate(float32_t, uint8_t) -> float32_t NodeTemplate(float32_t, int16_t) -> float32_t NodeTemplate(float32_t, uint16_t) -> float32_t NodeTemplate(float32_t, int32_t) -> float32_t NodeTemplate(float32_t, uint32_t) -> float32_t NodeTemplate(float32_t, int64_t) -> float32_t NodeTemplate(float32_t, uint64_t) -> float32_t ] ]), 'SoftmaxCrossEntropyLossGrad': SoftmaxCrossEntropyLossGradLayer(maps=[ SoftmaxCrossEntropyLossGradParser [ NodeTemplate(float32_t, int8_t) -> float32_t NodeTemplate(float32_t, uint8_t) -> float32_t NodeTemplate(float32_t, int16_t) -> float32_t NodeTemplate(float32_t, uint16_t) -> float32_t NodeTemplate(float32_t, int32_t) -> float32_t NodeTemplate(float32_t, uint32_t) -> float32_t NodeTemplate(float32_t, int64_t) -> float32_t NodeTemplate(float32_t, uint64_t) -> float32_t ] ]), 'SoftmaxGrad': SoftmaxGradLayer(maps=[ SoftmaxGradParser [ NodeTemplate(float32_t, float32_t) -> float32_t ] ]), 'Squeeze': ReshapeLayer(maps=[ UnsqueezeParser [ _ReshapeTemplate(int8_t, int32_t) -> int8_t _ReshapeTemplate(uint8_t, int32_t) -> uint8_t _ReshapeTemplate(int16_t, int32_t) -> int16_t _ReshapeTemplate(uint16_t, int32_t) -> uint16_t _ReshapeTemplate(int32_t, int32_t) -> int32_t _ReshapeTemplate(uint32_t, int32_t) -> uint32_t _ReshapeTemplate(int64_t, int32_t) -> int64_t _ReshapeTemplate(uint64_t, int32_t) -> uint64_t _ReshapeTemplate(float32_t, int8_t) -> float32_t _ReshapeTemplate(float32_t, uint8_t) -> float32_t _ReshapeTemplate(float32_t, int16_t) -> float32_t _ReshapeTemplate(float32_t, uint16_t) -> float32_t _ReshapeTemplate(float32_t, int32_t) -> float32_t _ReshapeTemplate(float32_t, uint32_t) -> float32_t _ReshapeTemplate(float32_t, int64_t) -> float32_t _ReshapeTemplate(float32_t, uint64_t) -> float32_t ] ]), 'Transpose': TransposeLayer(maps=[ TransposeParser [ PULPTransposeTemplate(int8_t) -> int8_t PULPTransposeTemplate(uint8_t) -> uint8_t PULPTransposeTemplate(int16_t) -> int16_t PULPTransposeTemplate(uint16_t) -> uint16_t PULPTransposeTemplate(int32_t) -> int32_t PULPTransposeTemplate(uint32_t) -> uint32_t PULPTransposeTemplate(int64_t) -> int64_t PULPTransposeTemplate(uint64_t) -> uint64_t PULPTransposeTemplate(float32_t) -> float32_t ] ]), 'Unsqueeze': ReshapeLayer(maps=[ UnsqueezeParser [ _ReshapeTemplate(int8_t, int32_t) -> int8_t _ReshapeTemplate(uint8_t, int32_t) -> uint8_t _ReshapeTemplate(int16_t, int32_t) -> int16_t _ReshapeTemplate(uint16_t, int32_t) -> uint16_t _ReshapeTemplate(int32_t, int32_t) -> int32_t _ReshapeTemplate(uint32_t, int32_t) -> uint32_t _ReshapeTemplate(int64_t, int32_t) -> int64_t _ReshapeTemplate(uint64_t, int32_t) -> uint64_t _ReshapeTemplate(float32_t, int8_t) -> float32_t _ReshapeTemplate(float32_t, uint8_t) -> float32_t _ReshapeTemplate(float32_t, int16_t) -> float32_t _ReshapeTemplate(float32_t, uint16_t) -> float32_t _ReshapeTemplate(float32_t, int32_t) -> float32_t _ReshapeTemplate(float32_t, uint32_t) -> float32_t _ReshapeTemplate(float32_t, int64_t) -> float32_t _ReshapeTemplate(float32_t, uint64_t) -> float32_t ] ]), 'iHardswish': iHardswishLayer(maps=[ iHardswishParser [ _iHardswishTemplate(int8_t) -> int32_t ] ]), 'iRMSNorm': iRMSNormLayer(maps=[ iRMSNormParser [ _iRMSNormTemplate(int8_t, int32_t) -> int8_t ] ]), 'iSoftmax': SoftmaxLayer(maps=[ iSoftmaxParser [ PULPiSoftmaxTemplate(int8_t) -> uint8_t PULPiSoftmaxTemplate(uint8_t) -> uint8_t NodeTemplate(float32_t) -> float32_t ] ])}, initCode='', includeList=['pmsis.h', 'stdint.h', 'pulp_nn_kernels.h', 'DeeployPULPMath.h', 'mchan_siracusa.h', 'dory_mem.h', 'bsp/ram.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]