From 2b60ce93e1f404340e1be5c88f064cf75a4bad6f Mon Sep 17 00:00:00 2001 From: Fredrik Svedberg Date: Tue, 15 Sep 2020 17:18:40 +0200 Subject: [MLBEDSW-2638] Do not use 40bit ACC for softmax int16 Added logic for not using 40bit ACC for softmax int16. Change-Id: I02b376040e19b48e8aaa65d48ffc7c47a0b9b187 Signed-off-by: Fredrik Svedberg --- ethosu/vela/shared_buffer_allocation.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'ethosu') diff --git a/ethosu/vela/shared_buffer_allocation.py b/ethosu/vela/shared_buffer_allocation.py index 55cc34cc..63e2268d 100644 --- a/ethosu/vela/shared_buffer_allocation.py +++ b/ethosu/vela/shared_buffer_allocation.py @@ -37,6 +37,8 @@ class SharedBufferAllocation: self.banks_required = np.zeros(SharedBufferArea.Size) ifm_tensor, ifm2_tensor, weight_tensor, ofm_tensor = ps.get_primary_op_ifm_ifm2_weights_ofm() + tensors = [t for t in (ifm_tensor, ifm2_tensor, ofm_tensor) if t is not None] + has_scale = None not in (t.quantization.scale_f32 for t in tensors) strides = (1, 1, 1, 1) dilation = (1, 1, 1, 1) @@ -84,7 +86,7 @@ class SharedBufferAllocation: else: self.ifm_depth = ifm_tensor.shape[-1] if self.ifm_bits == 16: - if ps.npu_block_type != NpuBlockType.Pooling: + if ps.npu_block_type != NpuBlockType.Pooling and has_scale: self.use_accumulator_element = SHRAMElements.Acc40 self.use_ifm_element = self.use_ifm_element + 1 assert (self.use_ifm_element == SHRAMElements.IFM16) or ( -- cgit v1.2.1