aboutsummaryrefslogtreecommitdiff
path: root/verif/tosa_serializer.py
diff options
context:
space:
mode:
Diffstat (limited to 'verif/tosa_serializer.py')
-rw-r--r--verif/tosa_serializer.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/verif/tosa_serializer.py b/verif/tosa_serializer.py
index 07e0e1a..3b7e339 100644
--- a/verif/tosa_serializer.py
+++ b/verif/tosa_serializer.py
@@ -63,12 +63,14 @@ class TosaSerializerUnion:
self.floats = []
self.strings = []
self.intvecs = []
+ self.fpvecs = []
def serialize(self, builder):
# We have to build strings and vectors first
strList = []
intVecList = []
+ fpVecList = []
for fcn, val in self.strings:
strList.append((fcn, builder.CreateString(val)))
@@ -76,6 +78,9 @@ class TosaSerializerUnion:
for fcn, val in self.intvecs:
intVecList.append((fcn, TosaSerializer.serializeInt32Vec(builder, val)))
+ for fcn, val in self.fpvecs:
+ fpVecList.append((fcn, TosaSerializer.serializeFpVec(builder, val)))
+
startFcn, endFcn = self.optFcns
# Then serialize the options object from the list of primitives and
@@ -96,6 +101,9 @@ class TosaSerializerUnion:
for fcn, val in intVecList:
fcn(builder, val)
+ for fcn, val in fpVecList:
+ fcn(builder, val)
+
return endFcn(builder)
class TosaSerializerAttribute(TosaSerializerUnion):
@@ -193,7 +201,7 @@ class TosaSerializerAttribute(TosaSerializerUnion):
self.intvecs.append((a.TileAttributeAddMultiples,
multiples))
- def ResizeAttribute(self, output_size, stride, offset, shift, mode):
+ def ResizeAttribute(self, output_size, stride, offset, shift, stride_fp, offset_fp, mode):
from tosa import ResizeAttribute as a, Attribute
self.utype = Attribute.Attribute().ResizeAttribute
@@ -207,6 +215,10 @@ class TosaSerializerAttribute(TosaSerializerUnion):
offset))
self.ints.append((a.ResizeAttributeAddShift,
shift))
+ self.fpvecs.append((a.ResizeAttributeAddStrideFp,
+ stride_fp))
+ self.fpvecs.append((a.ResizeAttributeAddOffsetFp,
+ offset_fp))
self.ints.append((a.ResizeAttributeAddMode,
mode))
@@ -692,6 +704,13 @@ class TosaSerializer:
return builder.EndVector(len(vec))
@staticmethod
+ def serializeFpVec(builder, vec):
+ builder.StartVector(4, len(vec), 4)
+ for v in vec[::-1]:
+ builder.PrependFloat32(v)
+ return builder.EndVector(len(vec))
+
+ @staticmethod
def serializeObjVec(builder, vec, start_fcn):
serialized_vec = []
for v in vec[::-1]: