diff options
author | Kevin Cheng <kevin.cheng@arm.com> | 2020-11-24 10:26:32 -0800 |
---|---|---|
committer | Kevin Cheng <kevin.cheng@arm.com> | 2020-11-24 14:06:04 -0800 |
commit | 77d0f76b42c6353459d3271ccba9e41728d066cd (patch) | |
tree | 70f95376de80e249a15b15dba6faa27fb4d48f45 /verif/tosa_serializer.py | |
parent | aee1facbde25caf27cc34e5ec08eb8bba6af8e18 (diff) | |
download | reference_model-77d0f76b42c6353459d3271ccba9e41728d066cd.tar.gz |
Update reference model/serialization library to 0.21.0 with unit tests added/updated
- update tosa.GATHER
- update tosa.RESIZE
- add tosa.SCATTER
Signed-off-by: Kevin Cheng <kevin.cheng@arm.com>
Change-Id: I1c3247b831a64e35a85c4044b24c6c29b8e18d25
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]: |