From 85f6117324295db8f620e2352d9a55220c20fa59 Mon Sep 17 00:00:00 2001 From: Patrik Gustavsson Date: Fri, 1 Oct 2021 08:15:06 +0200 Subject: TOSA: Update to new schema Update based on schema corresponding to TOSA conformance tests release v0.5. Signed-off-by: Patrik Gustavsson Change-Id: I517cd5d86ddb3ed8c0f377b4462466387dc3af44 --- ethosu/vela/tosa/Attribute.py | 6 +- ethosu/vela/tosa/Conv2dAttribute.py | 94 --------------------- ethosu/vela/tosa/ConvAttribute.py | 94 +++++++++++++++++++++ ethosu/vela/tosa/Op.py | 2 +- ethosu/vela/tosa/Pool2dAttribute.py | 94 --------------------- ethosu/vela/tosa/PoolAttribute.py | 94 +++++++++++++++++++++ ethosu/vela/tosa/TransposeConv2dAttribute.py | 118 --------------------------- ethosu/vela/tosa/TransposeConvAttribute.py | 118 +++++++++++++++++++++++++++ ethosu/vela/tosa_mapping.py | 28 +++---- 9 files changed, 324 insertions(+), 324 deletions(-) delete mode 100644 ethosu/vela/tosa/Conv2dAttribute.py create mode 100644 ethosu/vela/tosa/ConvAttribute.py delete mode 100644 ethosu/vela/tosa/Pool2dAttribute.py create mode 100644 ethosu/vela/tosa/PoolAttribute.py delete mode 100644 ethosu/vela/tosa/TransposeConv2dAttribute.py create mode 100644 ethosu/vela/tosa/TransposeConvAttribute.py diff --git a/ethosu/vela/tosa/Attribute.py b/ethosu/vela/tosa/Attribute.py index 8a2ccaea..b26ef483 100644 --- a/ethosu/vela/tosa/Attribute.py +++ b/ethosu/vela/tosa/Attribute.py @@ -4,9 +4,9 @@ class Attribute(object): NONE = 0 - Pool2dAttribute = 1 - Conv2dAttribute = 2 - TransposeConv2dAttribute = 3 + PoolAttribute = 1 + ConvAttribute = 2 + TransposeConvAttribute = 3 ReluNAttribute = 4 AxisAttribute = 5 ReshapeAttribute = 6 diff --git a/ethosu/vela/tosa/Conv2dAttribute.py b/ethosu/vela/tosa/Conv2dAttribute.py deleted file mode 100644 index 5faecbde..00000000 --- a/ethosu/vela/tosa/Conv2dAttribute.py +++ /dev/null @@ -1,94 +0,0 @@ -# automatically generated by the FlatBuffers compiler, do not modify - -# namespace: tosa - -import flatbuffers - -class Conv2dAttribute(object): - __slots__ = ['_tab'] - - @classmethod - def GetRootAsConv2dAttribute(cls, buf, offset): - n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) - x = Conv2dAttribute() - x.Init(buf, n + offset) - return x - - # Conv2dAttribute - def Init(self, buf, pos): - self._tab = flatbuffers.table.Table(buf, pos) - - # Conv2dAttribute - def Padding(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - if o != 0: - a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 - - # Conv2dAttribute - def PaddingAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) - return 0 - - # Conv2dAttribute - def PaddingLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - if o != 0: - return self._tab.VectorLen(o) - return 0 - - # Conv2dAttribute - def Stride(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) - if o != 0: - a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 - - # Conv2dAttribute - def StrideAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) - if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) - return 0 - - # Conv2dAttribute - def StrideLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) - if o != 0: - return self._tab.VectorLen(o) - return 0 - - # Conv2dAttribute - def Dilation(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - if o != 0: - a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 - - # Conv2dAttribute - def DilationAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) - return 0 - - # Conv2dAttribute - def DilationLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - if o != 0: - return self._tab.VectorLen(o) - return 0 - -def Conv2dAttributeStart(builder): builder.StartObject(3) -def Conv2dAttributeAddPadding(builder, padding): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(padding), 0) -def Conv2dAttributeStartPaddingVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def Conv2dAttributeAddStride(builder, stride): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(stride), 0) -def Conv2dAttributeStartStrideVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def Conv2dAttributeAddDilation(builder, dilation): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(dilation), 0) -def Conv2dAttributeStartDilationVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def Conv2dAttributeEnd(builder): return builder.EndObject() diff --git a/ethosu/vela/tosa/ConvAttribute.py b/ethosu/vela/tosa/ConvAttribute.py new file mode 100644 index 00000000..d67ae5ff --- /dev/null +++ b/ethosu/vela/tosa/ConvAttribute.py @@ -0,0 +1,94 @@ +# automatically generated by the FlatBuffers compiler, do not modify + +# namespace: tosa + +import flatbuffers + +class ConvAttribute(object): + __slots__ = ['_tab'] + + @classmethod + def GetRootAsConvAttribute(cls, buf, offset): + n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) + x = ConvAttribute() + x.Init(buf, n + offset) + return x + + # ConvAttribute + def Init(self, buf, pos): + self._tab = flatbuffers.table.Table(buf, pos) + + # ConvAttribute + def Padding(self, j): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + a = self._tab.Vector(o) + return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) + return 0 + + # ConvAttribute + def PaddingAsNumpy(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) + return 0 + + # ConvAttribute + def PaddingLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + + # ConvAttribute + def Stride(self, j): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + a = self._tab.Vector(o) + return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) + return 0 + + # ConvAttribute + def StrideAsNumpy(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) + return 0 + + # ConvAttribute + def StrideLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + + # ConvAttribute + def Dilation(self, j): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + if o != 0: + a = self._tab.Vector(o) + return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) + return 0 + + # ConvAttribute + def DilationAsNumpy(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + if o != 0: + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) + return 0 + + # ConvAttribute + def DilationLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + +def ConvAttributeStart(builder): builder.StartObject(3) +def ConvAttributeAddPadding(builder, padding): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(padding), 0) +def ConvAttributeStartPaddingVector(builder, numElems): return builder.StartVector(4, numElems, 4) +def ConvAttributeAddStride(builder, stride): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(stride), 0) +def ConvAttributeStartStrideVector(builder, numElems): return builder.StartVector(4, numElems, 4) +def ConvAttributeAddDilation(builder, dilation): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(dilation), 0) +def ConvAttributeStartDilationVector(builder, numElems): return builder.StartVector(4, numElems, 4) +def ConvAttributeEnd(builder): return builder.EndObject() diff --git a/ethosu/vela/tosa/Op.py b/ethosu/vela/tosa/Op.py index c71ac44a..8b4af898 100644 --- a/ethosu/vela/tosa/Op.py +++ b/ethosu/vela/tosa/Op.py @@ -22,7 +22,7 @@ class Op(object): BITWISE_AND = 16 BITWISE_OR = 17 BITWISE_XOR = 18 - DIV = 19 + INTDIV = 19 LOGICAL_AND = 20 LOGICAL_LEFT_SHIFT = 21 LOGICAL_RIGHT_SHIFT = 22 diff --git a/ethosu/vela/tosa/Pool2dAttribute.py b/ethosu/vela/tosa/Pool2dAttribute.py deleted file mode 100644 index a45c1f1e..00000000 --- a/ethosu/vela/tosa/Pool2dAttribute.py +++ /dev/null @@ -1,94 +0,0 @@ -# automatically generated by the FlatBuffers compiler, do not modify - -# namespace: tosa - -import flatbuffers - -class Pool2dAttribute(object): - __slots__ = ['_tab'] - - @classmethod - def GetRootAsPool2dAttribute(cls, buf, offset): - n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) - x = Pool2dAttribute() - x.Init(buf, n + offset) - return x - - # Pool2dAttribute - def Init(self, buf, pos): - self._tab = flatbuffers.table.Table(buf, pos) - - # Pool2dAttribute - def Padding(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - if o != 0: - a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 - - # Pool2dAttribute - def PaddingAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) - return 0 - - # Pool2dAttribute - def PaddingLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - if o != 0: - return self._tab.VectorLen(o) - return 0 - - # Pool2dAttribute - def Kernel(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) - if o != 0: - a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 - - # Pool2dAttribute - def KernelAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) - if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) - return 0 - - # Pool2dAttribute - def KernelLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) - if o != 0: - return self._tab.VectorLen(o) - return 0 - - # Pool2dAttribute - def Stride(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - if o != 0: - a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 - - # Pool2dAttribute - def StrideAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) - return 0 - - # Pool2dAttribute - def StrideLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - if o != 0: - return self._tab.VectorLen(o) - return 0 - -def Pool2dAttributeStart(builder): builder.StartObject(3) -def Pool2dAttributeAddPadding(builder, padding): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(padding), 0) -def Pool2dAttributeStartPaddingVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def Pool2dAttributeAddKernel(builder, kernel): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(kernel), 0) -def Pool2dAttributeStartKernelVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def Pool2dAttributeAddStride(builder, stride): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(stride), 0) -def Pool2dAttributeStartStrideVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def Pool2dAttributeEnd(builder): return builder.EndObject() diff --git a/ethosu/vela/tosa/PoolAttribute.py b/ethosu/vela/tosa/PoolAttribute.py new file mode 100644 index 00000000..f6d17ec0 --- /dev/null +++ b/ethosu/vela/tosa/PoolAttribute.py @@ -0,0 +1,94 @@ +# automatically generated by the FlatBuffers compiler, do not modify + +# namespace: tosa + +import flatbuffers + +class PoolAttribute(object): + __slots__ = ['_tab'] + + @classmethod + def GetRootAsPoolAttribute(cls, buf, offset): + n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) + x = PoolAttribute() + x.Init(buf, n + offset) + return x + + # PoolAttribute + def Init(self, buf, pos): + self._tab = flatbuffers.table.Table(buf, pos) + + # PoolAttribute + def Padding(self, j): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + a = self._tab.Vector(o) + return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) + return 0 + + # PoolAttribute + def PaddingAsNumpy(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) + return 0 + + # PoolAttribute + def PaddingLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + + # PoolAttribute + def Kernel(self, j): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + a = self._tab.Vector(o) + return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) + return 0 + + # PoolAttribute + def KernelAsNumpy(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) + return 0 + + # PoolAttribute + def KernelLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + + # PoolAttribute + def Stride(self, j): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + if o != 0: + a = self._tab.Vector(o) + return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) + return 0 + + # PoolAttribute + def StrideAsNumpy(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + if o != 0: + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) + return 0 + + # PoolAttribute + def StrideLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + +def PoolAttributeStart(builder): builder.StartObject(3) +def PoolAttributeAddPadding(builder, padding): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(padding), 0) +def PoolAttributeStartPaddingVector(builder, numElems): return builder.StartVector(4, numElems, 4) +def PoolAttributeAddKernel(builder, kernel): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(kernel), 0) +def PoolAttributeStartKernelVector(builder, numElems): return builder.StartVector(4, numElems, 4) +def PoolAttributeAddStride(builder, stride): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(stride), 0) +def PoolAttributeStartStrideVector(builder, numElems): return builder.StartVector(4, numElems, 4) +def PoolAttributeEnd(builder): return builder.EndObject() diff --git a/ethosu/vela/tosa/TransposeConv2dAttribute.py b/ethosu/vela/tosa/TransposeConv2dAttribute.py deleted file mode 100644 index 80f544fc..00000000 --- a/ethosu/vela/tosa/TransposeConv2dAttribute.py +++ /dev/null @@ -1,118 +0,0 @@ -# automatically generated by the FlatBuffers compiler, do not modify - -# namespace: tosa - -import flatbuffers - -class TransposeConv2dAttribute(object): - __slots__ = ['_tab'] - - @classmethod - def GetRootAsTransposeConv2dAttribute(cls, buf, offset): - n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) - x = TransposeConv2dAttribute() - x.Init(buf, n + offset) - return x - - # TransposeConv2dAttribute - def Init(self, buf, pos): - self._tab = flatbuffers.table.Table(buf, pos) - - # TransposeConv2dAttribute - def Outpad(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - if o != 0: - a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 - - # TransposeConv2dAttribute - def OutpadAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) - return 0 - - # TransposeConv2dAttribute - def OutpadLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - if o != 0: - return self._tab.VectorLen(o) - return 0 - - # TransposeConv2dAttribute - def Stride(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) - if o != 0: - a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 - - # TransposeConv2dAttribute - def StrideAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) - if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) - return 0 - - # TransposeConv2dAttribute - def StrideLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) - if o != 0: - return self._tab.VectorLen(o) - return 0 - - # TransposeConv2dAttribute - def Dilation(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - if o != 0: - a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 - - # TransposeConv2dAttribute - def DilationAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) - return 0 - - # TransposeConv2dAttribute - def DilationLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - if o != 0: - return self._tab.VectorLen(o) - return 0 - - # TransposeConv2dAttribute - def OutputShape(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) - if o != 0: - a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 - - # TransposeConv2dAttribute - def OutputShapeAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) - if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) - return 0 - - # TransposeConv2dAttribute - def OutputShapeLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) - if o != 0: - return self._tab.VectorLen(o) - return 0 - -def TransposeConv2dAttributeStart(builder): builder.StartObject(4) -def TransposeConv2dAttributeAddOutpad(builder, outpad): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(outpad), 0) -def TransposeConv2dAttributeStartOutpadVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def TransposeConv2dAttributeAddStride(builder, stride): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(stride), 0) -def TransposeConv2dAttributeStartStrideVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def TransposeConv2dAttributeAddDilation(builder, dilation): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(dilation), 0) -def TransposeConv2dAttributeStartDilationVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def TransposeConv2dAttributeAddOutputShape(builder, outputShape): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(outputShape), 0) -def TransposeConv2dAttributeStartOutputShapeVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def TransposeConv2dAttributeEnd(builder): return builder.EndObject() diff --git a/ethosu/vela/tosa/TransposeConvAttribute.py b/ethosu/vela/tosa/TransposeConvAttribute.py new file mode 100644 index 00000000..c7aeb41e --- /dev/null +++ b/ethosu/vela/tosa/TransposeConvAttribute.py @@ -0,0 +1,118 @@ +# automatically generated by the FlatBuffers compiler, do not modify + +# namespace: tosa + +import flatbuffers + +class TransposeConvAttribute(object): + __slots__ = ['_tab'] + + @classmethod + def GetRootAsTransposeConvAttribute(cls, buf, offset): + n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) + x = TransposeConvAttribute() + x.Init(buf, n + offset) + return x + + # TransposeConvAttribute + def Init(self, buf, pos): + self._tab = flatbuffers.table.Table(buf, pos) + + # TransposeConvAttribute + def Outpad(self, j): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + a = self._tab.Vector(o) + return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) + return 0 + + # TransposeConvAttribute + def OutpadAsNumpy(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) + return 0 + + # TransposeConvAttribute + def OutpadLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + + # TransposeConvAttribute + def Stride(self, j): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + a = self._tab.Vector(o) + return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) + return 0 + + # TransposeConvAttribute + def StrideAsNumpy(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) + return 0 + + # TransposeConvAttribute + def StrideLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + + # TransposeConvAttribute + def Dilation(self, j): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + if o != 0: + a = self._tab.Vector(o) + return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) + return 0 + + # TransposeConvAttribute + def DilationAsNumpy(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + if o != 0: + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) + return 0 + + # TransposeConvAttribute + def DilationLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + + # TransposeConvAttribute + def OutputShape(self, j): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) + if o != 0: + a = self._tab.Vector(o) + return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) + return 0 + + # TransposeConvAttribute + def OutputShapeAsNumpy(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) + if o != 0: + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) + return 0 + + # TransposeConvAttribute + def OutputShapeLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + +def TransposeConvAttributeStart(builder): builder.StartObject(4) +def TransposeConvAttributeAddOutpad(builder, outpad): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(outpad), 0) +def TransposeConvAttributeStartOutpadVector(builder, numElems): return builder.StartVector(4, numElems, 4) +def TransposeConvAttributeAddStride(builder, stride): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(stride), 0) +def TransposeConvAttributeStartStrideVector(builder, numElems): return builder.StartVector(4, numElems, 4) +def TransposeConvAttributeAddDilation(builder, dilation): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(dilation), 0) +def TransposeConvAttributeStartDilationVector(builder, numElems): return builder.StartVector(4, numElems, 4) +def TransposeConvAttributeAddOutputShape(builder, outputShape): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(outputShape), 0) +def TransposeConvAttributeStartOutputShapeVector(builder, numElems): return builder.StartVector(4, numElems, 4) +def TransposeConvAttributeEnd(builder): return builder.EndObject() diff --git a/ethosu/vela/tosa_mapping.py b/ethosu/vela/tosa_mapping.py index 75f1c9c5..6710787e 100644 --- a/ethosu/vela/tosa_mapping.py +++ b/ethosu/vela/tosa_mapping.py @@ -26,19 +26,19 @@ from .tosa import ArithmeticRightShiftAttribute # noqa: F401 from .tosa import AxisAttribute # noqa: F401 from .tosa import ClampAttribute # noqa: F401 from .tosa import CondIfAttribute # noqa: F401 -from .tosa import Conv2dAttribute # noqa: F401 +from .tosa import ConvAttribute # noqa: F401 from .tosa import ConvQuantInfo # noqa: F401 from .tosa import MatMulQuantInfo # noqa: F401 from .tosa import MulAttribute # noqa: F401 from .tosa import PadQuantInfo # noqa: F401 -from .tosa import Pool2dAttribute # noqa: F401 +from .tosa import PoolAttribute # noqa: F401 from .tosa import ReluNAttribute # noqa: F401 from .tosa import RescaleAttribute # noqa: F401 from .tosa import ReshapeAttribute # noqa: F401 from .tosa import ResizeAttribute # noqa: F401 from .tosa import SliceAttribute # noqa: F401 from .tosa import TileAttribute # noqa: F401 -from .tosa import TransposeConv2dAttribute # noqa: F401 +from .tosa import TransposeConvAttribute # noqa: F401 from .tosa import UnaryQuantInfo # noqa: F401 from .tosa import WhileLoopAttribute # noqa: F401 from .tosa.DType import DType @@ -148,10 +148,10 @@ class QuantSerializer: is_vec = True -pool2d_attrs = AttrSerializer("Pool2dAttribute", (("padding", is_vec), ("kernel", is_vec), ("stride", is_vec))) -conv2d_attrs = AttrSerializer("Conv2dAttribute", (("padding", is_vec), ("stride", is_vec), ("dilation", is_vec))) -transpose_conv2d_attrs = AttrSerializer( - "TransposeConv2dAttribute", (("outpad", is_vec), ("stride", is_vec), ("dilation", is_vec), ("out_shape", is_vec)) +pool_attrs = AttrSerializer("PoolAttribute", (("padding", is_vec), ("kernel", is_vec), ("stride", is_vec))) +conv_attrs = AttrSerializer("ConvAttribute", (("padding", is_vec), ("stride", is_vec), ("dilation", is_vec))) +transpose_conv_attrs = AttrSerializer( + "TransposeConvAttribute", (("outpad", is_vec), ("stride", is_vec), ("dilation", is_vec), ("out_shape", is_vec)) ) relun_attrs = AttrSerializer("ReluNAttribute", ("max_int")) axis_attrs = AttrSerializer("AxisAttribute", ("axis",)) @@ -187,7 +187,7 @@ unsupported_tosa_operators = { TosaOp.BITWISE_AND, TosaOp.BITWISE_OR, TosaOp.BITWISE_XOR, - TosaOp.DIV, + TosaOp.INTDIV, TosaOp.LOGICAL_AND, TosaOp.LOGICAL_LEFT_SHIFT, TosaOp.LOGICAL_RIGHT_SHIFT, @@ -244,14 +244,14 @@ TOSA_CONCAT_INDICES = TensorIndices([1, 2], [], []) tosa_operator_map = { # TosaOp.UNKNOWN: (), # TODO TosaOp.ARGMAX: (Op.ArgMax, axis_attrs, None), - TosaOp.AVG_POOL2D: (Op.AvgPool, pool2d_attrs, unary_quant_info, TOSA_IFM_INDICES), - TosaOp.CONV2D: (Op.Conv2DBias, conv2d_attrs, conv_quant_info, TOSA_IFM_WEIGHTS_BIAS_INDICES), + TosaOp.AVG_POOL2D: (Op.AvgPool, pool_attrs, unary_quant_info, TOSA_IFM_INDICES), + TosaOp.CONV2D: (Op.Conv2DBias, conv_attrs, conv_quant_info, TOSA_IFM_WEIGHTS_BIAS_INDICES), # TODO TosaOp.CONV3D: - TosaOp.DEPTHWISE_CONV2D: (Op.DepthwiseConv2DBias, conv2d_attrs, conv_quant_info, TOSA_IFM_WEIGHTS_BIAS_INDICES), + TosaOp.DEPTHWISE_CONV2D: (Op.DepthwiseConv2DBias, conv_attrs, conv_quant_info, TOSA_IFM_WEIGHTS_BIAS_INDICES), TosaOp.FULLY_CONNECTED: (Op.FullyConnected, None, conv_quant_info, TOSA_IFM_WEIGHTS_BIAS_INDICES), # TODO TosaOp.MATMUL: - TosaOp.MAX_POOL2D: (Op.MaxPool, pool2d_attrs, None, TOSA_IFM_INDICES), - # TODO TosaOp.TRANSPOSE_CONV2D: (Op.Conv2DBackpropInput, transpose_conv2d_attrs, conv_quant_info) + TosaOp.MAX_POOL2D: (Op.MaxPool, pool_attrs, None, TOSA_IFM_INDICES), + # TODO TosaOp.TRANSPOSE_CONV2D: (Op.Conv2DBackpropInput, transpose_conv_attrs, conv_quant_info) TosaOp.CLAMP: (Op.Clamp, clamp_attrs, None, TOSA_IFM_INDICES), TosaOp.RELUN: (Op.ReluN, relun_attrs, None, TOSA_IFM_INDICES), # TODO TosaOp.SIGMOID @@ -261,7 +261,7 @@ tosa_operator_map = { # TODO TosaOp.BITWISE_AND # TODO TosaOp.BITWISE_OR # TODO TosaOp.BITWISE_XOR - # TODO TosaOp.DIV + # TODO TosaOp.INTDIV # TODO TosaOp.LOGICAL_AND # TODO TosaOp.LOGICAL_LEFT_SHIFT # TODO TosaOp.LOGICAL_RIGHT_SHIFT -- cgit v1.2.1