Skip to content

Commit 536b8f0

Browse files
committed
add Integer Conv1D for PULPOpen (untiled) and corresponding test
1 parent ec98ead commit 536b8f0

6 files changed

Lines changed: 12 additions & 18 deletions

File tree

Deeploy/Targets/PULPOpen/Bindings.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -278,11 +278,14 @@
278278
FloatMaxPoolTemplate.referenceTemplate, ForkTransformer)
279279
]
280280

281-
PULPConv1DBinding = NodeBinding(
282-
PULPConvChecker(
283-
[PointerClass(int8_t), PointerClass(int8_t),
284-
PointerClass(int32_t),
285-
PointerClass(int32_t)], [PointerClass(int8_t)]), ConvTemplate.PULPConv1D_8_Template, ForkTransformer)
281+
PULPConv1DBindings = [
282+
NodeBinding(
283+
PULPConvChecker(
284+
[PointerClass(_type), PointerClass(int8_t),
285+
PointerClass(int32_t),
286+
PointerClass(int32_t)], [PointerClass(_type)]), ConvTemplate.PULPConv1D_8_Template, ForkTransformer)
287+
for _type in (int8_t, uint8_t)
288+
]
286289

287290
PULPDWConv1DBinding = NodeBinding(
288291
PULPConvChecker(

Deeploy/Targets/PULPOpen/Platform.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import DequantPatternPass, IntegerDivRequantMergePass, \
3030
MergeConstAddAndRequantPass, MergeTrueIntegerDivRequantShiftPass, QuantPatternPass, RQSSplitPass, \
3131
SkipEmptyConcatPass, SkipUnityRequantPass, iGELURequantMergePass, iHardswishRequantMergePass
32-
from Deeploy.Targets.PULPOpen.Bindings import BasicDequantBindings, BasicQuantBindings, PULPConv1DBinding, \
32+
from Deeploy.Targets.PULPOpen.Bindings import BasicDequantBindings, BasicQuantBindings, PULPConv1DBindings, \
3333
PULPDMASliceBindings, PULPDWConv1DBinding
3434
from Deeploy.Targets.PULPOpen.Layers import PULPRQSConvLayer, PULPRQSGEMMLayer
3535
from Deeploy.Targets.PULPOpen.Parsers import PULPConv1DParser, PULPConv2DParser, PULPDWConv1DParser, \
@@ -74,7 +74,7 @@
7474
RQIntegerDivMapper = NodeMapper(RQIntegerDivParser(), [BasicRQIntegerDivBinding])
7575
RQGELU_int8_Mapper = NodeMapper(RQSiGELUParser(), PULPiRQSGELUTilingReadyBindings)
7676

77-
Conv1DMapper = NodeMapper(PULPConv1DParser(), [PULPConv1DBinding])
77+
Conv1DMapper = NodeMapper(PULPConv1DParser(), PULPConv1DBindings)
7878
DWConv1DMapper = NodeMapper(PULPDWConv1DParser(), [PULPDWConv1DBinding])
7979
FPConv2DMapper = NodeMapper(PULPFPConv2DParser(), PULPConv2DTilingReadyBindings)
8080
Conv2DMapper = NodeMapper(PULPConv2DParser(), PULPRQSConv2DTilingReadyBindings)

Deeploy/Targets/PULPOpen/Templates/ConvTemplate.py

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def alignToContext(self, ctxt: NetworkContext,
8888
def computeTransientBuffersSize(
8989
ctxt: NetworkContext,
9090
operatorRepresentation: OperatorRepresentation) -> List[Tuple[str, Union[int, IntVar]]]:
91-
im2col_dim = 8 * (1 * (1 + operatorRepresentation['pads'][0]) + operatorRepresentation['dim_kernel_y'])
91+
im2col_dim = 8 * 2 * operatorRepresentation['ch_im_in'] * operatorRepresentation['dim_kernel_y']
9292
im2col_name = operatorRepresentation['nodeName'] + "_buffer"
9393
return [(im2col_name, im2col_dim)]
9494

@@ -175,16 +175,7 @@ def __init__(self, templateStr):
175175
signatureString += '_u8'
176176
%>
177177
178-
<%
179-
operatorString = ''
180-
if dim_kernel_x == 1 and dim_kernel_y == 1:
181-
operatorString = 'pointwise'
182-
else:
183-
operatorString = 'conv'
184-
operatorString = 'conv'
185-
%>
186-
187-
pulp_nn_${operatorString}${signatureString}(${data_in}, ${ctxtBuffer}, NULL, ${data_out}, ${weight}, ${mul}, ${add}, 1, ${log2D}, 1, ${dim_im_in_y}, ${ch_im_in}, 1, ${dim_im_out_y}, ${ch_im_out}, 1, ${dim_kernel_y}, ${padding_y_top}, ${padding_y_bottom}, 0, 0, 1, ${stride_y}, 1, 1);
178+
pulp_nn_conv${signatureString}(${data_in}, ${ctxtBuffer}, NULL, ${data_out}, ${weight}, ${mul}, ${add}, 1, ${log2D}, 1, ${dim_im_in_y}, ${ch_im_in}, 1, ${dim_im_out_y}, ${ch_im_out}, 1, ${dim_kernel_y}, ${padding_y_top}, ${padding_y_bottom}, 0, 0, 1, ${stride_y}, 1, 1);
188179
""")
189180

190181
PULPDWConv1D_8_Template = PULP1DDWConvTemplate("""
328 Bytes
Binary file not shown.
703 Bytes
Binary file not shown.
394 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)