aboutsummaryrefslogtreecommitdiff
path: root/ethosu/vela/pass_packing.py
diff options
context:
space:
mode:
authorpatrik.gustavsson <patrik.gustavsson@arm.com>2020-12-21 17:10:40 +0000
committerpatrik.gustavsson <patrik.gustavsson@arm.com>2020-12-21 17:10:40 +0000
commiteeb85154b00a9864d0d63e382e9c80ca8e294d5d (patch)
tree85ddd620916565aa8565d072b764ca4918b405a1 /ethosu/vela/pass_packing.py
parentdf0a5905177f3a1b836076bc3f9f39b2e86f1794 (diff)
downloadethos-u-vela-eeb85154b00a9864d0d63e382e9c80ca8e294d5d.tar.gz
Revert "Revert "MLBEDSW-3645 4D class for op ifm/ofm shapes""
This reverts commit df0a5905177f3a1b836076bc3f9f39b2e86f1794. Reason for revert: <INSERT REASONING HERE> Change-Id: I891c66fb29db9d25e942947e8d1c29a10610de51
Diffstat (limited to 'ethosu/vela/pass_packing.py')
-rw-r--r--ethosu/vela/pass_packing.py11
1 files changed, 5 insertions, 6 deletions
diff --git a/ethosu/vela/pass_packing.py b/ethosu/vela/pass_packing.py
index 095a78d4..8f6660c2 100644
--- a/ethosu/vela/pass_packing.py
+++ b/ethosu/vela/pass_packing.py
@@ -231,9 +231,9 @@ def pack_into_passes(nng, arch, verbose_packing=False):
ofm_tensor = op.ofm
if ofm_tensor is None:
ofm_tensor = op.outputs[0]
- build_pass((op,), ofm_tensor)
+ build_pass((op,), ofm_tensor, op.ofm_shapes[0].clone())
- def build_pass(start_ops_to_process, ofm_tensor=None):
+ def build_pass(start_ops_to_process, ofm_tensor=None, ofm_shapes=None):
reverse_ops_list = []
curr_flags = PassFlags.Empty
npu_block_type = NpuBlockType.Default
@@ -416,8 +416,7 @@ def pack_into_passes(nng, arch, verbose_packing=False):
ps.ifm_shapes.append(ps.primary_op.ifm_shapes[0])
ps.ofm_tensor = ofm_tensor
- if ps.primary_op is not None:
- ps.ofm_shapes.append(ps.primary_op.ofm_shapes[0])
+ ps.ofm_shapes.append(ofm_shapes)
assert ps.placement != PassPlacement.Npu or ps.ofm_tensor is not None
ps.weight_tensor = ps.get_primary_op_ifm_weights()[1]
@@ -453,11 +452,11 @@ def pack_into_passes(nng, arch, verbose_packing=False):
avgpool_out = inp.clone("_avgpooled")
avgpool_out.consumer_list.append(op)
avgpool_op.set_output_tensor(avgpool_out)
- avgpool_op.ifm_shapes = op.ifm_shapes
- avgpool_op.ofm_shapes = op.ofm_shapes
+ avgpool_op.set_ifm_ofm_shapes()
op.inputs[0] = avgpool_out
op_list.insert(0, avgpool_op)
+ op.set_ifm_ofm_shapes()
DebugDatabase.add_optimised(op, avgpool_op)
return avgpool_op