diff options
author | Rob Elliott <robert.elliott@arm.com> | 2023-08-17 14:27:06 +0000 |
---|---|---|
committer | Rickard Bolin <rickard.bolin@arm.com> | 2023-08-21 16:14:51 +0000 |
commit | 00a15db3e1a188b25065d095152d701f4394cdc5 (patch) | |
tree | 96761b9f7ac3ad759f9f0ffbf63a6d0ef115ad14 /ethosu/vela/tosa/ClampAttribute.py | |
parent | 8ea90edb75e5d2353aa91c264356fc9d460ca308 (diff) | |
download | ethos-u-vela-00a15db3e1a188b25065d095152d701f4394cdc5.tar.gz |
Moving Vela to use TOSA v0.80.0 specification
* Using serialization_lib main branch to update statically copied
files sha 5f920211ac23393a7b98a0d358bfbfc3232d5c8f (v0.80.0)
* All files within the ethosu/vela/tosa are copied from that revision
* Note: hope to move to serialization_lib as a pip module in future
* Modified the ethosu/vela/{tosa_mapping,tosa_reader}.py to use
v0.80.0 TOSA FlatBuffers implementation
* These are the additional changes made to support this new version,
with changes in the format of the FlatBuffers file and where various
values are stored. Either changing from input to attribute, or
moving to different attributes.
Signed-off-by: Rob Elliott <robert.elliott@arm.com>
Change-Id: I5e1fcc2a9964148619be3477adf1e88e84cbae2d
Diffstat (limited to 'ethosu/vela/tosa/ClampAttribute.py')
-rw-r--r-- | ethosu/vela/tosa/ClampAttribute.py | 117 |
1 files changed, 104 insertions, 13 deletions
diff --git a/ethosu/vela/tosa/ClampAttribute.py b/ethosu/vela/tosa/ClampAttribute.py index 9cc8d4d5..40e7d2e6 100644 --- a/ethosu/vela/tosa/ClampAttribute.py +++ b/ethosu/vela/tosa/ClampAttribute.py @@ -3,17 +3,27 @@ # namespace: tosa import flatbuffers +from flatbuffers.compat import import_numpy +np = import_numpy() class ClampAttribute(object): __slots__ = ['_tab'] @classmethod - def GetRootAsClampAttribute(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = ClampAttribute() x.Init(buf, n + offset) return x + @classmethod + def GetRootAsClampAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod + def ClampAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): + return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) + # ClampAttribute def Init(self, buf, pos): self._tab = flatbuffers.table.Table(buf, pos) @@ -33,22 +43,103 @@ class ClampAttribute(object): return 0 # ClampAttribute - def MinFp(self): + def MinFp(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.Uint8Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 1)) + return 0 + + # ClampAttribute + def MinFpAsNumpy(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) if o != 0: - return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos) - return 0.0 + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Uint8Flags, o) + return 0 + + # ClampAttribute + def MinFpLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + + # ClampAttribute + def MinFpIsNone(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + return o == 0 + + # ClampAttribute + def MaxFp(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.Uint8Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 1)) + return 0 + + # ClampAttribute + def MaxFpAsNumpy(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) + if o != 0: + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Uint8Flags, o) + return 0 # ClampAttribute - def MaxFp(self): + def MaxFpLength(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) if o != 0: - return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos) - return 0.0 + return self._tab.VectorLen(o) + return 0 + + # ClampAttribute + def MaxFpIsNone(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) + return o == 0 + +def ClampAttributeStart(builder): + builder.StartObject(4) + +def Start(builder): + ClampAttributeStart(builder) + +def ClampAttributeAddMinInt(builder, minInt): + builder.PrependInt32Slot(0, minInt, 0) + +def AddMinInt(builder, minInt): + ClampAttributeAddMinInt(builder, minInt) + +def ClampAttributeAddMaxInt(builder, maxInt): + builder.PrependInt32Slot(1, maxInt, 0) + +def AddMaxInt(builder, maxInt): + ClampAttributeAddMaxInt(builder, maxInt) + +def ClampAttributeAddMinFp(builder, minFp): + builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(minFp), 0) + +def AddMinFp(builder, minFp): + ClampAttributeAddMinFp(builder, minFp) + +def ClampAttributeStartMinFpVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + +def StartMinFpVector(builder, numElems: int) -> int: + return ClampAttributeStartMinFpVector(builder, numElems) + +def ClampAttributeAddMaxFp(builder, maxFp): + builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(maxFp), 0) + +def AddMaxFp(builder, maxFp): + ClampAttributeAddMaxFp(builder, maxFp) + +def ClampAttributeStartMaxFpVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + +def StartMaxFpVector(builder, numElems: int) -> int: + return ClampAttributeStartMaxFpVector(builder, numElems) + +def ClampAttributeEnd(builder): + return builder.EndObject() -def ClampAttributeStart(builder): builder.StartObject(4) -def ClampAttributeAddMinInt(builder, minInt): builder.PrependInt32Slot(0, minInt, 0) -def ClampAttributeAddMaxInt(builder, maxInt): builder.PrependInt32Slot(1, maxInt, 0) -def ClampAttributeAddMinFp(builder, minFp): builder.PrependFloat32Slot(2, minFp, 0.0) -def ClampAttributeAddMaxFp(builder, maxFp): builder.PrependFloat32Slot(3, maxFp, 0.0) -def ClampAttributeEnd(builder): return builder.EndObject() +def End(builder): + return ClampAttributeEnd(builder) |