diff options
Diffstat (limited to 'python')
34 files changed, 1775 insertions, 1124 deletions
diff --git a/python/serializer/tosa_serializer.py b/python/serializer/tosa_serializer.py index ec1c12d..c328aaf 100644 --- a/python/serializer/tosa_serializer.py +++ b/python/serializer/tosa_serializer.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022, ARM Limited. +# Copyright (c) 2020-2024, ARM Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,6 +13,7 @@ # limitations under the License. import os +import serializer.tosa_serializer as ts import json import flatbuffers import numpy as np @@ -20,6 +21,7 @@ import struct from enum import IntEnum, unique from tosa import ( TosaGraph, + TosaRegion, TosaBasicBlock, TosaTensor, TosaOperator, @@ -29,8 +31,8 @@ import tosa.DType as TosaDType import tosa.Op as TosaOp # Keep version number in sync with the version default value with schema/tosa.fbs -TOSA_VERSION_MAJOR = 0 -TOSA_VERSION_MINOR = 31 +TOSA_VERSION_MAJOR = 1 +TOSA_VERSION_MINOR = 1 TOSA_VERSION_PATCH = 0 TOSA_VERSION_DRAFT = True TOSA_VERSION = [ @@ -56,8 +58,13 @@ DTypeNames = [ "INT16", "INT32", "INT48", - "FLOAT", + "FP32", "UINT16", + "FP16", + "BF16", + "SHAPE", + "FP8E4M3", + "FP8E5M2", ] ByteMask = np.uint64(0xFF) @@ -90,6 +97,7 @@ class TosaSerializerUnion: self.bools = [] self.floats = [] self.strings = [] + self.int16vecs = [] self.intvecs = [] self.fpvecs = [] @@ -106,6 +114,9 @@ class TosaSerializerUnion: for fcn, val in self.intvecs: intVecList.append((fcn, TosaSerializer.serializeInt32Vec(builder, val))) + for fcn, val in self.int16vecs: + intVecList.append((fcn, TosaSerializer.serializeInt16Vec(builder, val))) + for fcn, val in self.fpvecs: fpVecList.append((fcn, TosaSerializer.serializeFpVec(builder, val))) @@ -141,7 +152,15 @@ class TosaSerializerAttribute(TosaSerializerUnion): def __init__(self): super().__init__() - def PoolAttribute(self, kernel, stride, pad, input_zp, output_zp): + def PoolAttribute( + self, + kernel, + stride, + pad, + input_zp, + output_zp, + acc_type, + ): from tosa import PoolAttribute as a, Attribute self.utype = Attribute.Attribute().PoolAttribute @@ -152,8 +171,11 @@ class TosaSerializerAttribute(TosaSerializerUnion): self.intvecs.append((a.AddStride, stride)) self.ints.append((a.AddInputZp, input_zp)) self.ints.append((a.AddOutputZp, output_zp)) + self.ints.append((a.AddAccType, acc_type)) - def ConvAttribute(self, pad, stride, dilation, input_zp, weight_zp): + def ConvAttribute( + self, pad, stride, dilation, input_zp, weight_zp, local_bound, acc_type + ): from tosa import ConvAttribute as a, Attribute self.utype = Attribute.Attribute().ConvAttribute @@ -164,8 +186,12 @@ class TosaSerializerAttribute(TosaSerializerUnion): self.intvecs.append((a.AddDilation, dilation)) self.ints.append((a.AddInputZp, input_zp)) self.ints.append((a.AddWeightZp, weight_zp)) + self.bools.append((a.AddLocalBound, local_bound)) + self.ints.append((a.AddAccType, acc_type)) - def TransposeConvAttribute(self, outpad, stride, output_shape, input_zp, weight_zp): + def TransposeConvAttribute( + self, outpad, stride, input_zp, weight_zp, local_bound, acc_type + ): from tosa import TransposeConvAttribute as a, Attribute self.utype = Attribute.Attribute().TransposeConvAttribute @@ -173,19 +199,23 @@ class TosaSerializerAttribute(TosaSerializerUnion): self.intvecs.append((a.AddOutPad, outpad)) self.intvecs.append((a.AddStride, stride)) - self.intvecs.append((a.AddOutputShape, output_shape)) self.ints.append((a.AddInputZp, input_zp)) self.ints.append((a.AddWeightZp, weight_zp)) + self.bools.append((a.AddLocalBound, local_bound)) + self.ints.append((a.AddAccType, acc_type)) - def PadAttribute(self, padding, pad_const_int, pad_const_fp): + def PadAttribute(self, serializer_builder, pad_const_val_as_bytes): from tosa import PadAttribute as a, Attribute self.utype = Attribute.Attribute().PadAttribute self.optFcns = (a.Start, a.End) - self.intvecs.append((a.AddPadding, padding)) - self.ints.append((a.AddPadConstInt, pad_const_int)) - self.floats.append((a.AddPadConstFp, pad_const_fp)) + # serialize pad_const_val_as_bytes as uint8 vector + serialized_pad_const_val = ts.TosaSerializer.serializeUint8Vec( + serializer_builder, pad_const_val_as_bytes + ) + + self.floats.append((a.AddPadConst, serialized_pad_const_val)) def AxisAttribute(self, axis): from tosa import AxisAttribute as a, Attribute @@ -195,61 +225,43 @@ class TosaSerializerAttribute(TosaSerializerUnion): self.ints.append((a.AddAxis, axis)) - def ReshapeAttribute(self, new_shape): - from tosa import ReshapeAttribute as a, Attribute - - self.utype = Attribute.Attribute().ReshapeAttribute - self.optFcns = (a.Start, a.End) - - self.intvecs.append((a.AddNewShape, new_shape)) - - def SliceAttribute(self, start, size): - from tosa import SliceAttribute as a, Attribute - - self.utype = Attribute.Attribute().SliceAttribute - self.optFcns = (a.Start, a.End) - - self.intvecs.append((a.AddStart, start)) - self.intvecs.append((a.AddSize, size)) - - def TileAttribute(self, multiples): - from tosa import TileAttribute as a, Attribute - - self.utype = Attribute.Attribute().TileAttribute - self.optFcns = (a.Start, a.End) - - self.intvecs.append((a.AddMultiples, multiples)) - - def ResizeAttribute( - self, output_size, stride, offset, shift, stride_fp, offset_fp, mode - ): + def ResizeAttribute(self, scale, offset, border, mode): from tosa import ResizeAttribute as a, Attribute self.utype = Attribute.Attribute().ResizeAttribute self.optFcns = (a.Start, a.End) - self.intvecs.append((a.AddOutputSize, output_size)) - self.intvecs.append((a.AddStride, stride)) - self.intvecs.append((a.AddOffset, offset)) - self.ints.append((a.AddShift, shift)) - self.fpvecs.append((a.AddStrideFp, stride_fp)) - self.fpvecs.append((a.AddOffsetFp, offset_fp)) + self.int16vecs.append((a.AddScale, scale)) + self.int16vecs.append((a.AddOffset, offset)) + self.int16vecs.append((a.AddBorder, border)) self.ints.append((a.AddMode, mode)) - def ClampAttribute(self, minint, maxint, minfp, maxfp): + def ClampAttribute(self, serializer_builder, min_val_as_bytes, max_val_as_bytes): from tosa import ClampAttribute as a, Attribute self.utype = Attribute.Attribute().ClampAttribute self.optFcns = (a.Start, a.End) - self.ints.append((a.AddMinInt, minint)) - self.ints.append((a.AddMaxInt, maxint)) + # min/max float attributes serialized as uint8 vectors + serialized_min_val = ts.TosaSerializer.serializeUint8Vec( + serializer_builder, min_val_as_bytes + ) + serialized_max_val = ts.TosaSerializer.serializeUint8Vec( + serializer_builder, max_val_as_bytes + ) - self.ints.append((a.AddMinFp, minfp)) - self.ints.append((a.AddMaxFp, maxfp)) + self.floats.append((a.AddMinVal, serialized_min_val)) + self.floats.append((a.AddMaxVal, serialized_max_val)) def RescaleAttribute( - self, input_zp, output_zp, multiplier, shift, scale32, double_round, per_channel + self, + input_zp, + output_zp, + scale32, + double_round, + per_channel, + input_unsigned, + output_unsigned, ): from tosa import RescaleAttribute as a, Attribute @@ -258,11 +270,11 @@ class TosaSerializerAttribute(TosaSerializerUnion): self.ints.append((a.AddInputZp, input_zp)) self.ints.append((a.AddOutputZp, output_zp)) - self.intvecs.append((a.AddMultiplier, multiplier)) - self.intvecs.append((a.AddShift, shift)) self.bools.append((a.AddScale32, scale32)) self.bools.append((a.AddDoubleRound, double_round)) self.bools.append((a.AddPerChannel, per_channel)) + self.bools.append((a.AddInputUnsigned, input_unsigned)) + self.bools.append((a.AddOutputUnsigned, output_unsigned)) def MulAttribute(self, shift): from tosa import MulAttribute as a, Attribute @@ -283,23 +295,23 @@ class TosaSerializerAttribute(TosaSerializerUnion): self.bools.append((a.AddRound, round)) - def CondIfAttribute(self, then_branch, else_branch): + def CondIfAttribute(self, then_graph, else_graph): from tosa import CondIfAttribute as a, Attribute self.utype = Attribute.Attribute().CondIfAttribute self.optFcns = (a.Start, a.End) - self.strings.append((a.AddThenBranch, then_branch)) - self.strings.append((a.AddElseBranch, else_branch)) + self.strings.append((a.AddThenGraph, then_graph)) + self.strings.append((a.AddElseGraph, else_graph)) - def WhileLoopAttribute(self, cond_branch, body_branch): + def WhileLoopAttribute(self, cond_graph, body_graph): from tosa import WhileLoopAttribute as a, Attribute self.utype = Attribute.Attribute().WhileLoopAttribute self.optFcns = (a.Start, a.End) - self.strings.append((a.AddCondBranch, cond_branch)) - self.strings.append((a.AddBodyBranch, body_branch)) + self.strings.append((a.AddCondGraph, cond_graph)) + self.strings.append((a.AddBodyGraph, body_graph)) def TransposeAttribute(self, perms): from tosa import TransposeAttribute as a, Attribute @@ -315,7 +327,7 @@ class TosaSerializerAttribute(TosaSerializerUnion): self.utype = Attribute.Attribute().TableAttribute self.optFcns = (a.Start, a.End) - self.intvecs.append((a.AddTable, table)) + self.int16vecs.append((a.AddTable, table)) def MatMulAttribute(self, A_zp, B_zp): from tosa import MatMulAttribute as a, Attribute @@ -344,6 +356,23 @@ class TosaSerializerAttribute(TosaSerializerUnion): self.ints.append((a.AddInput1Zp, input1_zp)) self.ints.append((a.AddOutputZp, output_zp)) + def FFTAttribute(self, inverse, local_bound): + from tosa import FFTAttribute as a, Attribute + + self.utype = Attribute.Attribute().FFTAttribute + self.optFcns = (a.Start, a.End) + + self.bools.append((a.AddInverse, inverse)) + self.bools.append((a.AddLocalBound, local_bound)) + + def RFFTAttribute(self, local_bound): + from tosa import RFFTAttribute as a, Attribute + + self.utype = Attribute.Attribute().RFFTAttribute + self.optFcns = (a.Start, a.End) + + self.bools.append((a.AddLocalBound, local_bound)) + class TosaSerializerTensor: def __init__( @@ -363,15 +392,30 @@ class TosaSerializerTensor: self.shape = shape self.dtype = dtype + if ( + dtype == DType.FP32 + or dtype == DType.BF16 + or dtype == DType.FP8E4M3 + or dtype == DType.FP8E5M2 + ): + fntype = np.float32 + elif dtype == DType.FP16: + fntype = np.float16 + else: + fntype = int + if isinstance(data, np.ndarray): - data = data.flatten().astype(int).tolist() - data = list(map(int, data)) - self.data = data + data = data.flatten().astype(fntype).tolist() + data = list(map(fntype, data)) elif isinstance(data, list): - data = list(map(int, data)) - self.data = data + data = list(map(fntype, data)) + elif data is not None: + # Assume data is rank 0 data type + data = list(map(fntype, [data])) else: - self.data = None + data = None + + self.data = data # Filename for placeholder tensors. These get generated by the test generation # process and are written to disk, but are considered input tensors by the @@ -381,12 +425,12 @@ class TosaSerializerTensor: self.placeholderFilename = placeholderFilename def __str__(self): - str = "TosaSerializerTensor name: {} shape: {} dtype: {}".format( + concatString = "TosaSerializerTensor name: {} shape: {} dtype: {}".format( self.name, self.shape, DTypeNames[self.dtype], ) - return str + return concatString def setDtype(self, dtype): self.dtype = dtype @@ -395,60 +439,7 @@ class TosaSerializerTensor: fb_name = builder.CreateString(self.name) fb_shapes = TosaSerializer.serializeInt32Vec(builder, self.shape) if self.data: - u8_data = list() - # little endianess - if self.dtype == DType.BOOL: - for val in self.data: - val_u8 = np.uint8(val) - u8_data.append(val_u8) - elif self.dtype == DType.INT4: - in_size = len(self.data) - out_size = (in_size + 1) // 2 - for i in range(out_size): - val_0 = self.data[2 * i] - if (2 * i + 1) < in_size: - val_1 = self.data[2 * i + 1] - else: - val_1 = 0 - val_i8 = (val_0 & 0xF) | ((val_1 & 0xF) << 4) - val_u8 = np.uint8(val_i8) - u8_data.append(val_u8) - elif self.dtype == DType.INT8: - for val in self.data: - val_u8 = np.uint8(val) - u8_data.append(val_u8) - elif self.dtype == DType.INT16: - for val in self.data: - val_u16 = np.uint16(val) - b0 = val_u16 & ByteMask - b1 = (val_u16 >> np.uint16(8)) & ByteMask - u8_data.extend([b0, b1]) - elif self.dtype == DType.INT32: - for val in self.data: - val_u32 = np.uint32(val) - b0 = val_u32 & ByteMask - b1 = (val_u32 >> np.uint32(8)) & ByteMask - b2 = (val_u32 >> np.uint32(16)) & ByteMask - b3 = (val_u32 >> np.uint32(24)) & ByteMask - u8_data.extend([b0, b1, b2, b3]) - elif self.dtype == DType.INT48: - for val in self.data: - val_u64 = np.uint64(val) - b0 = val_u64 & ByteMask - b1 = (val_u64 >> np.uint64(8)) & ByteMask - b2 = (val_u64 >> np.uint64(16)) & ByteMask - b3 = (val_u64 >> np.uint64(24)) & ByteMask - b4 = (val_u64 >> np.uint64(32)) & ByteMask - b5 = (val_u64 >> np.uint64(40)) & ByteMask - u8_data.extend([b0, b1, b2, b3, b4, b5]) - elif self.dtype == DType.FLOAT: - for val in self.data: - b = struct.pack("!f", val) - u8_data.extend([b[3], b[2], b[1], b[0]]) - else: - raise Exception( - "unsupported data type {}".format(DTypeNames[self.dtype]) - ) + u8_data = TosaSerializer.convertDataToUint8Vec(self.dtype, self.data) fb_data = TosaSerializer.serializeUint8Vec(builder, u8_data) TosaTensor.Start(builder) @@ -469,14 +460,14 @@ class TosaSerializerOperator: self.outputs = TosaSerializer.toList(outputs) def __str__(self): - str = "Op {}\n----\n".format(self.op) + concatString = "Op {}\n----\n".format(self.op) for i in self.inputs: - str = str + " Input: {}\n".format(i) + concatString = concatString + " Input: {}\n".format(i) for o in self.outputs: - str = str + " Output: {}\n".format(o) + concatString = concatString + " Output: {}\n".format(o) - return str + return concatString def serialize(self, builder): fb_inputs = TosaSerializer.serializeStrVec( @@ -561,41 +552,39 @@ class TosaSerializerBasicBlock: return TosaBasicBlock.End(builder) +# How CONSTs are treated in the flatbuffer @unique -class TensorDir(IntEnum): - PLACEHOLDER = 0 - CONST = 1 - INTERMEDIATE = 2 - RESULT = 3 +class ConstMode(IntEnum): + EMBED = 0 + EMBED_DUMP = 1 + INPUTS = 2 -class TosaSerializer: - def __init__(self, pathPrefix): - self.add_compat_methods() - # Get the global TOSA version if not already defined - - self.builder = flatbuffers.Builder(0) - +class TosaSerializerRegion: + def __init__(self, name, pathPrefix, constMode=ConstMode.EMBED): + self.name = name self.basicBlocks = [] - self.startBasicBlock("main") - self.pathPrefix = pathPrefix - - # Indicies used for adding/naming tensors self.currInputIdx = 0 self.currConstIdx = 0 self.currLayerIdx = 1 self.currResultIdx = 0 + self.pathPrefix = pathPrefix + self.constMode = constMode - # Is this an illegal test that is expected to fail? - self.expectedReturnCode = 0 - self.expectedFailure = False - self.expectedFailureDesc = "" + def addBasicBlock(self, name): + self.currBasicBlock = TosaSerializerBasicBlock(name) + self.basicBlocks.append(self.currBasicBlock) - def __str__(self): - str = "" - for bb in self.basicBlocks: - str = str + bb.__str__() - return str + def serialize(self, builder): + fb_name = builder.CreateString(self.name) + fbv_basicBlocks = TosaSerializer.serializeObjVec( + builder, self.basicBlocks, TosaRegion.StartBlocksVector + ) + + TosaRegion.Start(builder) + TosaRegion.AddName(builder, fb_name) + TosaRegion.AddBlocks(builder, fbv_basicBlocks) + return TosaRegion.End(builder) def addPlaceholder(self, shape, dtype, vals): if not self.currBasicBlock: @@ -614,21 +603,42 @@ class TosaSerializer: return tens - def addConst(self, shape, dtype, vals): + def addConst(self, shape, dtype, vals, name=None): if not self.currBasicBlock: raise Exception("addTensor called without valid basic block") - name = "const-{}".format(self.currInputIdx) - self.currInputIdx = self.currInputIdx + 1 + if name is None: + name = "const-{}".format(self.currInputIdx) + self.currInputIdx = self.currInputIdx + 1 - tens = self.currBasicBlock.addTensor(name, shape, dtype, vals) + if self.constMode == ConstMode.INPUTS: + # Save const as input file + filename = "{}.npy".format(name) + tensor_vals = None + self.currBasicBlock.addInput(name) + else: + # Embed const in flatbuffer + filename = None + tensor_vals = vals + + tens = self.currBasicBlock.addTensor(name, shape, dtype, tensor_vals, filename) # Add the operator now - self.currBasicBlock.addOperator(TosaOp.Op().CONST, [], name) + if dtype == DType.SHAPE: + self.currBasicBlock.addOperator(TosaOp.Op().CONST_SHAPE, [], name) + else: + self.currBasicBlock.addOperator(TosaOp.Op().CONST, [], name) + + # Save the const data to file for debug or as input files + if vals is not None and self.constMode in [ + ConstMode.EMBED_DUMP, + ConstMode.INPUTS, + ]: + filename = "{}.npy".format(name) + np.save(os.path.join(self.pathPrefix, filename), vals, False) return tens def addIntermediate(self, shape, dtype): - if not self.currBasicBlock: raise Exception("addTensor called without valid basic block") @@ -640,7 +650,13 @@ class TosaSerializer: return tens def addInputTensor(self, tensor): - self.currBasicBlock.addTensor(tensor.name, tensor.shape, tensor.dtype) + self.currBasicBlock.addTensor( + tensor.name, + tensor.shape, + tensor.dtype, + tensor.data, + tensor.placeholderFilename, + ) self.currBasicBlock.addInput(tensor.name) def addOutputTensor(self, tensor): @@ -658,7 +674,6 @@ class TosaSerializer: return tens def addOperator(self, op, inputs, outputs, attributes=None): - if op == TosaOp.Op().CONST: raise Exception("Use addConstTensor() to add CONST ops") @@ -669,6 +684,62 @@ class TosaSerializer: attributes, ) + +@unique +class TensorDir(IntEnum): + PLACEHOLDER = 0 + CONST = 1 + INTERMEDIATE = 2 + RESULT = 3 + + +class TosaSerializer: + def __init__(self, pathPrefix, constMode=ConstMode.EMBED): + self.builder = flatbuffers.Builder(0) + + # Enables inspection of constant data outside of graph + self.constMode = constMode + + self.regions = [] + self.startRegion("main", pathPrefix) + + self.currRegion.addBasicBlock("main") + + # Is this an illegal test that is expected to fail? + self.expectedReturnCode = 0 + self.expectedFailure = False + self.expectedFailureDesc = "" + + def __str__(self): + concatString = "" + for region in self.regions: + concatString = concatString + str(region) + return concatString + + def addPlaceholder(self, shape, dtype, vals): + return self.currRegion.addPlaceholder(shape, dtype, vals) + + def addConst(self, shape, dtype, vals, name=None): + return self.currRegion.addConst(shape, dtype, vals, name) + + def addIntermediate(self, shape, dtype): + return self.currRegion.addIntermediate(shape, dtype) + + def addInputTensor(self, tensor): + self.currRegion.addInputTensor(tensor) + + def addOutputTensor(self, tensor): + self.currRegion.addOutputTensor(tensor) + + def addOutput(self, shape, dtype): + return self.currRegion.addOutput(shape, dtype) + + def addOperator(self, op, inputs, outputs, attributes=None): + return self.currRegion.addOperator(op, inputs, outputs, attributes) + + def addBasicBlock(self, name): + self.currRegion.addBasicBlock(name) + def setExpectedReturnCode(self, val, fail, desc=""): self.expectedReturnCode = val @@ -680,19 +751,19 @@ class TosaSerializer: builder = self.builder Version.Start(builder) - Version.Add_major(builder, TOSA_VERSION[0]) - Version.Add_minor(builder, TOSA_VERSION[1]) - Version.Add_patch(builder, TOSA_VERSION[2]) - Version.Add_draft(builder, TOSA_VERSION[3]) + Version.Add_Major(builder, TOSA_VERSION[0]) + Version.Add_Minor(builder, TOSA_VERSION[1]) + Version.Add_Patch(builder, TOSA_VERSION[2]) + Version.Add_Draft(builder, TOSA_VERSION[3]) version = Version.End(builder) - fbv_bb = TosaSerializer.serializeObjVec( - builder, self.basicBlocks, TosaGraph.StartBlocksVector + fbv_region = TosaSerializer.serializeObjVec( + builder, self.regions, TosaGraph.StartRegionsVector ) TosaGraph.Start(builder) TosaGraph.AddVersion(builder, version) - TosaGraph.AddBlocks(builder, fbv_bb) + TosaGraph.AddRegions(builder, fbv_region) graph = TosaGraph.End(builder) self.builder.Finish(graph, TOSA_GRAPH_IDENTIFIER) @@ -709,16 +780,17 @@ class TosaSerializer: ofm_name = [] ofm_file = [] - for b in self.basicBlocks: - if b.name == "main": - for i in b.inputs: - ifm_name.append(i) - ifm_file.append(b.tensors[i].placeholderFilename) - for o in b.outputs: - ofm_name.append(o) - # Make up an OFM filename here. One isn't generated until the - # reference tool is run, so any name is a good name - ofm_file.append("ref-{}.npy".format(o)) + for region in self.regions: + for block in region.basicBlocks: + if block and block.name == "main": + for i in block.inputs: + ifm_name.append(i) + ifm_file.append(block.tensors[i].placeholderFilename) + for o in block.outputs: + ofm_name.append(o) + # Make up an OFM filename here. One isn't generated until the + # reference tool is run, so any name is a good name + ofm_file.append("ref-{}.npy".format(o)) test_desc["ifm_name"] = ifm_name test_desc["ifm_file"] = ifm_file @@ -731,9 +803,9 @@ class TosaSerializer: return json.dumps(test_desc, indent=" ") - def startBasicBlock(self, name): - self.currBasicBlock = TosaSerializerBasicBlock(name) - self.basicBlocks.append(self.currBasicBlock) + def startRegion(self, name, pathPrefix): + self.currRegion = TosaSerializerRegion(name, pathPrefix, self.constMode) + self.regions.append(self.currRegion) @staticmethod def serializeStrVec(builder, vec, start_fcn): @@ -757,6 +829,16 @@ class TosaSerializer: return builder.EndVector(len(vec)) @staticmethod + def serializeInt16Vec(builder, vec): + builder.StartVector(2, len(vec), 4) + for v in vec[::-1]: + builder.PrependInt16(v) + try: + return builder.EndVector() + except TypeError: + return builder.EndVector(len(vec)) + + @staticmethod def serializeInt32Vec(builder, vec): builder.StartVector(4, len(vec), 4) for v in vec[::-1]: @@ -797,369 +879,104 @@ class TosaSerializer: else: return [val] - # Remove when switching to flatbuffers 2.0 - # contains a mapping of the deprecated 1.12 method to the 2.0 version - - def add_compat_methods(self): - - from tosa import ArithmeticRightShiftAttribute - - if not hasattr(ArithmeticRightShiftAttribute, "Start"): - ArithmeticRightShiftAttribute.Start = ( - ArithmeticRightShiftAttribute.ArithmeticRightShiftAttributeStart - ) - ArithmeticRightShiftAttribute.AddRound = ( - ArithmeticRightShiftAttribute.ArithmeticRightShiftAttributeAddRound - ) - ArithmeticRightShiftAttribute.End = ( - ArithmeticRightShiftAttribute.ArithmeticRightShiftAttributeEnd - ) - from tosa import AxisAttribute - - if not hasattr(AxisAttribute, "Start"): - AxisAttribute.Start = AxisAttribute.AxisAttributeStart - AxisAttribute.AddAxis = AxisAttribute.AxisAttributeAddAxis - AxisAttribute.End = AxisAttribute.AxisAttributeEnd - from tosa import ClampAttribute - - if not hasattr(ClampAttribute, "Start"): - ClampAttribute.Start = ClampAttribute.ClampAttributeStart - ClampAttribute.AddMinInt = ClampAttribute.ClampAttributeAddMinInt - ClampAttribute.AddMaxInt = ClampAttribute.ClampAttributeAddMaxInt - ClampAttribute.AddMinFp = ClampAttribute.ClampAttributeAddMinFp - ClampAttribute.AddMaxFp = ClampAttribute.ClampAttributeAddMaxFp - ClampAttribute.End = ClampAttribute.ClampAttributeEnd - from tosa import CondIfAttribute - - if not hasattr(CondIfAttribute, "Start"): - CondIfAttribute.Start = CondIfAttribute.CondIfAttributeStart - CondIfAttribute.AddThenBranch = CondIfAttribute.CondIfAttributeAddThenBranch - CondIfAttribute.AddElseBranch = CondIfAttribute.CondIfAttributeAddElseBranch - CondIfAttribute.End = CondIfAttribute.CondIfAttributeEnd - from tosa import ConvAttribute - - if not hasattr(ConvAttribute, "Start"): - ConvAttribute.Start = ConvAttribute.ConvAttributeStart - ConvAttribute.AddPad = ConvAttribute.ConvAttributeAddPad - ConvAttribute.StartPadVector = ConvAttribute.ConvAttributeStartPadVector - ConvAttribute.AddStride = ConvAttribute.ConvAttributeAddStride - ConvAttribute.StartStrideVector = ( - ConvAttribute.ConvAttributeStartStrideVector - ) - ConvAttribute.AddDilation = ConvAttribute.ConvAttributeAddDilation - ConvAttribute.StartDilationVector = ( - ConvAttribute.ConvAttributeStartDilationVector - ) - ConvAttribute.AddInputZp = ConvAttribute.ConvAttributeAddInputZp - ConvAttribute.AddWeightZp = ConvAttribute.ConvAttributeAddWeightZp - ConvAttribute.End = ConvAttribute.ConvAttributeEnd - from tosa import FullyConnectedAttribute - - if not hasattr(FullyConnectedAttribute, "Start"): - FullyConnectedAttribute.Start = ( - FullyConnectedAttribute.FullyConnectedAttributeStart - ) - FullyConnectedAttribute.AddInputZp = ( - FullyConnectedAttribute.FullyConnectedAttributeAddInputZp - ) - FullyConnectedAttribute.AddWeightZp = ( - FullyConnectedAttribute.FullyConnectedAttributeAddWeightZp - ) - FullyConnectedAttribute.End = ( - FullyConnectedAttribute.FullyConnectedAttributeEnd - ) - from tosa import MatMulAttribute - - if not hasattr(MatMulAttribute, "Start"): - MatMulAttribute.Start = MatMulAttribute.MatMulAttributeStart - MatMulAttribute.AddAZp = MatMulAttribute.MatMulAttributeAddAZp - MatMulAttribute.AddBZp = MatMulAttribute.MatMulAttributeAddBZp - MatMulAttribute.End = MatMulAttribute.MatMulAttributeEnd - from tosa import PoolAttribute - - if not hasattr(PoolAttribute, "Start"): - PoolAttribute.Start = PoolAttribute.PoolAttributeStart - PoolAttribute.AddPad = PoolAttribute.PoolAttributeAddPad - PoolAttribute.StartPadVector = PoolAttribute.PoolAttributeStartPadVector - PoolAttribute.AddKernel = PoolAttribute.PoolAttributeAddKernel - PoolAttribute.StartKernelVector = ( - PoolAttribute.PoolAttributeStartKernelVector - ) - PoolAttribute.AddStride = PoolAttribute.PoolAttributeAddStride - PoolAttribute.StartStrideVector = ( - PoolAttribute.PoolAttributeStartStrideVector - ) - PoolAttribute.AddInputZp = PoolAttribute.PoolAttributeAddInputZp - PoolAttribute.AddOutputZp = PoolAttribute.PoolAttributeAddOutputZp - PoolAttribute.End = PoolAttribute.PoolAttributeEnd - from tosa import MulAttribute - - if not hasattr(MulAttribute, "Start"): - MulAttribute.Start = MulAttribute.MulAttributeStart - MulAttribute.AddShift = MulAttribute.MulAttributeAddShift - MulAttribute.End = MulAttribute.MulAttributeEnd - from tosa import PadAttribute - - if not hasattr(PadAttribute, "Start"): - PadAttribute.Start = PadAttribute.PadAttributeStart - PadAttribute.AddPadding = PadAttribute.PadAttributeAddPadding - PadAttribute.StartPaddingVector = ( - PadAttribute.PadAttributeStartPaddingVector - ) - PadAttribute.AddPadConstInt = PadAttribute.PadAttributeAddPadConstInt - PadAttribute.AddPadConstFp = PadAttribute.PadAttributeAddPadConstFp - PadAttribute.End = PadAttribute.PadAttributeEnd - from tosa import PoolAttribute - - if not hasattr(PoolAttribute, "Start"): - PoolAttribute.Start = PoolAttribute.PoolAttributeStart - PoolAttribute.AddPad = PoolAttribute.PoolAttributeAddPad - PoolAttribute.StartPadVector = PoolAttribute.PoolAttributeStartPadVector - PoolAttribute.AddKernel = PoolAttribute.PoolAttributeAddKernel - PoolAttribute.StartKernelVector = ( - PoolAttribute.PoolAttributeStartKernelVector - ) - PoolAttribute.AddStride = PoolAttribute.PoolAttributeAddStride - PoolAttribute.StartStrideVector = ( - PoolAttribute.PoolAttributeStartStrideVector - ) - PoolAttribute.AddInputZp = PoolAttribute.PoolAttributeAddInputZp - PoolAttribute.AddOutputZp = PoolAttribute.PoolAttributeAddOutputZp - PoolAttribute.End = PoolAttribute.PoolAttributeEnd - from tosa import RescaleAttribute - - if not hasattr(RescaleAttribute, "Start"): - RescaleAttribute.Start = RescaleAttribute.RescaleAttributeStart - RescaleAttribute.AddInputZp = RescaleAttribute.RescaleAttributeAddInputZp - RescaleAttribute.AddOutputZp = RescaleAttribute.RescaleAttributeAddOutputZp - RescaleAttribute.AddMultiplier = ( - RescaleAttribute.RescaleAttributeAddMultiplier - ) - RescaleAttribute.StartMultiplierVector = ( - RescaleAttribute.RescaleAttributeStartMultiplierVector - ) - RescaleAttribute.AddShift = RescaleAttribute.RescaleAttributeAddShift - RescaleAttribute.StartShiftVector = ( - RescaleAttribute.RescaleAttributeStartShiftVector - ) - RescaleAttribute.AddScale32 = RescaleAttribute.RescaleAttributeAddScale32 - RescaleAttribute.AddDoubleRound = ( - RescaleAttribute.RescaleAttributeAddDoubleRound - ) - RescaleAttribute.AddPerChannel = ( - RescaleAttribute.RescaleAttributeAddPerChannel - ) - RescaleAttribute.End = RescaleAttribute.RescaleAttributeEnd - from tosa import ReshapeAttribute - - if not hasattr(ReshapeAttribute, "Start"): - ReshapeAttribute.Start = ReshapeAttribute.ReshapeAttributeStart - ReshapeAttribute.AddNewShape = ReshapeAttribute.ReshapeAttributeAddNewShape - ReshapeAttribute.StartNewShapeVector = ( - ReshapeAttribute.ReshapeAttributeStartNewShapeVector - ) - ReshapeAttribute.End = ReshapeAttribute.ReshapeAttributeEnd - from tosa import ResizeAttribute - - if not hasattr(ResizeAttribute, "Start"): - ResizeAttribute.Start = ResizeAttribute.ResizeAttributeStart - ResizeAttribute.AddOutputSize = ResizeAttribute.ResizeAttributeAddOutputSize - ResizeAttribute.StartOutputSizeVector = ( - ResizeAttribute.ResizeAttributeStartOutputSizeVector - ) - ResizeAttribute.AddStride = ResizeAttribute.ResizeAttributeAddStride - ResizeAttribute.StartStrideVector = ( - ResizeAttribute.ResizeAttributeStartStrideVector - ) - ResizeAttribute.AddOffset = ResizeAttribute.ResizeAttributeAddOffset - ResizeAttribute.StartOffsetVector = ( - ResizeAttribute.ResizeAttributeStartOffsetVector - ) - ResizeAttribute.AddShift = ResizeAttribute.ResizeAttributeAddShift - ResizeAttribute.AddStrideFp = ResizeAttribute.ResizeAttributeAddStrideFp - ResizeAttribute.StartStrideFpVector = ( - ResizeAttribute.ResizeAttributeStartStrideFpVector - ) - ResizeAttribute.AddOffsetFp = ResizeAttribute.ResizeAttributeAddOffsetFp - ResizeAttribute.StartOffsetFpVector = ( - ResizeAttribute.ResizeAttributeStartOffsetFpVector - ) - ResizeAttribute.AddMode = ResizeAttribute.ResizeAttributeAddMode - ResizeAttribute.End = ResizeAttribute.ResizeAttributeEnd - from tosa import SliceAttribute - - if not hasattr(SliceAttribute, "Start"): - SliceAttribute.Start = SliceAttribute.SliceAttributeStart - SliceAttribute.AddStart = SliceAttribute.SliceAttributeAddStart - SliceAttribute.StartStartVector = ( - SliceAttribute.SliceAttributeStartStartVector - ) - SliceAttribute.AddSize = SliceAttribute.SliceAttributeAddSize - SliceAttribute.StartSizeVector = ( - SliceAttribute.SliceAttributeStartSizeVector - ) - SliceAttribute.End = SliceAttribute.SliceAttributeEnd - from tosa import TableAttribute - - if not hasattr(TableAttribute, "Start"): - TableAttribute.Start = TableAttribute.TableAttributeStart - TableAttribute.AddTable = TableAttribute.TableAttributeAddTable - TableAttribute.StartTableVector = ( - TableAttribute.TableAttributeStartTableVector - ) - TableAttribute.End = TableAttribute.TableAttributeEnd - from tosa import TileAttribute - - if not hasattr(TileAttribute, "Start"): - TileAttribute.Start = TileAttribute.TileAttributeStart - TileAttribute.AddMultiples = TileAttribute.TileAttributeAddMultiples - TileAttribute.StartMultiplesVector = ( - TileAttribute.TileAttributeStartMultiplesVector - ) - TileAttribute.End = TileAttribute.TileAttributeEnd - from tosa import TosaBasicBlock - - if not hasattr(TosaBasicBlock, "Start"): - TosaBasicBlock.Start = TosaBasicBlock.TosaBasicBlockStart - TosaBasicBlock.AddName = TosaBasicBlock.TosaBasicBlockAddName - TosaBasicBlock.AddOperators = TosaBasicBlock.TosaBasicBlockAddOperators - TosaBasicBlock.StartOperatorsVector = ( - TosaBasicBlock.TosaBasicBlockStartOperatorsVector - ) - TosaBasicBlock.AddTensors = TosaBasicBlock.TosaBasicBlockAddTensors - TosaBasicBlock.StartTensorsVector = ( - TosaBasicBlock.TosaBasicBlockStartTensorsVector - ) - TosaBasicBlock.AddInputs = TosaBasicBlock.TosaBasicBlockAddInputs - TosaBasicBlock.StartInputsVector = ( - TosaBasicBlock.TosaBasicBlockStartInputsVector - ) - TosaBasicBlock.AddOutputs = TosaBasicBlock.TosaBasicBlockAddOutputs - TosaBasicBlock.StartOutputsVector = ( - TosaBasicBlock.TosaBasicBlockStartOutputsVector - ) - TosaBasicBlock.End = TosaBasicBlock.TosaBasicBlockEnd - from tosa import TosaGraph - - if not hasattr(TosaGraph, "Start"): - TosaGraph.Start = TosaGraph.TosaGraphStart - TosaGraph.AddVersion = TosaGraph.TosaGraphAddVersion - TosaGraph.AddBlocks = TosaGraph.TosaGraphAddBlocks - TosaGraph.StartBlocksVector = TosaGraph.TosaGraphStartBlocksVector - TosaGraph.End = TosaGraph.TosaGraphEnd - from tosa import TosaOperator - - if not hasattr(TosaOperator, "Start"): - TosaOperator.Start = TosaOperator.TosaOperatorStart - TosaOperator.AddOp = TosaOperator.TosaOperatorAddOp - TosaOperator.AddAttributeType = TosaOperator.TosaOperatorAddAttributeType - TosaOperator.AddAttribute = TosaOperator.TosaOperatorAddAttribute - TosaOperator.AddInputs = TosaOperator.TosaOperatorAddInputs - TosaOperator.StartInputsVector = TosaOperator.TosaOperatorStartInputsVector - TosaOperator.AddOutputs = TosaOperator.TosaOperatorAddOutputs - TosaOperator.StartOutputsVector = ( - TosaOperator.TosaOperatorStartOutputsVector - ) - TosaOperator.End = TosaOperator.TosaOperatorEnd - from tosa import TosaTensor - - if not hasattr(TosaTensor, "Start"): - TosaTensor.Start = TosaTensor.TosaTensorStart - TosaTensor.AddName = TosaTensor.TosaTensorAddName - TosaTensor.AddShape = TosaTensor.TosaTensorAddShape - TosaTensor.StartShapeVector = TosaTensor.TosaTensorStartShapeVector - TosaTensor.AddType = TosaTensor.TosaTensorAddType - TosaTensor.AddData = TosaTensor.TosaTensorAddData - TosaTensor.StartDataVector = TosaTensor.TosaTensorStartDataVector - TosaTensor.End = TosaTensor.TosaTensorEnd - from tosa import TransposeAttribute - - if not hasattr(TransposeAttribute, "Start"): - TransposeAttribute.Start = TransposeAttribute.TransposeAttributeStart - TransposeAttribute.AddPerms = TransposeAttribute.TransposeAttributeAddPerms - TransposeAttribute.StartPermsVector = ( - TransposeAttribute.TransposeAttributeStartPermsVector - ) - TransposeAttribute.End = TransposeAttribute.TransposeAttributeEnd - from tosa import TransposeConvAttribute - - if not hasattr(TransposeConvAttribute, "Start"): - TransposeConvAttribute.Start = ( - TransposeConvAttribute.TransposeConvAttributeStart - ) - TransposeConvAttribute.AddOutPad = ( - TransposeConvAttribute.TransposeConvAttributeAddOutPad - ) - TransposeConvAttribute.StartOutPadVector = ( - TransposeConvAttribute.TransposeConvAttributeStartOutPadVector - ) - TransposeConvAttribute.AddStride = ( - TransposeConvAttribute.TransposeConvAttributeAddStride - ) - TransposeConvAttribute.StartStrideVector = ( - TransposeConvAttribute.TransposeConvAttributeStartStrideVector - ) - TransposeConvAttribute.AddOutputShape = ( - TransposeConvAttribute.TransposeConvAttributeAddOutputShape - ) - TransposeConvAttribute.StartOutputShapeVector = ( - TransposeConvAttribute.TransposeConvAttributeStartOutputShapeVector - ) - TransposeConvAttribute.AddInputZp = ( - TransposeConvAttribute.TransposeConvAttributeAddInputZp - ) - TransposeConvAttribute.AddWeightZp = ( - TransposeConvAttribute.TransposeConvAttributeAddWeightZp - ) - TransposeConvAttribute.End = ( - TransposeConvAttribute.TransposeConvAttributeEnd - ) - from tosa import Version - - if not hasattr(Version, "Start"): - Version.Start = Version.VersionStart - Version.Add_major = Version.VersionAdd_major - Version.Add_minor = Version.VersionAdd_minor - Version.Add_patch = Version.VersionAdd_patch - Version.Add_draft = Version.VersionAdd_draft - Version.End = Version.VersionEnd - from tosa import MatMulAttribute - - if not hasattr(MatMulAttribute, "Start"): - MatMulAttribute.Start = MatMulAttribute.MatMulAttributeStart - MatMulAttribute.AddAZp = MatMulAttribute.MatMulAttributeAddAZp - MatMulAttribute.AddBZp = MatMulAttribute.MatMulAttributeAddBZp - MatMulAttribute.End = MatMulAttribute.MatMulAttributeEnd - from tosa import FullyConnectedAttribute - - if not hasattr(FullyConnectedAttribute, "Start"): - FullyConnectedAttribute.Start = ( - FullyConnectedAttribute.FullyConnectedAttributeStart - ) - FullyConnectedAttribute.AddInputZp = ( - FullyConnectedAttribute.FullyConnectedAttributeAddInputZp - ) - FullyConnectedAttribute.AddWeightZp = ( - FullyConnectedAttribute.FullyConnectedAttributeAddWeightZp - ) - FullyConnectedAttribute.End = ( - FullyConnectedAttribute.FullyConnectedAttributeEnd - ) - from tosa import NegateAttribute - - if not hasattr(NegateAttribute, "Start"): - NegateAttribute.Start = NegateAttribute.NegateAttributeStart - NegateAttribute.AddInput1Zp = NegateAttribute.NegateAttributeAddInput1Zp - NegateAttribute.AddOutputZp = NegateAttribute.NegateAttributeAddOutputZp - NegateAttribute.End = NegateAttribute.NegateAttributeEnd - from tosa import WhileLoopAttribute - - if not hasattr(WhileLoopAttribute, "Start"): - WhileLoopAttribute.Start = WhileLoopAttribute.WhileLoopAttributeStart - WhileLoopAttribute.AddCondBranch = ( - WhileLoopAttribute.WhileLoopAttributeAddCondBranch - ) - WhileLoopAttribute.AddBodyBranch = ( - WhileLoopAttribute.WhileLoopAttributeAddBodyBranch - ) - WhileLoopAttribute.End = WhileLoopAttribute.WhileLoopAttributeEnd + @staticmethod + def convertDataToUint8Vec(dtype, data): + u8_data = list() + # little endianess + if dtype == DType.BOOL: + for val in data: + val_u8 = np.uint8(val) + u8_data.append(val_u8) + elif dtype == DType.INT4: + in_size = len(data) + out_size = (in_size + 1) // 2 + for i in range(out_size): + val_0 = data[2 * i] + if (2 * i + 1) < in_size: + val_1 = data[2 * i + 1] + else: + val_1 = 0 + val_i8 = (val_0 & 0xF) | ((val_1 & 0xF) << 4) + val_u8 = np.uint8(val_i8) + u8_data.append(val_u8) + elif dtype == DType.INT8: + for val in data: + val_u8 = np.array(val).astype(dtype=np.uint8) + u8_data.append(val_u8) + elif dtype == DType.INT16: + for val in data: + val_u16 = np.array(val).astype(dtype=np.uint16) + b0 = val_u16 & ByteMask + b1 = (val_u16 >> np.uint16(8)) & ByteMask + u8_data.extend([b0, b1]) + elif dtype == DType.INT32: + for val in data: + val_u32 = np.array(val).astype(dtype=np.uint32) + b0 = val_u32 & ByteMask + b1 = (val_u32 >> np.uint32(8)) & ByteMask + b2 = (val_u32 >> np.uint32(16)) & ByteMask + b3 = (val_u32 >> np.uint32(24)) & ByteMask + u8_data.extend([b0, b1, b2, b3]) + elif dtype == DType.INT48: + for val in data: + val_u64 = np.uint64(val) + b0 = val_u64 & ByteMask + b1 = (val_u64 >> np.uint64(8)) & ByteMask + b2 = (val_u64 >> np.uint64(16)) & ByteMask + b3 = (val_u64 >> np.uint64(24)) & ByteMask + b4 = (val_u64 >> np.uint64(32)) & ByteMask + b5 = (val_u64 >> np.uint64(40)) & ByteMask + u8_data.extend([b0, b1, b2, b3, b4, b5]) + elif dtype == DType.SHAPE: + for val in data: + val_u64 = np.uint64(val) + b0 = val_u64 & ByteMask + b1 = (val_u64 >> np.uint64(8)) & ByteMask + b2 = (val_u64 >> np.uint64(16)) & ByteMask + b3 = (val_u64 >> np.uint64(24)) & ByteMask + b4 = (val_u64 >> np.uint64(32)) & ByteMask + b5 = (val_u64 >> np.uint64(40)) & ByteMask + b6 = (val_u64 >> np.uint64(48)) & ByteMask + b7 = (val_u64 >> np.uint64(56)) & ByteMask + u8_data.extend([b0, b1, b2, b3, b4, b5, b6, b7]) + elif dtype == DType.FP16: + np_arr = np.array(data, dtype=np.float16) + u8_data.extend(np_arr.view(np.uint8)) + elif dtype == DType.FP32: + # for val in data: + # b = struct.pack("!f", val) + # u8_data.extend([b[3], b[2], b[1], b[0]]) + np_arr = np.array(data, dtype=np.float32) + u8_data.extend(np_arr.view(np.uint8)) + elif dtype == DType.BF16: + for val in data: + # convert val to little endian byte arrays b + b = struct.pack("<f", val) + # val => [ b[3], b[2], b[1], b[0] ] + # keep only most significant 2 bytes for bf16 + # in little endian ordering + u8_data.extend([b[2], b[3]]) + elif dtype == DType.FP8E4M3: + for val in data: + # convert val to fp8_bits then to single byte + f32_as_int = struct.unpack(">L", struct.pack(">f", val))[0] + f32_bits = f"{f32_as_int:032b}" + fp8_bits = f32_bits[0] + f32_bits[1:5] + f32_bits[9:12] + fp8_bytes = int(fp8_bits, 2).to_bytes(1, byteorder="little") + u8_data.extend(fp8_bytes) + elif dtype == DType.FP8E5M2: + for val in data: + # convert val to fp8_bits then to single byte + f32_as_int = struct.unpack(">L", struct.pack(">f", val))[0] + f32_bits = f"{f32_as_int:032b}" + fp8_bits = f32_bits[0] + f32_bits[1:6] + f32_bits[9:11] + fp8_bytes = int(fp8_bits, 2).to_bytes(1, byteorder="little") + u8_data.extend(fp8_bytes) + elif dtype == TosaDType.DType: + # Serialize DType enum data as uint8 bytes + for val in data: + np_arr = np.array(data, dtype=np.uint32) + u8_data.extend(np_arr.view(np.uint8)) + else: + raise Exception("unsupported data type {}".format(DTypeNames[dtype])) + return u8_data diff --git a/python/tosa/ArithmeticRightShiftAttribute.py b/python/tosa/ArithmeticRightShiftAttribute.py index 226dc0e..f2aaeb5 100644 --- a/python/tosa/ArithmeticRightShiftAttribute.py +++ b/python/tosa/ArithmeticRightShiftAttribute.py @@ -10,13 +10,17 @@ class ArithmeticRightShiftAttribute(object): __slots__ = ['_tab'] @classmethod - def GetRootAsArithmeticRightShiftAttribute(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = ArithmeticRightShiftAttribute() x.Init(buf, n + offset) return x @classmethod + def GetRootAsArithmeticRightShiftAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def ArithmeticRightShiftAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -31,6 +35,20 @@ class ArithmeticRightShiftAttribute(object): return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) return False -def ArithmeticRightShiftAttributeStart(builder): builder.StartObject(1) -def ArithmeticRightShiftAttributeAddRound(builder, round): builder.PrependBoolSlot(0, round, 0) -def ArithmeticRightShiftAttributeEnd(builder): return builder.EndObject() +def ArithmeticRightShiftAttributeStart(builder): + builder.StartObject(1) + +def Start(builder): + ArithmeticRightShiftAttributeStart(builder) + +def ArithmeticRightShiftAttributeAddRound(builder, round): + builder.PrependBoolSlot(0, round, 0) + +def AddRound(builder, round): + ArithmeticRightShiftAttributeAddRound(builder, round) + +def ArithmeticRightShiftAttributeEnd(builder): + return builder.EndObject() + +def End(builder): + return ArithmeticRightShiftAttributeEnd(builder) diff --git a/python/tosa/Attribute.py b/python/tosa/Attribute.py index 166de8e..6abdcfb 100644 --- a/python/tosa/Attribute.py +++ b/python/tosa/Attribute.py @@ -9,19 +9,18 @@ class Attribute(object): TransposeConvAttribute = 3 PadAttribute = 4 AxisAttribute = 5 - ReshapeAttribute = 6 - SliceAttribute = 7 - TileAttribute = 8 - ResizeAttribute = 9 - ClampAttribute = 10 - RescaleAttribute = 11 - MulAttribute = 12 - ArithmeticRightShiftAttribute = 13 - CondIfAttribute = 14 - WhileLoopAttribute = 15 - TransposeAttribute = 16 - TableAttribute = 17 - MatMulAttribute = 18 - FullyConnectedAttribute = 19 - NegateAttribute = 20 - + ResizeAttribute = 6 + ClampAttribute = 7 + RescaleAttribute = 8 + MulAttribute = 9 + ArithmeticRightShiftAttribute = 10 + CondIfAttribute = 11 + WhileLoopAttribute = 12 + TransposeAttribute = 13 + TableAttribute = 14 + MatMulAttribute = 15 + FullyConnectedAttribute = 16 + NegateAttribute = 17 + CustomAttribute = 18 + FFTAttribute = 19 + RFFTAttribute = 20 diff --git a/python/tosa/AxisAttribute.py b/python/tosa/AxisAttribute.py index 30876b7..7ce4a63 100644 --- a/python/tosa/AxisAttribute.py +++ b/python/tosa/AxisAttribute.py @@ -10,13 +10,17 @@ class AxisAttribute(object): __slots__ = ['_tab'] @classmethod - def GetRootAsAxisAttribute(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = AxisAttribute() x.Init(buf, n + offset) return x @classmethod + def GetRootAsAxisAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def AxisAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -31,6 +35,20 @@ class AxisAttribute(object): return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) return 0 -def AxisAttributeStart(builder): builder.StartObject(1) -def AxisAttributeAddAxis(builder, axis): builder.PrependInt32Slot(0, axis, 0) -def AxisAttributeEnd(builder): return builder.EndObject() +def AxisAttributeStart(builder): + builder.StartObject(1) + +def Start(builder): + AxisAttributeStart(builder) + +def AxisAttributeAddAxis(builder, axis): + builder.PrependInt32Slot(0, axis, 0) + +def AddAxis(builder, axis): + AxisAttributeAddAxis(builder, axis) + +def AxisAttributeEnd(builder): + return builder.EndObject() + +def End(builder): + return AxisAttributeEnd(builder) diff --git a/python/tosa/ClampAttribute.py b/python/tosa/ClampAttribute.py index 066dd4f..40254ec 100644 --- a/python/tosa/ClampAttribute.py +++ b/python/tosa/ClampAttribute.py @@ -10,13 +10,17 @@ 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) @@ -25,36 +29,91 @@ class ClampAttribute(object): self._tab = flatbuffers.table.Table(buf, pos) # ClampAttribute - def MinInt(self): + def MinVal(self, j): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: - return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) + 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 MaxInt(self): + def MinValAsNumpy(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Uint8Flags, o) + return 0 + + # ClampAttribute + def MinValLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + + # ClampAttribute + def MinValIsNone(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + return o == 0 + + # ClampAttribute + def MaxVal(self, j): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: - return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) + 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 MinFp(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + def MaxValAsNumpy(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) 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 MaxFp(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) + def MaxValLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: - return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos) - return 0.0 - -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() + return self._tab.VectorLen(o) + return 0 + + # ClampAttribute + def MaxValIsNone(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + return o == 0 + +def ClampAttributeStart(builder): + builder.StartObject(2) + +def Start(builder): + ClampAttributeStart(builder) + +def ClampAttributeAddMinVal(builder, minVal): + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(minVal), 0) + +def AddMinVal(builder, minVal): + ClampAttributeAddMinVal(builder, minVal) + +def ClampAttributeStartMinValVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + +def StartMinValVector(builder, numElems): + return ClampAttributeStartMinValVector(builder, numElems) + +def ClampAttributeAddMaxVal(builder, maxVal): + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(maxVal), 0) + +def AddMaxVal(builder, maxVal): + ClampAttributeAddMaxVal(builder, maxVal) + +def ClampAttributeStartMaxValVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + +def StartMaxValVector(builder, numElems): + return ClampAttributeStartMaxValVector(builder, numElems) + +def ClampAttributeEnd(builder): + return builder.EndObject() + +def End(builder): + return ClampAttributeEnd(builder) diff --git a/python/tosa/CondIfAttribute.py b/python/tosa/CondIfAttribute.py index 57e5cb7..8f2aa9b 100644 --- a/python/tosa/CondIfAttribute.py +++ b/python/tosa/CondIfAttribute.py @@ -10,13 +10,17 @@ class CondIfAttribute(object): __slots__ = ['_tab'] @classmethod - def GetRootAsCondIfAttribute(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = CondIfAttribute() x.Init(buf, n + offset) return x @classmethod + def GetRootAsCondIfAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def CondIfAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -25,20 +29,39 @@ class CondIfAttribute(object): self._tab = flatbuffers.table.Table(buf, pos) # CondIfAttribute - def ThenBranch(self): + def ThenGraph(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: return self._tab.String(o + self._tab.Pos) return None # CondIfAttribute - def ElseBranch(self): + def ElseGraph(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: return self._tab.String(o + self._tab.Pos) return None -def CondIfAttributeStart(builder): builder.StartObject(2) -def CondIfAttributeAddThenBranch(builder, thenBranch): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(thenBranch), 0) -def CondIfAttributeAddElseBranch(builder, elseBranch): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(elseBranch), 0) -def CondIfAttributeEnd(builder): return builder.EndObject() +def CondIfAttributeStart(builder): + builder.StartObject(2) + +def Start(builder): + CondIfAttributeStart(builder) + +def CondIfAttributeAddThenGraph(builder, thenGraph): + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(thenGraph), 0) + +def AddThenGraph(builder, thenGraph): + CondIfAttributeAddThenGraph(builder, thenGraph) + +def CondIfAttributeAddElseGraph(builder, elseGraph): + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(elseGraph), 0) + +def AddElseGraph(builder, elseGraph): + CondIfAttributeAddElseGraph(builder, elseGraph) + +def CondIfAttributeEnd(builder): + return builder.EndObject() + +def End(builder): + return CondIfAttributeEnd(builder) diff --git a/python/tosa/ConvAttribute.py b/python/tosa/ConvAttribute.py index 8244ea5..1deca59 100644 --- a/python/tosa/ConvAttribute.py +++ b/python/tosa/ConvAttribute.py @@ -10,13 +10,17 @@ class ConvAttribute(object): __slots__ = ['_tab'] @classmethod - def GetRootAsConvAttribute(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = ConvAttribute() x.Init(buf, n + offset) return x @classmethod + def GetRootAsConvAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def ConvAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -119,13 +123,88 @@ class ConvAttribute(object): return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) return 0 -def ConvAttributeStart(builder): builder.StartObject(5) -def ConvAttributeAddPad(builder, pad): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pad), 0) -def ConvAttributeStartPadVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def ConvAttributeAddStride(builder, stride): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(stride), 0) -def ConvAttributeStartStrideVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def ConvAttributeAddDilation(builder, dilation): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(dilation), 0) -def ConvAttributeStartDilationVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def ConvAttributeAddInputZp(builder, inputZp): builder.PrependInt32Slot(3, inputZp, 0) -def ConvAttributeAddWeightZp(builder, weightZp): builder.PrependInt32Slot(4, weightZp, 0) -def ConvAttributeEnd(builder): return builder.EndObject() + # ConvAttribute + def LocalBound(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14)) + if o != 0: + return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) + return False + + # ConvAttribute + def AccType(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(16)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Uint32Flags, o + self._tab.Pos) + return 0 + +def ConvAttributeStart(builder): + builder.StartObject(7) + +def Start(builder): + ConvAttributeStart(builder) + +def ConvAttributeAddPad(builder, pad): + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pad), 0) + +def AddPad(builder, pad): + ConvAttributeAddPad(builder, pad) + +def ConvAttributeStartPadVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartPadVector(builder, numElems): + return ConvAttributeStartPadVector(builder, numElems) + +def ConvAttributeAddStride(builder, stride): + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(stride), 0) + +def AddStride(builder, stride): + ConvAttributeAddStride(builder, stride) + +def ConvAttributeStartStrideVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartStrideVector(builder, numElems): + return ConvAttributeStartStrideVector(builder, numElems) + +def ConvAttributeAddDilation(builder, dilation): + builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(dilation), 0) + +def AddDilation(builder, dilation): + ConvAttributeAddDilation(builder, dilation) + +def ConvAttributeStartDilationVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartDilationVector(builder, numElems): + return ConvAttributeStartDilationVector(builder, numElems) + +def ConvAttributeAddInputZp(builder, inputZp): + builder.PrependInt32Slot(3, inputZp, 0) + +def AddInputZp(builder, inputZp): + ConvAttributeAddInputZp(builder, inputZp) + +def ConvAttributeAddWeightZp(builder, weightZp): + builder.PrependInt32Slot(4, weightZp, 0) + +def AddWeightZp(builder, weightZp): + ConvAttributeAddWeightZp(builder, weightZp) + +def ConvAttributeAddLocalBound(builder, localBound): + builder.PrependBoolSlot(5, localBound, 0) + +def AddLocalBound(builder, localBound): + ConvAttributeAddLocalBound(builder, localBound) + +def ConvAttributeAddAccType(builder, accType): + builder.PrependUint32Slot(6, accType, 0) + +def AddAccType(builder, accType): + ConvAttributeAddAccType(builder, accType) + +def ConvAttributeEnd(builder): + return builder.EndObject() + +def End(builder): + return ConvAttributeEnd(builder) diff --git a/python/tosa/CustomAttribute.py b/python/tosa/CustomAttribute.py new file mode 100644 index 0000000..4c1c477 --- /dev/null +++ b/python/tosa/CustomAttribute.py @@ -0,0 +1,106 @@ +# automatically generated by the FlatBuffers compiler, do not modify + +# namespace: tosa + +import flatbuffers +from flatbuffers.compat import import_numpy +np = import_numpy() + +class CustomAttribute(object): + __slots__ = ['_tab'] + + @classmethod + def GetRootAs(cls, buf, offset=0): + n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) + x = CustomAttribute() + x.Init(buf, n + offset) + return x + + @classmethod + def GetRootAsCustomAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod + def CustomAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): + return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) + + # CustomAttribute + def Init(self, buf, pos): + self._tab = flatbuffers.table.Table(buf, pos) + + # CustomAttribute + def OperatorName(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + return self._tab.String(o + self._tab.Pos) + return None + + # CustomAttribute + def DomainName(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + return self._tab.String(o + self._tab.Pos) + return None + + # CustomAttribute + def ImplementationAttrs(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 + + # CustomAttribute + def ImplementationAttrsAsNumpy(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + if o != 0: + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Uint8Flags, o) + return 0 + + # CustomAttribute + def ImplementationAttrsLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + + # CustomAttribute + def ImplementationAttrsIsNone(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + return o == 0 + +def CustomAttributeStart(builder): + builder.StartObject(3) + +def Start(builder): + CustomAttributeStart(builder) + +def CustomAttributeAddOperatorName(builder, operatorName): + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(operatorName), 0) + +def AddOperatorName(builder, operatorName): + CustomAttributeAddOperatorName(builder, operatorName) + +def CustomAttributeAddDomainName(builder, domainName): + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(domainName), 0) + +def AddDomainName(builder, domainName): + CustomAttributeAddDomainName(builder, domainName) + +def CustomAttributeAddImplementationAttrs(builder, implementationAttrs): + builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(implementationAttrs), 0) + +def AddImplementationAttrs(builder, implementationAttrs): + CustomAttributeAddImplementationAttrs(builder, implementationAttrs) + +def CustomAttributeStartImplementationAttrsVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + +def StartImplementationAttrsVector(builder, numElems): + return CustomAttributeStartImplementationAttrsVector(builder, numElems) + +def CustomAttributeEnd(builder): + return builder.EndObject() + +def End(builder): + return CustomAttributeEnd(builder) diff --git a/python/tosa/DType.py b/python/tosa/DType.py index ad9048b..e585cb9 100644 --- a/python/tosa/DType.py +++ b/python/tosa/DType.py @@ -11,6 +11,10 @@ class DType(object): INT16 = 5 INT32 = 6 INT48 = 7 - FLOAT = 8 + FP32 = 8 UINT16 = 9 - + FP16 = 10 + BF16 = 11 + SHAPE = 12 + FP8E4M3 = 13 + FP8E5M2 = 14 diff --git a/python/tosa/FFTAttribute.py b/python/tosa/FFTAttribute.py new file mode 100644 index 0000000..d1624c2 --- /dev/null +++ b/python/tosa/FFTAttribute.py @@ -0,0 +1,67 @@ +# automatically generated by the FlatBuffers compiler, do not modify + +# namespace: tosa + +import flatbuffers +from flatbuffers.compat import import_numpy +np = import_numpy() + +class FFTAttribute(object): + __slots__ = ['_tab'] + + @classmethod + def GetRootAs(cls, buf, offset=0): + n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) + x = FFTAttribute() + x.Init(buf, n + offset) + return x + + @classmethod + def GetRootAsFFTAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod + def FFTAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): + return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) + + # FFTAttribute + def Init(self, buf, pos): + self._tab = flatbuffers.table.Table(buf, pos) + + # FFTAttribute + def Inverse(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) + return False + + # FFTAttribute + def LocalBound(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) + return False + +def FFTAttributeStart(builder): + builder.StartObject(2) + +def Start(builder): + FFTAttributeStart(builder) + +def FFTAttributeAddInverse(builder, inverse): + builder.PrependBoolSlot(0, inverse, 0) + +def AddInverse(builder, inverse): + FFTAttributeAddInverse(builder, inverse) + +def FFTAttributeAddLocalBound(builder, localBound): + builder.PrependBoolSlot(1, localBound, 0) + +def AddLocalBound(builder, localBound): + FFTAttributeAddLocalBound(builder, localBound) + +def FFTAttributeEnd(builder): + return builder.EndObject() + +def End(builder): + return FFTAttributeEnd(builder) diff --git a/python/tosa/FullyConnectedAttribute.py b/python/tosa/FullyConnectedAttribute.py index 62b480d..8854503 100644 --- a/python/tosa/FullyConnectedAttribute.py +++ b/python/tosa/FullyConnectedAttribute.py @@ -10,13 +10,17 @@ class FullyConnectedAttribute(object): __slots__ = ['_tab'] @classmethod - def GetRootAsFullyConnectedAttribute(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = FullyConnectedAttribute() x.Init(buf, n + offset) return x @classmethod + def GetRootAsFullyConnectedAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def FullyConnectedAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -38,7 +42,26 @@ class FullyConnectedAttribute(object): return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) return 0 -def FullyConnectedAttributeStart(builder): builder.StartObject(2) -def FullyConnectedAttributeAddInputZp(builder, inputZp): builder.PrependInt32Slot(0, inputZp, 0) -def FullyConnectedAttributeAddWeightZp(builder, weightZp): builder.PrependInt32Slot(1, weightZp, 0) -def FullyConnectedAttributeEnd(builder): return builder.EndObject() +def FullyConnectedAttributeStart(builder): + builder.StartObject(2) + +def Start(builder): + FullyConnectedAttributeStart(builder) + +def FullyConnectedAttributeAddInputZp(builder, inputZp): + builder.PrependInt32Slot(0, inputZp, 0) + +def AddInputZp(builder, inputZp): + FullyConnectedAttributeAddInputZp(builder, inputZp) + +def FullyConnectedAttributeAddWeightZp(builder, weightZp): + builder.PrependInt32Slot(1, weightZp, 0) + +def AddWeightZp(builder, weightZp): + FullyConnectedAttributeAddWeightZp(builder, weightZp) + +def FullyConnectedAttributeEnd(builder): + return builder.EndObject() + +def End(builder): + return FullyConnectedAttributeEnd(builder) diff --git a/python/tosa/MatMulAttribute.py b/python/tosa/MatMulAttribute.py index 601f13f..325428a 100644 --- a/python/tosa/MatMulAttribute.py +++ b/python/tosa/MatMulAttribute.py @@ -10,13 +10,17 @@ class MatMulAttribute(object): __slots__ = ['_tab'] @classmethod - def GetRootAsMatMulAttribute(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = MatMulAttribute() x.Init(buf, n + offset) return x @classmethod + def GetRootAsMatMulAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def MatMulAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -38,7 +42,26 @@ class MatMulAttribute(object): return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) return 0 -def MatMulAttributeStart(builder): builder.StartObject(2) -def MatMulAttributeAddAZp(builder, aZp): builder.PrependInt32Slot(0, aZp, 0) -def MatMulAttributeAddBZp(builder, bZp): builder.PrependInt32Slot(1, bZp, 0) -def MatMulAttributeEnd(builder): return builder.EndObject() +def MatMulAttributeStart(builder): + builder.StartObject(2) + +def Start(builder): + MatMulAttributeStart(builder) + +def MatMulAttributeAddAZp(builder, aZp): + builder.PrependInt32Slot(0, aZp, 0) + +def AddAZp(builder, aZp): + MatMulAttributeAddAZp(builder, aZp) + +def MatMulAttributeAddBZp(builder, bZp): + builder.PrependInt32Slot(1, bZp, 0) + +def AddBZp(builder, bZp): + MatMulAttributeAddBZp(builder, bZp) + +def MatMulAttributeEnd(builder): + return builder.EndObject() + +def End(builder): + return MatMulAttributeEnd(builder) diff --git a/python/tosa/MulAttribute.py b/python/tosa/MulAttribute.py index 79be4d3..236d3f5 100644 --- a/python/tosa/MulAttribute.py +++ b/python/tosa/MulAttribute.py @@ -10,13 +10,17 @@ class MulAttribute(object): __slots__ = ['_tab'] @classmethod - def GetRootAsMulAttribute(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = MulAttribute() x.Init(buf, n + offset) return x @classmethod + def GetRootAsMulAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def MulAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -31,6 +35,20 @@ class MulAttribute(object): return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) return 0 -def MulAttributeStart(builder): builder.StartObject(1) -def MulAttributeAddShift(builder, shift): builder.PrependInt32Slot(0, shift, 0) -def MulAttributeEnd(builder): return builder.EndObject() +def MulAttributeStart(builder): + builder.StartObject(1) + +def Start(builder): + MulAttributeStart(builder) + +def MulAttributeAddShift(builder, shift): + builder.PrependInt32Slot(0, shift, 0) + +def AddShift(builder, shift): + MulAttributeAddShift(builder, shift) + +def MulAttributeEnd(builder): + return builder.EndObject() + +def End(builder): + return MulAttributeEnd(builder) diff --git a/python/tosa/NegateAttribute.py b/python/tosa/NegateAttribute.py index 24a57dc..eae46f5 100644 --- a/python/tosa/NegateAttribute.py +++ b/python/tosa/NegateAttribute.py @@ -10,13 +10,17 @@ class NegateAttribute(object): __slots__ = ['_tab'] @classmethod - def GetRootAsNegateAttribute(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = NegateAttribute() x.Init(buf, n + offset) return x @classmethod + def GetRootAsNegateAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def NegateAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -38,7 +42,26 @@ class NegateAttribute(object): return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) return 0 -def NegateAttributeStart(builder): builder.StartObject(2) -def NegateAttributeAddInput1Zp(builder, input1Zp): builder.PrependInt32Slot(0, input1Zp, 0) -def NegateAttributeAddOutputZp(builder, outputZp): builder.PrependInt32Slot(1, outputZp, 0) -def NegateAttributeEnd(builder): return builder.EndObject() +def NegateAttributeStart(builder): + builder.StartObject(2) + +def Start(builder): + NegateAttributeStart(builder) + +def NegateAttributeAddInput1Zp(builder, input1Zp): + builder.PrependInt32Slot(0, input1Zp, 0) + +def AddInput1Zp(builder, input1Zp): + NegateAttributeAddInput1Zp(builder, input1Zp) + +def NegateAttributeAddOutputZp(builder, outputZp): + builder.PrependInt32Slot(1, outputZp, 0) + +def AddOutputZp(builder, outputZp): + NegateAttributeAddOutputZp(builder, outputZp) + +def NegateAttributeEnd(builder): + return builder.EndObject() + +def End(builder): + return NegateAttributeEnd(builder) diff --git a/python/tosa/Op.py b/python/tosa/Op.py index 181e457..35b2b80 100644 --- a/python/tosa/Op.py +++ b/python/tosa/Op.py @@ -72,4 +72,15 @@ class Op(object): CUSTOM = 66 COND_IF = 67 WHILE_LOOP = 68 - + FFT2D = 69 + RFFT2D = 70 + ERF = 71 + DIM = 72 + CONST_SHAPE = 73 + CONCAT_SHAPE = 74 + ADD_SHAPE = 75 + SUB_SHAPE = 76 + MUL_SHAPE = 77 + DIV_SHAPE = 78 + COS = 79 + SIN = 80 diff --git a/python/tosa/PadAttribute.py b/python/tosa/PadAttribute.py index 0875481..8adf9f7 100644 --- a/python/tosa/PadAttribute.py +++ b/python/tosa/PadAttribute.py @@ -10,13 +10,17 @@ class PadAttribute(object): __slots__ = ['_tab'] @classmethod - def GetRootAsPadAttribute(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = PadAttribute() x.Init(buf, n + offset) return x @classmethod + def GetRootAsPadAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def PadAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -25,49 +29,52 @@ class PadAttribute(object): self._tab = flatbuffers.table.Table(buf, pos) # PadAttribute - def Padding(self, j): + def PadConst(self, j): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) + return self._tab.Get(flatbuffers.number_types.Uint8Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 1)) return 0 # PadAttribute - def PaddingAsNumpy(self): + def PadConstAsNumpy(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Uint8Flags, o) return 0 # PadAttribute - def PaddingLength(self): + def PadConstLength(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: return self._tab.VectorLen(o) return 0 # PadAttribute - def PaddingIsNone(self): + def PadConstIsNone(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) return o == 0 - # PadAttribute - def PadConstInt(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) - if o != 0: - return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) - return 0 +def PadAttributeStart(builder): + builder.StartObject(1) - # PadAttribute - def PadConstFp(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 - -def PadAttributeStart(builder): builder.StartObject(3) -def PadAttributeAddPadding(builder, padding): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(padding), 0) -def PadAttributeStartPaddingVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def PadAttributeAddPadConstInt(builder, padConstInt): builder.PrependInt32Slot(1, padConstInt, 0) -def PadAttributeAddPadConstFp(builder, padConstFp): builder.PrependFloat32Slot(2, padConstFp, 0.0) -def PadAttributeEnd(builder): return builder.EndObject() +def Start(builder): + PadAttributeStart(builder) + +def PadAttributeAddPadConst(builder, padConst): + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(padConst), 0) + +def AddPadConst(builder, padConst): + PadAttributeAddPadConst(builder, padConst) + +def PadAttributeStartPadConstVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + +def StartPadConstVector(builder, numElems): + return PadAttributeStartPadConstVector(builder, numElems) + +def PadAttributeEnd(builder): + return builder.EndObject() + +def End(builder): + return PadAttributeEnd(builder) diff --git a/python/tosa/PoolAttribute.py b/python/tosa/PoolAttribute.py index 8b6903e..831d43b 100644 --- a/python/tosa/PoolAttribute.py +++ b/python/tosa/PoolAttribute.py @@ -10,13 +10,17 @@ class PoolAttribute(object): __slots__ = ['_tab'] @classmethod - def GetRootAsPoolAttribute(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = PoolAttribute() x.Init(buf, n + offset) return x @classmethod + def GetRootAsPoolAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def PoolAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -119,13 +123,75 @@ class PoolAttribute(object): return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) return 0 -def PoolAttributeStart(builder): builder.StartObject(5) -def PoolAttributeAddPad(builder, pad): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pad), 0) -def PoolAttributeStartPadVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def PoolAttributeAddKernel(builder, kernel): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(kernel), 0) -def PoolAttributeStartKernelVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def PoolAttributeAddStride(builder, stride): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(stride), 0) -def PoolAttributeStartStrideVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def PoolAttributeAddInputZp(builder, inputZp): builder.PrependInt32Slot(3, inputZp, 0) -def PoolAttributeAddOutputZp(builder, outputZp): builder.PrependInt32Slot(4, outputZp, 0) -def PoolAttributeEnd(builder): return builder.EndObject() + # PoolAttribute + def AccType(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Uint32Flags, o + self._tab.Pos) + return 0 + +def PoolAttributeStart(builder): + builder.StartObject(6) + +def Start(builder): + PoolAttributeStart(builder) + +def PoolAttributeAddPad(builder, pad): + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pad), 0) + +def AddPad(builder, pad): + PoolAttributeAddPad(builder, pad) + +def PoolAttributeStartPadVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartPadVector(builder, numElems): + return PoolAttributeStartPadVector(builder, numElems) + +def PoolAttributeAddKernel(builder, kernel): + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(kernel), 0) + +def AddKernel(builder, kernel): + PoolAttributeAddKernel(builder, kernel) + +def PoolAttributeStartKernelVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartKernelVector(builder, numElems): + return PoolAttributeStartKernelVector(builder, numElems) + +def PoolAttributeAddStride(builder, stride): + builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(stride), 0) + +def AddStride(builder, stride): + PoolAttributeAddStride(builder, stride) + +def PoolAttributeStartStrideVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartStrideVector(builder, numElems): + return PoolAttributeStartStrideVector(builder, numElems) + +def PoolAttributeAddInputZp(builder, inputZp): + builder.PrependInt32Slot(3, inputZp, 0) + +def AddInputZp(builder, inputZp): + PoolAttributeAddInputZp(builder, inputZp) + +def PoolAttributeAddOutputZp(builder, outputZp): + builder.PrependInt32Slot(4, outputZp, 0) + +def AddOutputZp(builder, outputZp): + PoolAttributeAddOutputZp(builder, outputZp) + +def PoolAttributeAddAccType(builder, accType): + builder.PrependUint32Slot(5, accType, 0) + +def AddAccType(builder, accType): + PoolAttributeAddAccType(builder, accType) + +def PoolAttributeEnd(builder): + return builder.EndObject() + +def End(builder): + return PoolAttributeEnd(builder) diff --git a/python/tosa/RFFTAttribute.py b/python/tosa/RFFTAttribute.py new file mode 100644 index 0000000..7f76024 --- /dev/null +++ b/python/tosa/RFFTAttribute.py @@ -0,0 +1,54 @@ +# automatically generated by the FlatBuffers compiler, do not modify + +# namespace: tosa + +import flatbuffers +from flatbuffers.compat import import_numpy +np = import_numpy() + +class RFFTAttribute(object): + __slots__ = ['_tab'] + + @classmethod + def GetRootAs(cls, buf, offset=0): + n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) + x = RFFTAttribute() + x.Init(buf, n + offset) + return x + + @classmethod + def GetRootAsRFFTAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod + def RFFTAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): + return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) + + # RFFTAttribute + def Init(self, buf, pos): + self._tab = flatbuffers.table.Table(buf, pos) + + # RFFTAttribute + def LocalBound(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) + return False + +def RFFTAttributeStart(builder): + builder.StartObject(1) + +def Start(builder): + RFFTAttributeStart(builder) + +def RFFTAttributeAddLocalBound(builder, localBound): + builder.PrependBoolSlot(0, localBound, 0) + +def AddLocalBound(builder, localBound): + RFFTAttributeAddLocalBound(builder, localBound) + +def RFFTAttributeEnd(builder): + return builder.EndObject() + +def End(builder): + return RFFTAttributeEnd(builder) diff --git a/python/tosa/RescaleAttribute.py b/python/tosa/RescaleAttribute.py index 8ba68aa..12e7ced 100644 --- a/python/tosa/RescaleAttribute.py +++ b/python/tosa/RescaleAttribute.py @@ -10,13 +10,17 @@ class RescaleAttribute(object): __slots__ = ['_tab'] @classmethod - def GetRootAsRescaleAttribute(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = RescaleAttribute() x.Init(buf, n + offset) return x @classmethod + def GetRootAsRescaleAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def RescaleAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -39,88 +43,90 @@ class RescaleAttribute(object): return 0 # RescaleAttribute - def Multiplier(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.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 - - # RescaleAttribute - def MultiplierAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) - return 0 - - # RescaleAttribute - def MultiplierLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - if o != 0: - return self._tab.VectorLen(o) - return 0 - - # RescaleAttribute - def MultiplierIsNone(self): + def Scale32(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - return o == 0 - - # RescaleAttribute - def Shift(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.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 - - # RescaleAttribute - def ShiftAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) - return 0 + return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) + return False # RescaleAttribute - def ShiftLength(self): + def DoubleRound(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) if o != 0: - return self._tab.VectorLen(o) - return 0 - - # RescaleAttribute - def ShiftIsNone(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) - return o == 0 + return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) + return False # RescaleAttribute - def Scale32(self): + def PerChannel(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12)) if o != 0: return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) return False # RescaleAttribute - def DoubleRound(self): + def InputUnsigned(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14)) if o != 0: return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) return False # RescaleAttribute - def PerChannel(self): + def OutputUnsigned(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(16)) if o != 0: return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) return False -def RescaleAttributeStart(builder): builder.StartObject(7) -def RescaleAttributeAddInputZp(builder, inputZp): builder.PrependInt32Slot(0, inputZp, 0) -def RescaleAttributeAddOutputZp(builder, outputZp): builder.PrependInt32Slot(1, outputZp, 0) -def RescaleAttributeAddMultiplier(builder, multiplier): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(multiplier), 0) -def RescaleAttributeStartMultiplierVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def RescaleAttributeAddShift(builder, shift): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(shift), 0) -def RescaleAttributeStartShiftVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def RescaleAttributeAddScale32(builder, scale32): builder.PrependBoolSlot(4, scale32, 0) -def RescaleAttributeAddDoubleRound(builder, doubleRound): builder.PrependBoolSlot(5, doubleRound, 0) -def RescaleAttributeAddPerChannel(builder, perChannel): builder.PrependBoolSlot(6, perChannel, 0) -def RescaleAttributeEnd(builder): return builder.EndObject() +def RescaleAttributeStart(builder): + builder.StartObject(7) + +def Start(builder): + RescaleAttributeStart(builder) + +def RescaleAttributeAddInputZp(builder, inputZp): + builder.PrependInt32Slot(0, inputZp, 0) + +def AddInputZp(builder, inputZp): + RescaleAttributeAddInputZp(builder, inputZp) + +def RescaleAttributeAddOutputZp(builder, outputZp): + builder.PrependInt32Slot(1, outputZp, 0) + +def AddOutputZp(builder, outputZp): + RescaleAttributeAddOutputZp(builder, outputZp) + +def RescaleAttributeAddScale32(builder, scale32): + builder.PrependBoolSlot(2, scale32, 0) + +def AddScale32(builder, scale32): + RescaleAttributeAddScale32(builder, scale32) + +def RescaleAttributeAddDoubleRound(builder, doubleRound): + builder.PrependBoolSlot(3, doubleRound, 0) + +def AddDoubleRound(builder, doubleRound): + RescaleAttributeAddDoubleRound(builder, doubleRound) + +def RescaleAttributeAddPerChannel(builder, perChannel): + builder.PrependBoolSlot(4, perChannel, 0) + +def AddPerChannel(builder, perChannel): + RescaleAttributeAddPerChannel(builder, perChannel) + +def RescaleAttributeAddInputUnsigned(builder, inputUnsigned): + builder.PrependBoolSlot(5, inputUnsigned, 0) + +def AddInputUnsigned(builder, inputUnsigned): + RescaleAttributeAddInputUnsigned(builder, inputUnsigned) + +def RescaleAttributeAddOutputUnsigned(builder, outputUnsigned): + builder.PrependBoolSlot(6, outputUnsigned, 0) + +def AddOutputUnsigned(builder, outputUnsigned): + RescaleAttributeAddOutputUnsigned(builder, outputUnsigned) + +def RescaleAttributeEnd(builder): + return builder.EndObject() + +def End(builder): + return RescaleAttributeEnd(builder) diff --git a/python/tosa/ReshapeAttribute.py b/python/tosa/ReshapeAttribute.py deleted file mode 100644 index 73b1ee8..0000000 --- a/python/tosa/ReshapeAttribute.py +++ /dev/null @@ -1,57 +0,0 @@ -# automatically generated by the FlatBuffers compiler, do not modify - -# namespace: tosa - -import flatbuffers -from flatbuffers.compat import import_numpy -np = import_numpy() - -class ReshapeAttribute(object): - __slots__ = ['_tab'] - - @classmethod - def GetRootAsReshapeAttribute(cls, buf, offset): - n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) - x = ReshapeAttribute() - x.Init(buf, n + offset) - return x - - @classmethod - def ReshapeAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): - return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) - - # ReshapeAttribute - def Init(self, buf, pos): - self._tab = flatbuffers.table.Table(buf, pos) - - # ReshapeAttribute - def NewShape(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - if o != 0: - a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 - - # ReshapeAttribute - def NewShapeAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) - return 0 - - # ReshapeAttribute - def NewShapeLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - if o != 0: - return self._tab.VectorLen(o) - return 0 - - # ReshapeAttribute - def NewShapeIsNone(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - return o == 0 - -def ReshapeAttributeStart(builder): builder.StartObject(1) -def ReshapeAttributeAddNewShape(builder, newShape): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(newShape), 0) -def ReshapeAttributeStartNewShapeVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def ReshapeAttributeEnd(builder): return builder.EndObject() diff --git a/python/tosa/ResizeAttribute.py b/python/tosa/ResizeAttribute.py index 1ed2dc0..44f7d31 100644 --- a/python/tosa/ResizeAttribute.py +++ b/python/tosa/ResizeAttribute.py @@ -10,13 +10,17 @@ class ResizeAttribute(object): __slots__ = ['_tab'] @classmethod - def GetRootAsResizeAttribute(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = ResizeAttribute() x.Init(buf, n + offset) return x @classmethod + def GetRootAsResizeAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def ResizeAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -25,165 +29,143 @@ class ResizeAttribute(object): self._tab = flatbuffers.table.Table(buf, pos) # ResizeAttribute - def OutputSize(self, j): + def Scale(self, j): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) + return self._tab.Get(flatbuffers.number_types.Int16Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 2)) return 0 # ResizeAttribute - def OutputSizeAsNumpy(self): + def ScaleAsNumpy(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int16Flags, o) return 0 # ResizeAttribute - def OutputSizeLength(self): + def ScaleLength(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: return self._tab.VectorLen(o) return 0 # ResizeAttribute - def OutputSizeIsNone(self): + def ScaleIsNone(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) return o == 0 # ResizeAttribute - def Stride(self, j): + def Offset(self, j): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) + return self._tab.Get(flatbuffers.number_types.Int16Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 2)) return 0 # ResizeAttribute - def StrideAsNumpy(self): + def OffsetAsNumpy(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int16Flags, o) return 0 # ResizeAttribute - def StrideLength(self): + def OffsetLength(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: return self._tab.VectorLen(o) return 0 # ResizeAttribute - def StrideIsNone(self): + def OffsetIsNone(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) return o == 0 # ResizeAttribute - def Offset(self, j): + def Border(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.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) + return self._tab.Get(flatbuffers.number_types.Int16Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 2)) return 0 # ResizeAttribute - def OffsetAsNumpy(self): + def BorderAsNumpy(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int16Flags, o) return 0 # ResizeAttribute - def OffsetLength(self): + def BorderLength(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) if o != 0: return self._tab.VectorLen(o) return 0 # ResizeAttribute - def OffsetIsNone(self): + def BorderIsNone(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) return o == 0 # ResizeAttribute - def Shift(self): + def Mode(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) if o != 0: - return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) + return self._tab.Get(flatbuffers.number_types.Uint32Flags, o + self._tab.Pos) return 0 - # ResizeAttribute - def StrideFp(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12)) - if o != 0: - a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Float32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 +def ResizeAttributeStart(builder): + builder.StartObject(4) - # ResizeAttribute - def StrideFpAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12)) - if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Float32Flags, o) - return 0 +def Start(builder): + ResizeAttributeStart(builder) - # ResizeAttribute - def StrideFpLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12)) - if o != 0: - return self._tab.VectorLen(o) - return 0 +def ResizeAttributeAddScale(builder, scale): + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(scale), 0) - # ResizeAttribute - def StrideFpIsNone(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12)) - return o == 0 +def AddScale(builder, scale): + ResizeAttributeAddScale(builder, scale) - # ResizeAttribute - def OffsetFp(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14)) - if o != 0: - a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Float32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 +def ResizeAttributeStartScaleVector(builder, numElems): + return builder.StartVector(2, numElems, 2) - # ResizeAttribute - def OffsetFpAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14)) - if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Float32Flags, o) - return 0 +def StartScaleVector(builder, numElems): + return ResizeAttributeStartScaleVector(builder, numElems) - # ResizeAttribute - def OffsetFpLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14)) - if o != 0: - return self._tab.VectorLen(o) - return 0 +def ResizeAttributeAddOffset(builder, offset): + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(offset), 0) - # ResizeAttribute - def OffsetFpIsNone(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14)) - return o == 0 +def AddOffset(builder, offset): + ResizeAttributeAddOffset(builder, offset) - # ResizeAttribute - def Mode(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(16)) - if o != 0: - return self._tab.Get(flatbuffers.number_types.Uint32Flags, o + self._tab.Pos) - return 0 +def ResizeAttributeStartOffsetVector(builder, numElems): + return builder.StartVector(2, numElems, 2) + +def StartOffsetVector(builder, numElems): + return ResizeAttributeStartOffsetVector(builder, numElems) + +def ResizeAttributeAddBorder(builder, border): + builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(border), 0) + +def AddBorder(builder, border): + ResizeAttributeAddBorder(builder, border) + +def ResizeAttributeStartBorderVector(builder, numElems): + return builder.StartVector(2, numElems, 2) + +def StartBorderVector(builder, numElems): + return ResizeAttributeStartBorderVector(builder, numElems) + +def ResizeAttributeAddMode(builder, mode): + builder.PrependUint32Slot(3, mode, 0) + +def AddMode(builder, mode): + ResizeAttributeAddMode(builder, mode) + +def ResizeAttributeEnd(builder): + return builder.EndObject() -def ResizeAttributeStart(builder): builder.StartObject(7) -def ResizeAttributeAddOutputSize(builder, outputSize): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(outputSize), 0) -def ResizeAttributeStartOutputSizeVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def ResizeAttributeAddStride(builder, stride): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(stride), 0) -def ResizeAttributeStartStrideVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def ResizeAttributeAddOffset(builder, offset): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(offset), 0) -def ResizeAttributeStartOffsetVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def ResizeAttributeAddShift(builder, shift): builder.PrependInt32Slot(3, shift, 0) -def ResizeAttributeAddStrideFp(builder, strideFp): builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(strideFp), 0) -def ResizeAttributeStartStrideFpVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def ResizeAttributeAddOffsetFp(builder, offsetFp): builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(offsetFp), 0) -def ResizeAttributeStartOffsetFpVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def ResizeAttributeAddMode(builder, mode): builder.PrependUint32Slot(6, mode, 0) -def ResizeAttributeEnd(builder): return builder.EndObject() +def End(builder): + return ResizeAttributeEnd(builder) diff --git a/python/tosa/ResizeMode.py b/python/tosa/ResizeMode.py index 65bcd5d..388ecda 100644 --- a/python/tosa/ResizeMode.py +++ b/python/tosa/ResizeMode.py @@ -6,4 +6,3 @@ class ResizeMode(object): UNKNOWN = 0 NEAREST = 1 BILINEAR = 2 - diff --git a/python/tosa/SliceAttribute.py b/python/tosa/SliceAttribute.py deleted file mode 100644 index d3f6073..0000000 --- a/python/tosa/SliceAttribute.py +++ /dev/null @@ -1,86 +0,0 @@ -# automatically generated by the FlatBuffers compiler, do not modify - -# namespace: tosa - -import flatbuffers -from flatbuffers.compat import import_numpy -np = import_numpy() - -class SliceAttribute(object): - __slots__ = ['_tab'] - - @classmethod - def GetRootAsSliceAttribute(cls, buf, offset): - n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) - x = SliceAttribute() - x.Init(buf, n + offset) - return x - - @classmethod - def SliceAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): - return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) - - # SliceAttribute - def Init(self, buf, pos): - self._tab = flatbuffers.table.Table(buf, pos) - - # SliceAttribute - def Start(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - if o != 0: - a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 - - # SliceAttribute - def StartAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) - return 0 - - # SliceAttribute - def StartLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - if o != 0: - return self._tab.VectorLen(o) - return 0 - - # SliceAttribute - def StartIsNone(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - return o == 0 - - # SliceAttribute - def Size(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) - if o != 0: - a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 - - # SliceAttribute - def SizeAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) - if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) - return 0 - - # SliceAttribute - def SizeLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) - if o != 0: - return self._tab.VectorLen(o) - return 0 - - # SliceAttribute - def SizeIsNone(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) - return o == 0 - -def SliceAttributeStart(builder): builder.StartObject(2) -def SliceAttributeAddStart(builder, start): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(start), 0) -def SliceAttributeStartStartVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def SliceAttributeAddSize(builder, size): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(size), 0) -def SliceAttributeStartSizeVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def SliceAttributeEnd(builder): return builder.EndObject() diff --git a/python/tosa/TableAttribute.py b/python/tosa/TableAttribute.py index 49a5c9a..04193fa 100644 --- a/python/tosa/TableAttribute.py +++ b/python/tosa/TableAttribute.py @@ -10,13 +10,17 @@ class TableAttribute(object): __slots__ = ['_tab'] @classmethod - def GetRootAsTableAttribute(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = TableAttribute() x.Init(buf, n + offset) return x @classmethod + def GetRootAsTableAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def TableAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -51,7 +55,26 @@ class TableAttribute(object): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) return o == 0 -def TableAttributeStart(builder): builder.StartObject(1) -def TableAttributeAddTable(builder, table): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(table), 0) -def TableAttributeStartTableVector(builder, numElems): return builder.StartVector(2, numElems, 2) -def TableAttributeEnd(builder): return builder.EndObject() +def TableAttributeStart(builder): + builder.StartObject(1) + +def Start(builder): + TableAttributeStart(builder) + +def TableAttributeAddTable(builder, table): + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(table), 0) + +def AddTable(builder, table): + TableAttributeAddTable(builder, table) + +def TableAttributeStartTableVector(builder, numElems): + return builder.StartVector(2, numElems, 2) + +def StartTableVector(builder, numElems): + return TableAttributeStartTableVector(builder, numElems) + +def TableAttributeEnd(builder): + return builder.EndObject() + +def End(builder): + return TableAttributeEnd(builder) diff --git a/python/tosa/TileAttribute.py b/python/tosa/TileAttribute.py deleted file mode 100644 index 03dd0fb..0000000 --- a/python/tosa/TileAttribute.py +++ /dev/null @@ -1,57 +0,0 @@ -# automatically generated by the FlatBuffers compiler, do not modify - -# namespace: tosa - -import flatbuffers -from flatbuffers.compat import import_numpy -np = import_numpy() - -class TileAttribute(object): - __slots__ = ['_tab'] - - @classmethod - def GetRootAsTileAttribute(cls, buf, offset): - n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) - x = TileAttribute() - x.Init(buf, n + offset) - return x - - @classmethod - def TileAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): - return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) - - # TileAttribute - def Init(self, buf, pos): - self._tab = flatbuffers.table.Table(buf, pos) - - # TileAttribute - def Multiples(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - if o != 0: - a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 - - # TileAttribute - def MultiplesAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) - return 0 - - # TileAttribute - def MultiplesLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - if o != 0: - return self._tab.VectorLen(o) - return 0 - - # TileAttribute - def MultiplesIsNone(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) - return o == 0 - -def TileAttributeStart(builder): builder.StartObject(1) -def TileAttributeAddMultiples(builder, multiples): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(multiples), 0) -def TileAttributeStartMultiplesVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def TileAttributeEnd(builder): return builder.EndObject() diff --git a/python/tosa/TosaBasicBlock.py b/python/tosa/TosaBasicBlock.py index 1c93c63..30ad0ee 100644 --- a/python/tosa/TosaBasicBlock.py +++ b/python/tosa/TosaBasicBlock.py @@ -10,13 +10,17 @@ class TosaBasicBlock(object): __slots__ = ['_tab'] @classmethod - def GetRootAsTosaBasicBlock(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = TosaBasicBlock() x.Init(buf, n + offset) return x @classmethod + def GetRootAsTosaBasicBlock(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def TosaBasicBlockBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -121,14 +125,68 @@ class TosaBasicBlock(object): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12)) return o == 0 -def TosaBasicBlockStart(builder): builder.StartObject(5) -def TosaBasicBlockAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def TosaBasicBlockAddOperators(builder, operators): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(operators), 0) -def TosaBasicBlockStartOperatorsVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def TosaBasicBlockAddTensors(builder, tensors): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(tensors), 0) -def TosaBasicBlockStartTensorsVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def TosaBasicBlockAddInputs(builder, inputs): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(inputs), 0) -def TosaBasicBlockStartInputsVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def TosaBasicBlockAddOutputs(builder, outputs): builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(outputs), 0) -def TosaBasicBlockStartOutputsVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def TosaBasicBlockEnd(builder): return builder.EndObject() +def TosaBasicBlockStart(builder): + builder.StartObject(5) + +def Start(builder): + TosaBasicBlockStart(builder) + +def TosaBasicBlockAddName(builder, name): + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + +def AddName(builder, name): + TosaBasicBlockAddName(builder, name) + +def TosaBasicBlockAddOperators(builder, operators): + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(operators), 0) + +def AddOperators(builder, operators): + TosaBasicBlockAddOperators(builder, operators) + +def TosaBasicBlockStartOperatorsVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartOperatorsVector(builder, numElems): + return TosaBasicBlockStartOperatorsVector(builder, numElems) + +def TosaBasicBlockAddTensors(builder, tensors): + builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(tensors), 0) + +def AddTensors(builder, tensors): + TosaBasicBlockAddTensors(builder, tensors) + +def TosaBasicBlockStartTensorsVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartTensorsVector(builder, numElems): + return TosaBasicBlockStartTensorsVector(builder, numElems) + +def TosaBasicBlockAddInputs(builder, inputs): + builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(inputs), 0) + +def AddInputs(builder, inputs): + TosaBasicBlockAddInputs(builder, inputs) + +def TosaBasicBlockStartInputsVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartInputsVector(builder, numElems): + return TosaBasicBlockStartInputsVector(builder, numElems) + +def TosaBasicBlockAddOutputs(builder, outputs): + builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(outputs), 0) + +def AddOutputs(builder, outputs): + TosaBasicBlockAddOutputs(builder, outputs) + +def TosaBasicBlockStartOutputsVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartOutputsVector(builder, numElems): + return TosaBasicBlockStartOutputsVector(builder, numElems) + +def TosaBasicBlockEnd(builder): + return builder.EndObject() + +def End(builder): + return TosaBasicBlockEnd(builder) diff --git a/python/tosa/TosaGraph.py b/python/tosa/TosaGraph.py index eceffdb..520372b 100644 --- a/python/tosa/TosaGraph.py +++ b/python/tosa/TosaGraph.py @@ -10,13 +10,17 @@ class TosaGraph(object): __slots__ = ['_tab'] @classmethod - def GetRootAsTosaGraph(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = TosaGraph() x.Init(buf, n + offset) return x @classmethod + def GetRootAsTosaGraph(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def TosaGraphBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -36,32 +40,56 @@ class TosaGraph(object): return None # TosaGraph - def Blocks(self, j): + def Regions(self, j): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from tosa.TosaBasicBlock import TosaBasicBlock - obj = TosaBasicBlock() + from tosa.TosaRegion import TosaRegion + obj = TosaRegion() obj.Init(self._tab.Bytes, x) return obj return None # TosaGraph - def BlocksLength(self): + def RegionsLength(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: return self._tab.VectorLen(o) return 0 # TosaGraph - def BlocksIsNone(self): + def RegionsIsNone(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) return o == 0 -def TosaGraphStart(builder): builder.StartObject(2) -def TosaGraphAddVersion(builder, version): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(version), 0) -def TosaGraphAddBlocks(builder, blocks): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(blocks), 0) -def TosaGraphStartBlocksVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def TosaGraphEnd(builder): return builder.EndObject() +def TosaGraphStart(builder): + builder.StartObject(2) + +def Start(builder): + TosaGraphStart(builder) + +def TosaGraphAddVersion(builder, version): + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(version), 0) + +def AddVersion(builder, version): + TosaGraphAddVersion(builder, version) + +def TosaGraphAddRegions(builder, regions): + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(regions), 0) + +def AddRegions(builder, regions): + TosaGraphAddRegions(builder, regions) + +def TosaGraphStartRegionsVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartRegionsVector(builder, numElems): + return TosaGraphStartRegionsVector(builder, numElems) + +def TosaGraphEnd(builder): + return builder.EndObject() + +def End(builder): + return TosaGraphEnd(builder) diff --git a/python/tosa/TosaOperator.py b/python/tosa/TosaOperator.py index fd11f76..19f2d2c 100644 --- a/python/tosa/TosaOperator.py +++ b/python/tosa/TosaOperator.py @@ -10,13 +10,17 @@ class TosaOperator(object): __slots__ = ['_tab'] @classmethod - def GetRootAsTosaOperator(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = TosaOperator() x.Init(buf, n + offset) return x @classmethod + def GetRootAsTosaOperator(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def TosaOperatorBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -88,12 +92,56 @@ class TosaOperator(object): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12)) return o == 0 -def TosaOperatorStart(builder): builder.StartObject(5) -def TosaOperatorAddOp(builder, op): builder.PrependUint32Slot(0, op, 0) -def TosaOperatorAddAttributeType(builder, attributeType): builder.PrependUint8Slot(1, attributeType, 0) -def TosaOperatorAddAttribute(builder, attribute): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(attribute), 0) -def TosaOperatorAddInputs(builder, inputs): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(inputs), 0) -def TosaOperatorStartInputsVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def TosaOperatorAddOutputs(builder, outputs): builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(outputs), 0) -def TosaOperatorStartOutputsVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def TosaOperatorEnd(builder): return builder.EndObject() +def TosaOperatorStart(builder): + builder.StartObject(5) + +def Start(builder): + TosaOperatorStart(builder) + +def TosaOperatorAddOp(builder, op): + builder.PrependUint32Slot(0, op, 0) + +def AddOp(builder, op): + TosaOperatorAddOp(builder, op) + +def TosaOperatorAddAttributeType(builder, attributeType): + builder.PrependUint8Slot(1, attributeType, 0) + +def AddAttributeType(builder, attributeType): + TosaOperatorAddAttributeType(builder, attributeType) + +def TosaOperatorAddAttribute(builder, attribute): + builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(attribute), 0) + +def AddAttribute(builder, attribute): + TosaOperatorAddAttribute(builder, attribute) + +def TosaOperatorAddInputs(builder, inputs): + builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(inputs), 0) + +def AddInputs(builder, inputs): + TosaOperatorAddInputs(builder, inputs) + +def TosaOperatorStartInputsVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartInputsVector(builder, numElems): + return TosaOperatorStartInputsVector(builder, numElems) + +def TosaOperatorAddOutputs(builder, outputs): + builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(outputs), 0) + +def AddOutputs(builder, outputs): + TosaOperatorAddOutputs(builder, outputs) + +def TosaOperatorStartOutputsVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartOutputsVector(builder, numElems): + return TosaOperatorStartOutputsVector(builder, numElems) + +def TosaOperatorEnd(builder): + return builder.EndObject() + +def End(builder): + return TosaOperatorEnd(builder) diff --git a/python/tosa/TosaRegion.py b/python/tosa/TosaRegion.py new file mode 100644 index 0000000..80829da --- /dev/null +++ b/python/tosa/TosaRegion.py @@ -0,0 +1,91 @@ +# automatically generated by the FlatBuffers compiler, do not modify + +# namespace: tosa + +import flatbuffers +from flatbuffers.compat import import_numpy +np = import_numpy() + +class TosaRegion(object): + __slots__ = ['_tab'] + + @classmethod + def GetRootAs(cls, buf, offset=0): + n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) + x = TosaRegion() + x.Init(buf, n + offset) + return x + + @classmethod + def GetRootAsTosaRegion(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod + def TosaRegionBufferHasIdentifier(cls, buf, offset, size_prefixed=False): + return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) + + # TosaRegion + def Init(self, buf, pos): + self._tab = flatbuffers.table.Table(buf, pos) + + # TosaRegion + def Name(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + return self._tab.String(o + self._tab.Pos) + return None + + # TosaRegion + def Blocks(self, j): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + x = self._tab.Vector(o) + x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 + x = self._tab.Indirect(x) + from tosa.TosaBasicBlock import TosaBasicBlock + obj = TosaBasicBlock() + obj.Init(self._tab.Bytes, x) + return obj + return None + + # TosaRegion + def BlocksLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + + # TosaRegion + def BlocksIsNone(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + return o == 0 + +def TosaRegionStart(builder): + builder.StartObject(2) + +def Start(builder): + TosaRegionStart(builder) + +def TosaRegionAddName(builder, name): + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + +def AddName(builder, name): + TosaRegionAddName(builder, name) + +def TosaRegionAddBlocks(builder, blocks): + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(blocks), 0) + +def AddBlocks(builder, blocks): + TosaRegionAddBlocks(builder, blocks) + +def TosaRegionStartBlocksVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartBlocksVector(builder, numElems): + return TosaRegionStartBlocksVector(builder, numElems) + +def TosaRegionEnd(builder): + return builder.EndObject() + +def End(builder): + return TosaRegionEnd(builder) diff --git a/python/tosa/TosaTensor.py b/python/tosa/TosaTensor.py index a6f609d..1311aac 100644 --- a/python/tosa/TosaTensor.py +++ b/python/tosa/TosaTensor.py @@ -10,13 +10,17 @@ class TosaTensor(object): __slots__ = ['_tab'] @classmethod - def GetRootAsTosaTensor(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = TosaTensor() x.Init(buf, n + offset) return x @classmethod + def GetRootAsTosaTensor(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def TosaTensorBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -92,11 +96,89 @@ class TosaTensor(object): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) return o == 0 -def TosaTensorStart(builder): builder.StartObject(4) -def TosaTensorAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def TosaTensorAddShape(builder, shape): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(shape), 0) -def TosaTensorStartShapeVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def TosaTensorAddType(builder, type): builder.PrependUint32Slot(2, type, 0) -def TosaTensorAddData(builder, data): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(data), 0) -def TosaTensorStartDataVector(builder, numElems): return builder.StartVector(1, numElems, 1) -def TosaTensorEnd(builder): return builder.EndObject() + # TosaTensor + def Variable(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12)) + if o != 0: + return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) + return False + + # TosaTensor + def IsUnranked(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14)) + if o != 0: + return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) + return False + + # TosaTensor + def VariableName(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(16)) + if o != 0: + return self._tab.String(o + self._tab.Pos) + return None + +def TosaTensorStart(builder): + builder.StartObject(7) + +def Start(builder): + TosaTensorStart(builder) + +def TosaTensorAddName(builder, name): + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + +def AddName(builder, name): + TosaTensorAddName(builder, name) + +def TosaTensorAddShape(builder, shape): + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(shape), 0) + +def AddShape(builder, shape): + TosaTensorAddShape(builder, shape) + +def TosaTensorStartShapeVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartShapeVector(builder, numElems): + return TosaTensorStartShapeVector(builder, numElems) + +def TosaTensorAddType(builder, type): + builder.PrependUint32Slot(2, type, 0) + +def AddType(builder, type): + TosaTensorAddType(builder, type) + +def TosaTensorAddData(builder, data): + builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(data), 0) + +def AddData(builder, data): + TosaTensorAddData(builder, data) + +def TosaTensorStartDataVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + +def StartDataVector(builder, numElems): + return TosaTensorStartDataVector(builder, numElems) + +def TosaTensorAddVariable(builder, variable): + builder.PrependBoolSlot(4, variable, 0) + +def AddVariable(builder, variable): + TosaTensorAddVariable(builder, variable) + +def TosaTensorAddIsUnranked(builder, isUnranked): + builder.PrependBoolSlot(5, isUnranked, 0) + +def AddIsUnranked(builder, isUnranked): + TosaTensorAddIsUnranked(builder, isUnranked) + +def TosaTensorAddVariableName(builder, variableName): + builder.PrependUOffsetTRelativeSlot(6, flatbuffers.number_types.UOffsetTFlags.py_type(variableName), 0) + +def AddVariableName(builder, variableName): + TosaTensorAddVariableName(builder, variableName) + +def TosaTensorEnd(builder): + return builder.EndObject() + +def End(builder): + return TosaTensorEnd(builder) diff --git a/python/tosa/TransposeAttribute.py b/python/tosa/TransposeAttribute.py index 82e6b3a..5aa23e2 100644 --- a/python/tosa/TransposeAttribute.py +++ b/python/tosa/TransposeAttribute.py @@ -10,13 +10,17 @@ class TransposeAttribute(object): __slots__ = ['_tab'] @classmethod - def GetRootAsTransposeAttribute(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = TransposeAttribute() x.Init(buf, n + offset) return x @classmethod + def GetRootAsTransposeAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def TransposeAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -51,7 +55,26 @@ class TransposeAttribute(object): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) return o == 0 -def TransposeAttributeStart(builder): builder.StartObject(1) -def TransposeAttributeAddPerms(builder, perms): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(perms), 0) -def TransposeAttributeStartPermsVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def TransposeAttributeEnd(builder): return builder.EndObject() +def TransposeAttributeStart(builder): + builder.StartObject(1) + +def Start(builder): + TransposeAttributeStart(builder) + +def TransposeAttributeAddPerms(builder, perms): + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(perms), 0) + +def AddPerms(builder, perms): + TransposeAttributeAddPerms(builder, perms) + +def TransposeAttributeStartPermsVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartPermsVector(builder, numElems): + return TransposeAttributeStartPermsVector(builder, numElems) + +def TransposeAttributeEnd(builder): + return builder.EndObject() + +def End(builder): + return TransposeAttributeEnd(builder) diff --git a/python/tosa/TransposeConvAttribute.py b/python/tosa/TransposeConvAttribute.py index 8ca5ba7..2f7cdc7 100644 --- a/python/tosa/TransposeConvAttribute.py +++ b/python/tosa/TransposeConvAttribute.py @@ -10,13 +10,17 @@ class TransposeConvAttribute(object): __slots__ = ['_tab'] @classmethod - def GetRootAsTransposeConvAttribute(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = TransposeConvAttribute() x.Init(buf, n + offset) return x @classmethod + def GetRootAsTransposeConvAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def TransposeConvAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -79,53 +83,89 @@ class TransposeConvAttribute(object): return o == 0 # TransposeConvAttribute - def OutputShape(self, j): + def InputZp(self): 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.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) + return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) return 0 # TransposeConvAttribute - def OutputShapeAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + def WeightZp(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) + return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) return 0 # TransposeConvAttribute - def OutputShapeLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + def LocalBound(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12)) if o != 0: - return self._tab.VectorLen(o) - return 0 - - # TransposeConvAttribute - def OutputShapeIsNone(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - return o == 0 + return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) + return False # TransposeConvAttribute - def InputZp(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) + def AccType(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14)) if o != 0: - return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) + return self._tab.Get(flatbuffers.number_types.Uint32Flags, o + self._tab.Pos) return 0 - # TransposeConvAttribute - def WeightZp(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12)) - if o != 0: - return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) - return 0 +def TransposeConvAttributeStart(builder): + builder.StartObject(6) + +def Start(builder): + TransposeConvAttributeStart(builder) + +def TransposeConvAttributeAddOutPad(builder, outPad): + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(outPad), 0) + +def AddOutPad(builder, outPad): + TransposeConvAttributeAddOutPad(builder, outPad) + +def TransposeConvAttributeStartOutPadVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartOutPadVector(builder, numElems): + return TransposeConvAttributeStartOutPadVector(builder, numElems) + +def TransposeConvAttributeAddStride(builder, stride): + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(stride), 0) + +def AddStride(builder, stride): + TransposeConvAttributeAddStride(builder, stride) + +def TransposeConvAttributeStartStrideVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartStrideVector(builder, numElems): + return TransposeConvAttributeStartStrideVector(builder, numElems) + +def TransposeConvAttributeAddInputZp(builder, inputZp): + builder.PrependInt32Slot(2, inputZp, 0) + +def AddInputZp(builder, inputZp): + TransposeConvAttributeAddInputZp(builder, inputZp) + +def TransposeConvAttributeAddWeightZp(builder, weightZp): + builder.PrependInt32Slot(3, weightZp, 0) + +def AddWeightZp(builder, weightZp): + TransposeConvAttributeAddWeightZp(builder, weightZp) + +def TransposeConvAttributeAddLocalBound(builder, localBound): + builder.PrependBoolSlot(4, localBound, 0) + +def AddLocalBound(builder, localBound): + TransposeConvAttributeAddLocalBound(builder, localBound) + +def TransposeConvAttributeAddAccType(builder, accType): + builder.PrependUint32Slot(5, accType, 0) + +def AddAccType(builder, accType): + TransposeConvAttributeAddAccType(builder, accType) + +def TransposeConvAttributeEnd(builder): + return builder.EndObject() -def TransposeConvAttributeStart(builder): builder.StartObject(5) -def TransposeConvAttributeAddOutPad(builder, outPad): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(outPad), 0) -def TransposeConvAttributeStartOutPadVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def TransposeConvAttributeAddStride(builder, stride): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(stride), 0) -def TransposeConvAttributeStartStrideVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def TransposeConvAttributeAddOutputShape(builder, outputShape): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(outputShape), 0) -def TransposeConvAttributeStartOutputShapeVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def TransposeConvAttributeAddInputZp(builder, inputZp): builder.PrependInt32Slot(3, inputZp, 0) -def TransposeConvAttributeAddWeightZp(builder, weightZp): builder.PrependInt32Slot(4, weightZp, 0) -def TransposeConvAttributeEnd(builder): return builder.EndObject() +def End(builder): + return TransposeConvAttributeEnd(builder) diff --git a/python/tosa/Version.py b/python/tosa/Version.py index 06c3ba3..369f356 100644 --- a/python/tosa/Version.py +++ b/python/tosa/Version.py @@ -10,13 +10,17 @@ class Version(object): __slots__ = ['_tab'] @classmethod - def GetRootAsVersion(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = Version() x.Init(buf, n + offset) return x @classmethod + def GetRootAsVersion(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def VersionBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -25,36 +29,65 @@ class Version(object): self._tab = flatbuffers.table.Table(buf, pos) # Version - def _major(self): + def _Major(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) - return 0 + return -1 # Version - def _minor(self): + def _Minor(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) - return 31 + return -1 # Version - def _patch(self): + def _Patch(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) if o != 0: return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) - return 0 + return -1 # Version - def _draft(self): + def _Draft(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) if o != 0: return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) return True -def VersionStart(builder): builder.StartObject(4) -def VersionAdd_major(builder, Major): builder.PrependInt32Slot(0, Major, 0) -def VersionAdd_minor(builder, Minor): builder.PrependInt32Slot(1, Minor, 31) -def VersionAdd_patch(builder, Patch): builder.PrependInt32Slot(2, Patch, 0) -def VersionAdd_draft(builder, Draft): builder.PrependBoolSlot(3, Draft, 1) -def VersionEnd(builder): return builder.EndObject() +def VersionStart(builder): + builder.StartObject(4) + +def Start(builder): + VersionStart(builder) + +def VersionAdd_Major(builder, _Major): + builder.PrependInt32Slot(0, _Major, -1) + +def Add_Major(builder, _Major): + VersionAdd_Major(builder, _Major) + +def VersionAdd_Minor(builder, _Minor): + builder.PrependInt32Slot(1, _Minor, -1) + +def Add_Minor(builder, _Minor): + VersionAdd_Minor(builder, _Minor) + +def VersionAdd_Patch(builder, _Patch): + builder.PrependInt32Slot(2, _Patch, -1) + +def Add_Patch(builder, _Patch): + VersionAdd_Patch(builder, _Patch) + +def VersionAdd_Draft(builder, _Draft): + builder.PrependBoolSlot(3, _Draft, 1) + +def Add_Draft(builder, _Draft): + VersionAdd_Draft(builder, _Draft) + +def VersionEnd(builder): + return builder.EndObject() + +def End(builder): + return VersionEnd(builder) diff --git a/python/tosa/WhileLoopAttribute.py b/python/tosa/WhileLoopAttribute.py index 1e18bca..5148c26 100644 --- a/python/tosa/WhileLoopAttribute.py +++ b/python/tosa/WhileLoopAttribute.py @@ -10,13 +10,17 @@ class WhileLoopAttribute(object): __slots__ = ['_tab'] @classmethod - def GetRootAsWhileLoopAttribute(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = WhileLoopAttribute() x.Init(buf, n + offset) return x @classmethod + def GetRootAsWhileLoopAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod def WhileLoopAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) @@ -25,20 +29,39 @@ class WhileLoopAttribute(object): self._tab = flatbuffers.table.Table(buf, pos) # WhileLoopAttribute - def CondBranch(self): + def CondGraph(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: return self._tab.String(o + self._tab.Pos) return None # WhileLoopAttribute - def BodyBranch(self): + def BodyGraph(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: return self._tab.String(o + self._tab.Pos) return None -def WhileLoopAttributeStart(builder): builder.StartObject(2) -def WhileLoopAttributeAddCondBranch(builder, condBranch): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(condBranch), 0) -def WhileLoopAttributeAddBodyBranch(builder, bodyBranch): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(bodyBranch), 0) -def WhileLoopAttributeEnd(builder): return builder.EndObject() +def WhileLoopAttributeStart(builder): + builder.StartObject(2) + +def Start(builder): + WhileLoopAttributeStart(builder) + +def WhileLoopAttributeAddCondGraph(builder, condGraph): + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(condGraph), 0) + +def AddCondGraph(builder, condGraph): + WhileLoopAttributeAddCondGraph(builder, condGraph) + +def WhileLoopAttributeAddBodyGraph(builder, bodyGraph): + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(bodyGraph), 0) + +def AddBodyGraph(builder, bodyGraph): + WhileLoopAttributeAddBodyGraph(builder, bodyGraph) + +def WhileLoopAttributeEnd(builder): + return builder.EndObject() + +def End(builder): + return WhileLoopAttributeEnd(builder) |