Add conversions of U8 to/from BF16 and FP8
Adds type to PadAttribute and ClampAttribute so their pad_const
and max_val/min_val can be deserialized according to type
Adds conversion functions of U8 arrays to/from BF16/FP8 values
Also, refactor and expose TosaSerializer.convertDataToUint8Vec
for converting dtype/data to uint8 list for serialization
And modify convertDataToUint8Vec to serialize bf16 values into
2 bytes each, and serialize fp8 values into single bytes each.
Signed-off-by: Tai Ly <tai.ly@arm.com>
Change-Id: I05659e8187c76d359f1cc9f71c8c23cafd0e877f
diff --git a/python/tosa/ClampAttribute.py b/python/tosa/ClampAttribute.py
index 6a41498..1189acb 100644
--- a/python/tosa/ClampAttribute.py
+++ b/python/tosa/ClampAttribute.py
@@ -82,8 +82,15 @@
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
return o == 0
+ # ClampAttribute
+ def Type(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Uint32Flags, o + self._tab.Pos)
+ return 0
+
def ClampAttributeStart(builder):
- builder.StartObject(2)
+ builder.StartObject(3)
def Start(builder):
ClampAttributeStart(builder)
@@ -112,6 +119,12 @@
def StartMaxValVector(builder, numElems: int) -> int:
return ClampAttributeStartMaxValVector(builder, numElems)
+def ClampAttributeAddType(builder, type):
+ builder.PrependUint32Slot(2, type, 0)
+
+def AddType(builder, type):
+ ClampAttributeAddType(builder, type)
+
def ClampAttributeEnd(builder):
return builder.EndObject()