From 69c67c58da54c7d6956de3ef2f753b63de45d328 Mon Sep 17 00:00:00 2001 From: mmrahorovic <mmrahorovic@hotmail.com> Date: Fri, 18 Feb 2022 13:13:37 +0000 Subject: [PATCH] [convert_hls]: modifications to enable 1D MaxPool layers with PE / non-divisible pool/image dimensions --- .../transformation/fpgadataflow/convert_to_hls_layers.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/finn/transformation/fpgadataflow/convert_to_hls_layers.py b/src/finn/transformation/fpgadataflow/convert_to_hls_layers.py index 2f83f23cb..eb9912b48 100644 --- a/src/finn/transformation/fpgadataflow/convert_to_hls_layers.py +++ b/src/finn/transformation/fpgadataflow/convert_to_hls_layers.py @@ -362,7 +362,10 @@ class InferStreamingMaxPool(Transformation): ifm_ch = mp_in_shape[-1] ifm_dim_h = mp_in_shape[1] ifm_dim_w = mp_in_shape[2] - if ifm_dim_h % k_h == 0 and ifm_dim_w % k_w == 0: + pe = 1 + is_1d = (ifm_dim_h == 1 and k_h == 1) or (ifm_dim_w == 1 and k_w == 1) + is_divisable = ifm_dim_h % k_h == 0 or ifm_dim_w % k_w == 0 + if is_1d or is_divisable: # create equivalent StreamingMaxPool_Batch node new_node = helper.make_node( "StreamingMaxPool_Batch", @@ -374,6 +377,7 @@ class InferStreamingMaxPool(Transformation): NumChannels=ifm_ch, ImgDim=(ifm_dim_h, ifm_dim_w), dataType=dt.name, + PE=pe, name="StreamingMaxPool_Batch_" + n.name, ) graph.node.insert(node_ind, new_node) -- GitLab