From 65eda179cf99f8fb114aeb2ead0dd4ff6eeed7fe Mon Sep 17 00:00:00 2001 From: Philip Wiese Date: Thu, 30 Apr 2026 11:22:45 +0200 Subject: [PATCH 1/5] Fix DWConv im2col scratch buffer sizing on PULPOpen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `PULP2DDWConvTemplate` inherited `computeTransientBuffersSize` from the regular-conv template, which sizes the scratch as `2 * 8 * ch_in * KH * KW` — independent of `H_in`. The upstream `pulp_nn_depthwise_*` kernel actually walks a column-shaped im2col of `dim_kernel_x * (dim_in_y + pad_top + pad_bot) + dim_kernel_x` bytes per core, so for any input taller than the inherited bound the kernel writes past its scratch into the next L1 tensor. With 8 channels and a 3×3 kernel the two formulas coincide at H=45 and diverge from H=46 on (e.g. VWW PASS_1's 1×8×48×48 DW reproduces the corruption with ~74% of outputs wrong). Override `computeTransientBuffersSize` in `PULP2DDWConvTemplate` to use the kernel's actual per-core formula × NUM_CORES. Add a `Kernels/Integer/Conv/DW_2D_RQ_8x16x16` repro test exercising the previously-overflowing geometry, and wire VWW + the new kernel into the GAP9 L2 single- and double-buffer tiling rosters so CI catches any future regression. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../Targets/PULPOpen/Templates/ConvTemplate.py | 17 +++++++++++++++++ .../Conv/DW_2D_RQ_8x16x16/activations.npz | Bin 0 -> 295582 bytes .../Integer/Conv/DW_2D_RQ_8x16x16/inputs.npz | Bin 0 -> 147720 bytes .../Integer/Conv/DW_2D_RQ_8x16x16/network.onnx | Bin 0 -> 1132 bytes .../Integer/Conv/DW_2D_RQ_8x16x16/outputs.npz | Bin 0 -> 147722 bytes DeeployTest/test_gap9_tiled_config.py | 6 +++++- 6 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 DeeployTest/Tests/Kernels/Integer/Conv/DW_2D_RQ_8x16x16/activations.npz create mode 100644 DeeployTest/Tests/Kernels/Integer/Conv/DW_2D_RQ_8x16x16/inputs.npz create mode 100644 DeeployTest/Tests/Kernels/Integer/Conv/DW_2D_RQ_8x16x16/network.onnx create mode 100644 DeeployTest/Tests/Kernels/Integer/Conv/DW_2D_RQ_8x16x16/outputs.npz diff --git a/Deeploy/Targets/PULPOpen/Templates/ConvTemplate.py b/Deeploy/Targets/PULPOpen/Templates/ConvTemplate.py index 0319fea00b..1ad526b1f9 100644 --- a/Deeploy/Targets/PULPOpen/Templates/ConvTemplate.py +++ b/Deeploy/Targets/PULPOpen/Templates/ConvTemplate.py @@ -62,6 +62,23 @@ def alignToContext(self, ctxt: NetworkContext, return ctxt, operatorRepresentation, [] + @staticmethod + def computeTransientBuffersSize( + ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> List[Tuple[str, Union[int, IntVar]]]: + # The depthwise pulp-nn kernel reuses one column-shaped im2col scratch + # per core. Per core it needs `dim_kernel_x * (dim_in_y + pad_top + + # pad_bot) + dim_kernel_x` bytes (the trailing `+ dim_kernel_x` is the + # safety zone for the last v4u write). + pad_top = operatorRepresentation['padding_y_top'] + pad_bot = operatorRepresentation['padding_y_bottom'] + per_core = (operatorRepresentation['dim_kernel_x'] * + (operatorRepresentation['dim_im_in_y'] + pad_top + pad_bot) + + operatorRepresentation['dim_kernel_x']) + im2col_dim = 8 * per_core + im2col_name = operatorRepresentation['nodeName'] + "_buffer" + return [(im2col_name, im2col_dim)] + class PULP1DConvTemplate(NodeTemplate): diff --git a/DeeployTest/Tests/Kernels/Integer/Conv/DW_2D_RQ_8x16x16/activations.npz b/DeeployTest/Tests/Kernels/Integer/Conv/DW_2D_RQ_8x16x16/activations.npz new file mode 100644 index 0000000000000000000000000000000000000000..dd0c847eeee1ab49fd4c5a5c09a0718de43d10e7 GIT binary patch literal 295582 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 PZJ;(WY4ZN_4`=Xyvgh^( literal 0 HcmV?d00001 diff --git a/DeeployTest/Tests/Kernels/Integer/Conv/DW_2D_RQ_8x16x16/inputs.npz b/DeeployTest/Tests/Kernels/Integer/Conv/DW_2D_RQ_8x16x16/inputs.npz new file mode 100644 index 0000000000000000000000000000000000000000..0974db732342da46a4605cb4bcd0a76bd25c174b GIT binary patch literal 147720 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 K{_plMVg3(ODdk-N literal 0 HcmV?d00001 diff --git a/DeeployTest/Tests/Kernels/Integer/Conv/DW_2D_RQ_8x16x16/network.onnx b/DeeployTest/Tests/Kernels/Integer/Conv/DW_2D_RQ_8x16x16/network.onnx new file mode 100644 index 0000000000000000000000000000000000000000..b61b59fe8c0437581a9abd4e884be2a87d2f8e0b GIT binary patch literal 1132 zcmbtTJ#5oJ6n>YajX5H4tWr>0iKtWvd4N!fg#|axk6KlsO$tMotC3A&2u?_xkkK1e zr;bQ087r9B*l0Vk!N>p-EYPuHfsyZ}snn%QvGnQv-1ols?tG_7gQn>2H%-0~a?B4} z-B8Y})n!#FtSm3sg}hRW<+VboP+43rsFekKP1*O$59jmnt5ub~`NH#S_0SOgsd2j* z^i*~>!PYe7IoEGEq2CNTmaxP?B+Zl@tF@cm))j3aV&)~8dg`?Uuc111r{!63E6${} zOtc(#SaV#b%VZ~P`>uDaB)4Kx^yQsX2hEi+;e&E@u~fzuc zj%VsZ#e3d$g0NcmABXDpZ0clePRqFK_sp~|a>>eSRUueP5JjbdNSL=|Do_ot=QTPC zYUYe4z|)y`GCwS^x!{@{@A$RAbIr*iRWkJ`!z3b*jLXd+=&M@WY1KR3cFk)BM}hex zrfHhc;#wSC&hS^41~DRikLboeI$1=!yJ)#U^c|SV5oNHp1H5M-_ZNsh0QbPd_XY7L z!2ClXftnPwIL9`H_|+a!7BS~E#9YfdGt9%<4t%aXgwH(YSnyd>2R^dDdo;rV`~i?b zeglXsSj0np*zFORGY1_8?}Nd5Ens4w=m3^y<-PF?1Vre;dDf0b@!_8743C(9{j^(NEYbctT;CE7}ssQ<1= sn{SKjS4VH(n3NNmFmxHy1fT&~#-ofJUH{V0kf$bd;kCd literal 0 HcmV?d00001 diff --git a/DeeployTest/Tests/Kernels/Integer/Conv/DW_2D_RQ_8x16x16/outputs.npz b/DeeployTest/Tests/Kernels/Integer/Conv/DW_2D_RQ_8x16x16/outputs.npz new file mode 100644 index 0000000000000000000000000000000000000000..cd3eb1e4af8baa0ba1039d66f9c63fcf34918212 GIT binary patch literal 147722 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 M&giFqr{C%PKR~)v7ytkO literal 0 HcmV?d00001 diff --git a/DeeployTest/test_gap9_tiled_config.py b/DeeployTest/test_gap9_tiled_config.py index 764d61f0ca..6e8c3a5221 100644 --- a/DeeployTest/test_gap9_tiled_config.py +++ b/DeeployTest/test_gap9_tiled_config.py @@ -13,7 +13,8 @@ "Kernels/Integer/MatMul/Regular": [64000, 32000, 16000], "Kernels/Integer/Conv/Regular_2D_RQ": [8000, 6000, 4000], "Kernels/Integer/Conv/StriddedPadded_2D_RQ": [600], - "Kernels/Integer/Conv/DW_2D_RQ": [2561], + "Kernels/Integer/Conv/DW_2D_RQ": [64000, 2561], + "Kernels/Integer/Conv/DW_2D_RQ_8x16x16": [64000], "Kernels/Integer/Softmax/Regular": [800, 500, 300], "Kernels/Integer/Concat": [32000, 16000, 8000], "Kernels/Integer/Hardswish/Regular": [750], @@ -39,6 +40,7 @@ "Kernels/Integer/MatMul/Regular": [64000, 32000, 16000], "Kernels/Integer/Conv/Regular_2D_RQ": [8000, 6000, 5000], "Kernels/Integer/Conv/DW_2D_RQ": [5121], + "Kernels/Integer/Conv/DW_2D_RQ_8x16x16": [64000], "Kernels/Integer/Softmax/Regular": [1600, 1000, 600], "Kernels/Integer/Concat": [64000, 32000, 16000], "Kernels/Integer/Hardswish/Regular": [750], @@ -64,6 +66,7 @@ "Models/MLPerf/KeywordSpotting": [64000], "Models/MLPerf/ImageClassification": [64000], "Models/MLPerf/AnomalyDetection": [64000], + "Models/MLPerf/VisualWakeWords": [64000], } L2_DOUBLEBUFFER_MODELS = { @@ -72,6 +75,7 @@ "Models/MLPerf/KeywordSpotting": [64000], "Models/MLPerf/ImageClassification": [64000], "Models/MLPerf/AnomalyDetection": [64000], + "Models/MLPerf/VisualWakeWords": [64000], } L3_SINGLEBUFFER_MODELS = { From 0e0d5961625b8c0497384279901400f9a35b523c Mon Sep 17 00:00:00 2001 From: Philip Wiese Date: Thu, 30 Apr 2026 11:23:52 +0200 Subject: [PATCH 2/5] Fix pulp-nn linear leftover-neuron RQS parameter aliasing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bump pulp-nn-mixed to 1d8eeee0 (PR #11), which fixes the `pulp_nn_linear_*` family: when `num_o_neurons` is not a multiple of 2*NUM_CORES, the trailing odd neuron's `if (lft_neurons …)` branch called `pulp_nn_bn_quant_*(sum, *pKappa, *pLambda, …)` instead of the per-core advanced `*k1, *lambda1` pointers, so every core wrote element 0's RQS parameters into its own neuron. Any layer with an odd channel count (e.g. VWW's 2-class classifier) ended up with the wrong kappa/lambda. Rebuild the prebuilt GAP9 library against the fixed source. Split the dropped Clang-only `-Wno-incompatible-pointer-types- discards-qualifiers` on PULPOpen into the two flags GCC accepts (`-Wno-incompatible-pointer-types`, `-Wno-discards-qualifiers`) and add the same `-Wno-incompatible-pointer-types` plus `-Wno-implicit-function-declaration` to the GAP9 target so `pulp-nn-mixed` builds clean from source under the GCC GAP9 toolchain. Co-Authored-By: Claude Opus 4.7 (1M context) --- TargetLibraries/GAP9/CMakeLists.txt | 2 ++ .../GAP9/prebuilt/libpulp-nn-mixed.a | Bin 3265442 -> 3265194 bytes TargetLibraries/PULPOpen/CMakeLists.txt | 3 ++- TargetLibraries/third_party/pulp-nn-mixed | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/TargetLibraries/GAP9/CMakeLists.txt b/TargetLibraries/GAP9/CMakeLists.txt index ca4c3ffbeb..4c25160540 100644 --- a/TargetLibraries/GAP9/CMakeLists.txt +++ b/TargetLibraries/GAP9/CMakeLists.txt @@ -23,6 +23,8 @@ target_compile_options(deeploygap9 PUBLIC ) target_compile_options(deeploygap9 PRIVATE + -Wno-incompatible-pointer-types + -Wno-implicit-function-declaration -Wno-sign-conversion -Wno-sign-compare -Wno-type-limits diff --git a/TargetLibraries/GAP9/prebuilt/libpulp-nn-mixed.a b/TargetLibraries/GAP9/prebuilt/libpulp-nn-mixed.a index d63369b6c94ac26122a28ab4c94a3d62fc5da468..07aef46d1ebe54d59958049dd205c82f6535c9fc 100644 GIT binary patch delta 85392 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 delta 84123 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 JF+0A`{{@4ASK|Nx diff --git a/TargetLibraries/PULPOpen/CMakeLists.txt b/TargetLibraries/PULPOpen/CMakeLists.txt index 1a510c945b..78698bbfea 100644 --- a/TargetLibraries/PULPOpen/CMakeLists.txt +++ b/TargetLibraries/PULPOpen/CMakeLists.txt @@ -62,7 +62,8 @@ if (platform IN_LIST PULP_NNX_PLATFORMS) -Wno-sign-conversion -Wno-typedef-redefinition -Wno-unused-parameter - -Wno-incompatible-pointer-types-discards-qualifiers + -Wno-incompatible-pointer-types + -Wno-discards-qualifiers ) target_link_libraries(deeploypulp INTERFACE pulp-nnx) endif() diff --git a/TargetLibraries/third_party/pulp-nn-mixed b/TargetLibraries/third_party/pulp-nn-mixed index faed38c72b..1d8eeee08a 160000 --- a/TargetLibraries/third_party/pulp-nn-mixed +++ b/TargetLibraries/third_party/pulp-nn-mixed @@ -1 +1 @@ -Subproject commit faed38c72b029b69dcab98571d228a66c3263891 +Subproject commit 1d8eeee08a2c32ec3850a0f2a1daa6551478599d From 06e22506df7545ba5aff2e405b77b97051f491ff Mon Sep 17 00:00:00 2001 From: Philip Wiese Date: Thu, 30 Apr 2026 11:24:39 +0200 Subject: [PATCH 3/5] Enable VisualWakeWord Test on GAP9 --- DeeployTest/test_siracusa_tiled_config.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/DeeployTest/test_siracusa_tiled_config.py b/DeeployTest/test_siracusa_tiled_config.py index a687d9a489..6c5cdd66fd 100644 --- a/DeeployTest/test_siracusa_tiled_config.py +++ b/DeeployTest/test_siracusa_tiled_config.py @@ -112,6 +112,7 @@ "Models/MLPerf/KeywordSpotting": [64000], "Models/MLPerf/ImageClassification": [64000], "Models/MLPerf/AnomalyDetection": [64000], + "Models/MLPerf/VisualWakeWords": [64000], "Models/CCT/FP32/CCT_1_16_16_8": [64000], "Models/TinyViT/Demo": [4000], } @@ -127,6 +128,7 @@ "Models/MLPerf/KeywordSpotting": [128000], "Models/MLPerf/ImageClassification": [128000], "Models/MLPerf/AnomalyDetection": [128000], + "Models/MLPerf/VisualWakeWords": [128000], "Models/CCT/FP32/CCT_1_16_16_8": [128000], "Models/TinyViT/Demo": [8000], } From 2519c50faac93cfcfef481744c924f2e9b978248 Mon Sep 17 00:00:00 2001 From: Philip Wiese Date: Thu, 30 Apr 2026 17:09:11 +0200 Subject: [PATCH 4/5] Fix transient-buffer hoisting to dispatch through subclass overrides `hoistTransientBuffers` called `computeTransientBuffersSize` via the hard-coded class name (e.g. `PULP2DConvTemplate.computeTransient...`), which bypassed any subclass override regardless of the actual `self` type. As a result the `PULP2DDWConvTemplate` override added in 65eda179c was dead code: VWW codegen kept using the regular-conv formula instead of the depthwise per-core size. Convert `computeTransientBuffersSize` from `@staticmethod` to an instance method on each affected template (PULP 1D/2D conv, PULP 2D float conv + DW, PULP iSoftmax, generic iSoftmax pre-allocated) and call it via `self.computeTransientBuffersSize(...)` so dispatch goes through the actual class. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../Templates/iSoftmaxPreAllocatedBuffTemplate.py | 6 ++---- Deeploy/Targets/PULPOpen/Templates/ConvTemplate.py | 13 +++++-------- .../Targets/PULPOpen/Templates/FloatConvTemplate.py | 12 ++++-------- .../Targets/PULPOpen/Templates/iSoftmaxTemplate.py | 6 ++---- 4 files changed, 13 insertions(+), 24 deletions(-) diff --git a/Deeploy/Targets/Generic/Templates/iSoftmaxPreAllocatedBuffTemplate.py b/Deeploy/Targets/Generic/Templates/iSoftmaxPreAllocatedBuffTemplate.py index 9cf609deea..b9d5d07a91 100644 --- a/Deeploy/Targets/Generic/Templates/iSoftmaxPreAllocatedBuffTemplate.py +++ b/Deeploy/Targets/Generic/Templates/iSoftmaxPreAllocatedBuffTemplate.py @@ -11,9 +11,8 @@ class iSoftmaxPreAllocatedBuffTemplate(NodeTemplate): - @staticmethod def computeTransientBuffersSize( - ctxt: NetworkContext, + self, ctxt: NetworkContext, operatorRepresentation: OperatorRepresentation) -> List[Tuple[str, Union[int, IntVar]]]: lastDimBuffer_dim = 8 * 4 * operatorRepresentation['lastDimLength'] @@ -22,8 +21,7 @@ def computeTransientBuffersSize( def hoistTransientBuffers(self, ctxt: NetworkContext, operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: - lastDimBuffer_name, lastDimBuffer_dim = iSoftmaxPreAllocatedBuffTemplate.computeTransientBuffersSize( - ctxt, operatorRepresentation)[0] + lastDimBuffer_name, lastDimBuffer_dim = self.computeTransientBuffersSize(ctxt, operatorRepresentation)[0] ctxt.hoistTransientBuffer(lastDimBuffer_name, lastDimBuffer_dim) operatorRepresentation['lastDimBuffer'] = lastDimBuffer_name diff --git a/Deeploy/Targets/PULPOpen/Templates/ConvTemplate.py b/Deeploy/Targets/PULPOpen/Templates/ConvTemplate.py index 1ad526b1f9..6efea4b09d 100644 --- a/Deeploy/Targets/PULPOpen/Templates/ConvTemplate.py +++ b/Deeploy/Targets/PULPOpen/Templates/ConvTemplate.py @@ -26,9 +26,8 @@ def alignToContext(self, ctxt: NetworkContext, return ctxt, operatorRepresentation, [] - @staticmethod def computeTransientBuffersSize( - ctxt: NetworkContext, + self, ctxt: NetworkContext, operatorRepresentation: OperatorRepresentation) -> List[Tuple[str, Union[int, IntVar]]]: im2col_dim = 2 * 8 * (operatorRepresentation['ch_im_in'] * operatorRepresentation['dim_kernel_x'] * operatorRepresentation['dim_kernel_y']) @@ -37,7 +36,7 @@ def computeTransientBuffersSize( def hoistTransientBuffers(self, ctxt: NetworkContext, operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: - im2col_name, im2col_dim = PULP2DConvTemplate.computeTransientBuffersSize(ctxt, operatorRepresentation)[0] + im2col_name, im2col_dim = self.computeTransientBuffersSize(ctxt, operatorRepresentation)[0] ctxt.hoistTransientBuffer(im2col_name, im2col_dim) operatorRepresentation['ctxtBuffer'] = im2col_name @@ -62,9 +61,8 @@ def alignToContext(self, ctxt: NetworkContext, return ctxt, operatorRepresentation, [] - @staticmethod def computeTransientBuffersSize( - ctxt: NetworkContext, + self, ctxt: NetworkContext, operatorRepresentation: OperatorRepresentation) -> List[Tuple[str, Union[int, IntVar]]]: # The depthwise pulp-nn kernel reuses one column-shaped im2col scratch # per core. Per core it needs `dim_kernel_x * (dim_in_y + pad_top + @@ -101,9 +99,8 @@ def alignToContext(self, ctxt: NetworkContext, return ctxt, operatorRepresentation, [] - @staticmethod def computeTransientBuffersSize( - ctxt: NetworkContext, + self, ctxt: NetworkContext, operatorRepresentation: OperatorRepresentation) -> List[Tuple[str, Union[int, IntVar]]]: im2col_dim = 8 * 2 * operatorRepresentation['ch_im_in'] * operatorRepresentation['dim_kernel_y'] im2col_name = operatorRepresentation['nodeName'] + "_buffer" @@ -111,7 +108,7 @@ def computeTransientBuffersSize( def hoistTransientBuffers(self, ctxt: NetworkContext, operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: - im2col_name, im2col_dim = PULP1DConvTemplate.computeTransientBuffersSize(ctxt, operatorRepresentation)[0] + im2col_name, im2col_dim = self.computeTransientBuffersSize(ctxt, operatorRepresentation)[0] ctxt.hoistTransientBuffer(im2col_name, im2col_dim) operatorRepresentation['ctxtBuffer'] = im2col_name operatorRepresentation['ctxtBufferSize'] = im2col_dim diff --git a/Deeploy/Targets/PULPOpen/Templates/FloatConvTemplate.py b/Deeploy/Targets/PULPOpen/Templates/FloatConvTemplate.py index bfa893db94..074528e829 100644 --- a/Deeploy/Targets/PULPOpen/Templates/FloatConvTemplate.py +++ b/Deeploy/Targets/PULPOpen/Templates/FloatConvTemplate.py @@ -14,9 +14,8 @@ class PULP2DFloatConvIm2ColTemplate(NodeTemplate): def __init__(self, templateStr): super().__init__(templateStr) - @staticmethod def computeTransientBuffersSize( - ctxt: NetworkContext, + self, ctxt: NetworkContext, operatorRepresentation: OperatorRepresentation) -> List[Tuple[str, Union[int, IntVar]]]: # Memory allocation for the im2col buffer can be dynamic, based on the number of cores. im2col_dim = (operatorRepresentation["weight_type"].typeWidth // @@ -29,8 +28,7 @@ def computeTransientBuffersSize( def hoistTransientBuffers(self, ctxt: NetworkContext, operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: - im2col_name, im2col_dim = PULP2DFloatConvIm2ColTemplate.computeTransientBuffersSize( - ctxt, operatorRepresentation)[0] + im2col_name, im2col_dim = self.computeTransientBuffersSize(ctxt, operatorRepresentation)[0] ctxt.hoistTransientBuffer(im2col_name, im2col_dim) operatorRepresentation['ctxtBuffer'] = im2col_name @@ -43,9 +41,8 @@ class PULP2DFloatDWConvIm2ColTemplate(NodeTemplate): def __init__(self, templateStr): super().__init__(templateStr) - @staticmethod def computeTransientBuffersSize( - ctxt: NetworkContext, + self, ctxt: NetworkContext, operatorRepresentation: OperatorRepresentation) -> List[Tuple[str, Union[int, IntVar]]]: # Memory allocation for the im2col buffer can be dynamic, based on the number of cores. @@ -58,8 +55,7 @@ def computeTransientBuffersSize( def hoistTransientBuffers(self, ctxt: NetworkContext, operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: - im2col_name, im2col_dim = PULP2DFloatDWConvIm2ColTemplate.computeTransientBuffersSize( - ctxt, operatorRepresentation)[0] + im2col_name, im2col_dim = self.computeTransientBuffersSize(ctxt, operatorRepresentation)[0] ctxt.hoistTransientBuffer(im2col_name, im2col_dim) # Manually set the type of the im2col buffer to match the input type, since it defaults to void for transient buffers diff --git a/Deeploy/Targets/PULPOpen/Templates/iSoftmaxTemplate.py b/Deeploy/Targets/PULPOpen/Templates/iSoftmaxTemplate.py index af3a93a185..be4a7bfea8 100644 --- a/Deeploy/Targets/PULPOpen/Templates/iSoftmaxTemplate.py +++ b/Deeploy/Targets/PULPOpen/Templates/iSoftmaxTemplate.py @@ -11,9 +11,8 @@ class PULPiSoftmaxTemplate(NodeTemplate): - @staticmethod def computeTransientBuffersSize( - ctxt: NetworkContext, + self, ctxt: NetworkContext, operatorRepresentation: OperatorRepresentation) -> List[Tuple[str, Union[int, IntVar]]]: lastDimBuffer_dim = 8 * 4 * operatorRepresentation['lastDimLength'] @@ -22,8 +21,7 @@ def computeTransientBuffersSize( def hoistTransientBuffers(self, ctxt: NetworkContext, operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: - lastDimBuffer_name, lastDimBuffer_dim = PULPiSoftmaxTemplate.computeTransientBuffersSize( - ctxt, operatorRepresentation)[0] + lastDimBuffer_name, lastDimBuffer_dim = self.computeTransientBuffersSize(ctxt, operatorRepresentation)[0] ctxt.hoistTransientBuffer(lastDimBuffer_name, lastDimBuffer_dim) operatorRepresentation['lastDimBuffer'] = lastDimBuffer_name From 8c769c78b99f15157d0bf4dded87da47bfbbb2c4 Mon Sep 17 00:00:00 2001 From: Philip Wiese Date: Thu, 30 Apr 2026 17:09:53 +0200 Subject: [PATCH 5/5] Add depthwise im2col override for PULP1DDWConvTemplate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `PULP1DDWConvTemplate` previously inherited `computeTransientBuffersSize` from the regular 1D conv template, which sizes scratch as `8 * 2 * ch_in * KY` — independent of `H_in`. The upstream `pulp_nn_depthwise_*` kernel walks a column-shaped im2col of `dim_kernel_y * (dim_in_y + pad_top + pad_bot) + dim_kernel_y` bytes per core, so for tall enough inputs the kernel overflows the inherited buffer. Add the depthwise per-core formula × NUM_CORES, mirroring the 2D fix in 65eda179c. Co-Authored-By: Claude Opus 4.7 (1M context) --- Deeploy/Targets/PULPOpen/Templates/ConvTemplate.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Deeploy/Targets/PULPOpen/Templates/ConvTemplate.py b/Deeploy/Targets/PULPOpen/Templates/ConvTemplate.py index 6efea4b09d..1552d4c677 100644 --- a/Deeploy/Targets/PULPOpen/Templates/ConvTemplate.py +++ b/Deeploy/Targets/PULPOpen/Templates/ConvTemplate.py @@ -120,6 +120,20 @@ class PULP1DDWConvTemplate(PULP1DConvTemplate): def __init__(self, templateStr): super().__init__(templateStr) + def computeTransientBuffersSize( + self, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> List[Tuple[str, Union[int, IntVar]]]: + # The depthwise pulp-nn kernel reuses one column-shaped im2col scratch + # per core. Per core it needs `dim_kernel_y * (dim_in_y + pad_top + pad_bot) + dim_kernel_y` bytes (the trailing `+ dim_kernel_y` is the safety zone for the last v4u write). + pad_top = operatorRepresentation['padding_y_top'] + pad_bot = operatorRepresentation['padding_y_bottom'] + per_core = (operatorRepresentation['dim_kernel_y'] * + (operatorRepresentation['dim_im_in_y'] + pad_top + pad_bot) + + operatorRepresentation['dim_kernel_y']) + im2col_dim = 8 * per_core + im2col_name = operatorRepresentation['nodeName'] + "_buffer" + return [(im2col_name, im2col_dim)] + PULPConv2D_8_Template = PULP2DConvTemplate(""" // PULP NN CONV