From 0538a77dfe65b66efedc4e4b92d851a5aeb46ea4 Mon Sep 17 00:00:00 2001 From: Dwight Lidman Date: Wed, 6 May 2020 14:09:17 +0200 Subject: MLBEDSW-1970: Add stride 3 support This patch adds support for strides of size 3. It removes some obsolete code for a corner case that no longer exists. It also changes the setting of the bitfield in NPU_SET_KERNEL_STRIDE so that it matches the specification. Change-Id: I7dabcf72b7826ca0b3c98e9d23209027204079a8 Signed-off-by: Dwight Lidman --- ethosu/vela/register_command_stream_generator.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'ethosu/vela/register_command_stream_generator.py') diff --git a/ethosu/vela/register_command_stream_generator.py b/ethosu/vela/register_command_stream_generator.py index a2b2f4d0..120cf8b1 100644 --- a/ethosu/vela/register_command_stream_generator.py +++ b/ethosu/vela/register_command_stream_generator.py @@ -569,8 +569,15 @@ def generate_register_command_stream(nng, sg, arch, verbose=False): emit.cmd0_with_param(cmd0.NPU_SET_IFM_PAD_BOTTOM, explicit_padding[2]) emit.cmd0_with_param(cmd0.NPU_SET_IFM_PAD_RIGHT, explicit_padding[3]) - stride = primary_op.attrs["strides"][2] - 1 - stride |= (primary_op.attrs["strides"][1] - 1) << 1 + # set kernel x stride low bit + stride = primary_op.attrs["strides"][2] - 1 & 1 + # set kernel y stride low bit + stride |= (primary_op.attrs["strides"][1] - 1 & 1) << 1 + # set kernel x stride extension bits + stride |= (primary_op.attrs["strides"][2] - 1 >> 1) << 6 + # set kernel y stride extension bits + stride |= (primary_op.attrs["strides"][1] - 1 >> 1) << 9 + if npu_block_type == NpuBlockType.Pooling: k_height, k_width = primary_op.attrs["ksize"][1:3] -- cgit v1.2.1