diff options
Diffstat (limited to 'verif/tosa_serializer.py')
-rw-r--r-- | verif/tosa_serializer.py | 21 |
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]: |