1*523fa7a6SAndroid Build Coastguard Worker// Copyright (c) Meta Platforms, Inc. and affiliates. 2*523fa7a6SAndroid Build Coastguard Worker 3*523fa7a6SAndroid Build Coastguard Workernamespace fb_xnnpack; 4*523fa7a6SAndroid Build Coastguard Worker 5*523fa7a6SAndroid Build Coastguard Worker// Update after any BC breaking changes 6*523fa7a6SAndroid Build Coastguard Workerfile_identifier "XN01"; 7*523fa7a6SAndroid Build Coastguard Worker 8*523fa7a6SAndroid Build Coastguard Worker// datatype for xnn-values 9*523fa7a6SAndroid Build Coastguard Workerenum XNNDatatype : short { 10*523fa7a6SAndroid Build Coastguard Worker /// Invalid data type. Valid Values never have this datatype. 11*523fa7a6SAndroid Build Coastguard Worker xnn_datatype_invalid = 0, 12*523fa7a6SAndroid Build Coastguard Worker /// IEEE754 single-precision floating-point. 13*523fa7a6SAndroid Build Coastguard Worker xnn_datatype_fp32 = 1, 14*523fa7a6SAndroid Build Coastguard Worker /// IEEE754 half-precision floating-point. 15*523fa7a6SAndroid Build Coastguard Worker xnn_datatype_fp16 = 2, 16*523fa7a6SAndroid Build Coastguard Worker /// Quantized 8-bit signed integer with shared per-Value quantization parameters. 17*523fa7a6SAndroid Build Coastguard Worker xnn_datatype_qint8 = 3, 18*523fa7a6SAndroid Build Coastguard Worker /// Quantized 8-bit unsigned integer with shared per-Value quantization parameters. 19*523fa7a6SAndroid Build Coastguard Worker xnn_datatype_quint8 = 4, 20*523fa7a6SAndroid Build Coastguard Worker /// Quantized 32-bit signed integer with shared per-Value quantization parameters. 21*523fa7a6SAndroid Build Coastguard Worker xnn_datatype_qint32 = 5, 22*523fa7a6SAndroid Build Coastguard Worker /// Quantized 8-bit signed integer with shared per-channel quantization parameters. 23*523fa7a6SAndroid Build Coastguard Worker xnn_datatype_qcint8 = 6, 24*523fa7a6SAndroid Build Coastguard Worker /// Quantized 32-bit signed integer with shared per-channel quantization parameters. 25*523fa7a6SAndroid Build Coastguard Worker xnn_datatype_qcint32 = 7, 26*523fa7a6SAndroid Build Coastguard Worker /// Quantized 4-bit signed integer with shared per-channel quantization parameters. 27*523fa7a6SAndroid Build Coastguard Worker xnn_datatype_qcint4 = 8, 28*523fa7a6SAndroid Build Coastguard Worker /// Dynamically quantized 8-bit signed integer with per-batch quantization parameters. 29*523fa7a6SAndroid Build Coastguard Worker xnn_datatype_qdint8 = 9, 30*523fa7a6SAndroid Build Coastguard Worker /// Quantized 4-bit signed integer with shared blockwise quantization parameters. 31*523fa7a6SAndroid Build Coastguard Worker xnn_datatype_qbint4 = 10, 32*523fa7a6SAndroid Build Coastguard Worker} 33*523fa7a6SAndroid Build Coastguard Worker 34*523fa7a6SAndroid Build Coastguard Worker// type of quantization 35*523fa7a6SAndroid Build Coastguard Workerunion XNNQuantParams { 36*523fa7a6SAndroid Build Coastguard Worker PerChannelQuant, 37*523fa7a6SAndroid Build Coastguard Worker PerTensorQuant, 38*523fa7a6SAndroid Build Coastguard Worker PerTokenDynamicQuant, 39*523fa7a6SAndroid Build Coastguard Worker PerChannelGroupQuant, 40*523fa7a6SAndroid Build Coastguard Worker} 41*523fa7a6SAndroid Build Coastguard Worker 42*523fa7a6SAndroid Build Coastguard Worker// Deprecated buffer abstraction, const data buffers do not belong in flatbuffer 43*523fa7a6SAndroid Build Coastguard Workertable Buffer { 44*523fa7a6SAndroid Build Coastguard Worker storage:[ubyte] (deprecated, force_align: 16); 45*523fa7a6SAndroid Build Coastguard Worker} 46*523fa7a6SAndroid Build Coastguard Worker 47*523fa7a6SAndroid Build Coastguard Workertable PerChannelGroupQuant { 48*523fa7a6SAndroid Build Coastguard Worker scale:[float]; 49*523fa7a6SAndroid Build Coastguard Worker channel_dim:int; 50*523fa7a6SAndroid Build Coastguard Worker group_size:int; 51*523fa7a6SAndroid Build Coastguard Worker scale_bf16:[ushort]; 52*523fa7a6SAndroid Build Coastguard Worker} 53*523fa7a6SAndroid Build Coastguard Worker 54*523fa7a6SAndroid Build Coastguard Workertable PerChannelQuant { 55*523fa7a6SAndroid Build Coastguard Worker scale:[float]; 56*523fa7a6SAndroid Build Coastguard Worker channel_dim:int; 57*523fa7a6SAndroid Build Coastguard Worker} 58*523fa7a6SAndroid Build Coastguard Worker 59*523fa7a6SAndroid Build Coastguard Workertable PerTokenDynamicQuant { 60*523fa7a6SAndroid Build Coastguard Worker num_nonbatch_dims:int; 61*523fa7a6SAndroid Build Coastguard Worker} 62*523fa7a6SAndroid Build Coastguard Worker 63*523fa7a6SAndroid Build Coastguard Workertable PerTensorQuant { 64*523fa7a6SAndroid Build Coastguard Worker scale:float; 65*523fa7a6SAndroid Build Coastguard Worker zero_point:int; 66*523fa7a6SAndroid Build Coastguard Worker} 67*523fa7a6SAndroid Build Coastguard Worker 68*523fa7a6SAndroid Build Coastguard Workertable XNNTensorValue { 69*523fa7a6SAndroid Build Coastguard Worker // type of the tensor elements. 70*523fa7a6SAndroid Build Coastguard Worker datatype:XNNDatatype; 71*523fa7a6SAndroid Build Coastguard Worker // number of dimensions in the shape. 72*523fa7a6SAndroid Build Coastguard Worker num_dims:uint; 73*523fa7a6SAndroid Build Coastguard Worker // pointer to an array of @a num_dims shape dimensions. If num_dims is 0, this pointer can be NULL. 74*523fa7a6SAndroid Build Coastguard Worker // XNNPACK does not keep any pointers to this array after the function returns. 75*523fa7a6SAndroid Build Coastguard Worker dims:[uint]; 76*523fa7a6SAndroid Build Coastguard Worker // Index to the program's constant buffer table, value 0 is reserved to indicate non constant 77*523fa7a6SAndroid Build Coastguard Worker constant_buffer_idx:uint; 78*523fa7a6SAndroid Build Coastguard Worker // external ID for the Value. The ID must be within the range of reserved Value IDs specified on 79*523fa7a6SAndroid Build Coastguard Worker // the Subgraph creation. If the external ID is XNN_INVALID_VALUE_ID, an internal ID will be 80*523fa7a6SAndroid Build Coastguard Worker // created for the Value. 81*523fa7a6SAndroid Build Coastguard Worker external_id:uint; 82*523fa7a6SAndroid Build Coastguard Worker // binary features of the Value. Supported values are any combination of XNN_VALUE_FLAG_EXTERNAL_INPUT 83*523fa7a6SAndroid Build Coastguard Worker // and XNN_VALUE_FLAG_EXTERNAL_OUTPUT. 84*523fa7a6SAndroid Build Coastguard Worker flags:uint; 85*523fa7a6SAndroid Build Coastguard Worker // pointer to the variable that will be initialized with the Value ID upon successful return. If a 86*523fa7a6SAndroid Build Coastguard Worker // valid @a external_id was provided, the variable will be initialized with the @a external_id value. 87*523fa7a6SAndroid Build Coastguard Worker id_out:uint; 88*523fa7a6SAndroid Build Coastguard Worker} 89*523fa7a6SAndroid Build Coastguard Worker 90*523fa7a6SAndroid Build Coastguard Workertable XNNQuantizedTensorValue { 91*523fa7a6SAndroid Build Coastguard Worker // Base Tensor Value 92*523fa7a6SAndroid Build Coastguard Worker tensor_value:XNNTensorValue; 93*523fa7a6SAndroid Build Coastguard Worker // Quantization parameters 94*523fa7a6SAndroid Build Coastguard Worker quant_params:XNNQuantParams; 95*523fa7a6SAndroid Build Coastguard Worker} 96*523fa7a6SAndroid Build Coastguard Worker 97*523fa7a6SAndroid Build Coastguard Workerunion XNodeUnion { 98*523fa7a6SAndroid Build Coastguard Worker XNNAdd: _XNNNode2x1, 99*523fa7a6SAndroid Build Coastguard Worker XNNFullyConnected, 100*523fa7a6SAndroid Build Coastguard Worker XNNSoftmax: _XNNNode1x1, 101*523fa7a6SAndroid Build Coastguard Worker XNNSigmoid: _XNNNode1x1, 102*523fa7a6SAndroid Build Coastguard Worker XNNStaticTranspose, 103*523fa7a6SAndroid Build Coastguard Worker XNNClamp: _XNNNode1x1, 104*523fa7a6SAndroid Build Coastguard Worker XNNConv2d: _XNNNodeConv, 105*523fa7a6SAndroid Build Coastguard Worker XNNDiv: _XNNNode2x1, 106*523fa7a6SAndroid Build Coastguard Worker XNNStaticResizeBilinear2D, 107*523fa7a6SAndroid Build Coastguard Worker XNNStaticConstantPad, 108*523fa7a6SAndroid Build Coastguard Worker XNNAvgPooling2d: _XNNPooling2D, 109*523fa7a6SAndroid Build Coastguard Worker XNNMinimum: _XNNNode2x1, 110*523fa7a6SAndroid Build Coastguard Worker XNNDepthwiseConv2d: _XNNNodeConv, 111*523fa7a6SAndroid Build Coastguard Worker XNNMaxPooling2d: _XNNPooling2D, 112*523fa7a6SAndroid Build Coastguard Worker XNNMultiply: _XNNNode2x1, 113*523fa7a6SAndroid Build Coastguard Worker XNNSubtract: _XNNNode2x1, 114*523fa7a6SAndroid Build Coastguard Worker XNNFloor: _XNNNode1x1, 115*523fa7a6SAndroid Build Coastguard Worker XNNConvert: _XNNNode1x1, 116*523fa7a6SAndroid Build Coastguard Worker XNNGlobalAvgPooling2d: _XNNNode1x1, 117*523fa7a6SAndroid Build Coastguard Worker XNNStaticReshape, 118*523fa7a6SAndroid Build Coastguard Worker XNNArgMaxPooling2d, 119*523fa7a6SAndroid Build Coastguard Worker XNNSquareRoot: _XNNNode1x1, 120*523fa7a6SAndroid Build Coastguard Worker XNNCeiling: _XNNNode1x1, 121*523fa7a6SAndroid Build Coastguard Worker XNNHardswish: _XNNNode1x1, 122*523fa7a6SAndroid Build Coastguard Worker XNNLeakyReLU, 123*523fa7a6SAndroid Build Coastguard Worker XNNMaximum: _XNNNode2x1, 124*523fa7a6SAndroid Build Coastguard Worker XNNNegate: _XNNNode1x1, 125*523fa7a6SAndroid Build Coastguard Worker XNNSquare: _XNNNode1x1, 126*523fa7a6SAndroid Build Coastguard Worker XNNELU, 127*523fa7a6SAndroid Build Coastguard Worker XNNAbs: _XNNNode1x1, 128*523fa7a6SAndroid Build Coastguard Worker XNNPReLU: _XNNNode2x1, 129*523fa7a6SAndroid Build Coastguard Worker XNNConcatenate2: _XNNCat, 130*523fa7a6SAndroid Build Coastguard Worker XNNConcatenate3: _XNNCat, 131*523fa7a6SAndroid Build Coastguard Worker XNNConcatenate4: _XNNCat, 132*523fa7a6SAndroid Build Coastguard Worker XNNStaticSlice, 133*523fa7a6SAndroid Build Coastguard Worker XNNScaledDotProductAttention, 134*523fa7a6SAndroid Build Coastguard Worker XNNBatchMatrixMultiply: _XNNNode2x1, 135*523fa7a6SAndroid Build Coastguard Worker} 136*523fa7a6SAndroid Build Coastguard Worker 137*523fa7a6SAndroid Build Coastguard Workerunion XValueUnion { 138*523fa7a6SAndroid Build Coastguard Worker XNNTensorValue, 139*523fa7a6SAndroid Build Coastguard Worker XNNQuantizedTensorValue, 140*523fa7a6SAndroid Build Coastguard Worker} 141*523fa7a6SAndroid Build Coastguard Worker 142*523fa7a6SAndroid Build Coastguard Workertable OutputMinMax { 143*523fa7a6SAndroid Build Coastguard Worker output_min:float; 144*523fa7a6SAndroid Build Coastguard Worker output_max:float; 145*523fa7a6SAndroid Build Coastguard Worker} 146*523fa7a6SAndroid Build Coastguard Worker 147*523fa7a6SAndroid Build Coastguard Workertable XNode { 148*523fa7a6SAndroid Build Coastguard Worker xnode_union:XNodeUnion; 149*523fa7a6SAndroid Build Coastguard Worker // An int which can be linked back to the node in the origin graph 150*523fa7a6SAndroid Build Coastguard Worker debug_handle:uint; 151*523fa7a6SAndroid Build Coastguard Worker output_min_max:OutputMinMax; 152*523fa7a6SAndroid Build Coastguard Worker} 153*523fa7a6SAndroid Build Coastguard Worker 154*523fa7a6SAndroid Build Coastguard Workertable XValue { 155*523fa7a6SAndroid Build Coastguard Worker xvalue_union:XValueUnion; 156*523fa7a6SAndroid Build Coastguard Worker} 157*523fa7a6SAndroid Build Coastguard Worker 158*523fa7a6SAndroid Build Coastguard Workertable XNNStaticTranspose { 159*523fa7a6SAndroid Build Coastguard Worker num_dims:uint; 160*523fa7a6SAndroid Build Coastguard Worker perm:[uint]; 161*523fa7a6SAndroid Build Coastguard Worker input_id:uint; 162*523fa7a6SAndroid Build Coastguard Worker output_id:uint; 163*523fa7a6SAndroid Build Coastguard Worker flags:uint; 164*523fa7a6SAndroid Build Coastguard Worker} 165*523fa7a6SAndroid Build Coastguard Worker 166*523fa7a6SAndroid Build Coastguard Workertable XNNStaticResizeBilinear2D { 167*523fa7a6SAndroid Build Coastguard Worker new_height:uint; 168*523fa7a6SAndroid Build Coastguard Worker new_width:uint; 169*523fa7a6SAndroid Build Coastguard Worker input_id:uint; 170*523fa7a6SAndroid Build Coastguard Worker output_id:uint; 171*523fa7a6SAndroid Build Coastguard Worker flags:uint; 172*523fa7a6SAndroid Build Coastguard Worker} 173*523fa7a6SAndroid Build Coastguard Worker 174*523fa7a6SAndroid Build Coastguard Workertable XNNStaticConstantPad { 175*523fa7a6SAndroid Build Coastguard Worker pre_paddings:[uint]; 176*523fa7a6SAndroid Build Coastguard Worker post_paddings:[uint]; 177*523fa7a6SAndroid Build Coastguard Worker padding_value:float; 178*523fa7a6SAndroid Build Coastguard Worker input_id:uint; 179*523fa7a6SAndroid Build Coastguard Worker output_id:uint; 180*523fa7a6SAndroid Build Coastguard Worker flags:uint; 181*523fa7a6SAndroid Build Coastguard Worker} 182*523fa7a6SAndroid Build Coastguard Worker 183*523fa7a6SAndroid Build Coastguard Worker// A node with two input and one output 184*523fa7a6SAndroid Build Coastguard Worker// Not meant to be used directly 185*523fa7a6SAndroid Build Coastguard Workertable _XNNNode2x1 { 186*523fa7a6SAndroid Build Coastguard Worker input1_id:uint; 187*523fa7a6SAndroid Build Coastguard Worker input2_id:uint; 188*523fa7a6SAndroid Build Coastguard Worker output_id:uint; 189*523fa7a6SAndroid Build Coastguard Worker flags:uint; 190*523fa7a6SAndroid Build Coastguard Worker} 191*523fa7a6SAndroid Build Coastguard Worker 192*523fa7a6SAndroid Build Coastguard Worker// A node with one input and one output 193*523fa7a6SAndroid Build Coastguard Worker// Not meant to be used directly 194*523fa7a6SAndroid Build Coastguard Workertable _XNNNode1x1 { 195*523fa7a6SAndroid Build Coastguard Worker input_id:uint; 196*523fa7a6SAndroid Build Coastguard Worker output_id:uint; 197*523fa7a6SAndroid Build Coastguard Worker flags:uint; 198*523fa7a6SAndroid Build Coastguard Worker} 199*523fa7a6SAndroid Build Coastguard Worker 200*523fa7a6SAndroid Build Coastguard Workertable _XNNCat { 201*523fa7a6SAndroid Build Coastguard Worker axis: uint; 202*523fa7a6SAndroid Build Coastguard Worker input1_id: uint; 203*523fa7a6SAndroid Build Coastguard Worker input2_id: uint; 204*523fa7a6SAndroid Build Coastguard Worker input3_id: uint; 205*523fa7a6SAndroid Build Coastguard Worker input4_id: uint; 206*523fa7a6SAndroid Build Coastguard Worker output_id: uint; 207*523fa7a6SAndroid Build Coastguard Worker flags: uint; 208*523fa7a6SAndroid Build Coastguard Worker} 209*523fa7a6SAndroid Build Coastguard Worker 210*523fa7a6SAndroid Build Coastguard Workertable XNNELU { 211*523fa7a6SAndroid Build Coastguard Worker alpha:float; 212*523fa7a6SAndroid Build Coastguard Worker input_id:uint; 213*523fa7a6SAndroid Build Coastguard Worker output_id:uint; 214*523fa7a6SAndroid Build Coastguard Worker flags:uint; 215*523fa7a6SAndroid Build Coastguard Worker} 216*523fa7a6SAndroid Build Coastguard Worker 217*523fa7a6SAndroid Build Coastguard Workertable XNNFullyConnected { 218*523fa7a6SAndroid Build Coastguard Worker input1_id:uint; 219*523fa7a6SAndroid Build Coastguard Worker filter_id:uint; 220*523fa7a6SAndroid Build Coastguard Worker bias_id:uint; 221*523fa7a6SAndroid Build Coastguard Worker output_id:uint; 222*523fa7a6SAndroid Build Coastguard Worker flags:uint; 223*523fa7a6SAndroid Build Coastguard Worker} 224*523fa7a6SAndroid Build Coastguard Worker 225*523fa7a6SAndroid Build Coastguard Workertable _XNNNodeConv { 226*523fa7a6SAndroid Build Coastguard Worker padding_top:uint; 227*523fa7a6SAndroid Build Coastguard Worker padding_right:uint; 228*523fa7a6SAndroid Build Coastguard Worker padding_bottom:uint; 229*523fa7a6SAndroid Build Coastguard Worker padding_left:uint; 230*523fa7a6SAndroid Build Coastguard Worker kernel_height:uint; 231*523fa7a6SAndroid Build Coastguard Worker kernel_width:uint; 232*523fa7a6SAndroid Build Coastguard Worker subsampling_height:uint; 233*523fa7a6SAndroid Build Coastguard Worker subsampling_width:uint; 234*523fa7a6SAndroid Build Coastguard Worker dilation_height:uint; 235*523fa7a6SAndroid Build Coastguard Worker dilation_width:uint; 236*523fa7a6SAndroid Build Coastguard Worker group_input_channels:uint; 237*523fa7a6SAndroid Build Coastguard Worker group_output_channels:uint; 238*523fa7a6SAndroid Build Coastguard Worker groups:uint; 239*523fa7a6SAndroid Build Coastguard Worker adjustment_height:uint; 240*523fa7a6SAndroid Build Coastguard Worker adjustment_width:uint; 241*523fa7a6SAndroid Build Coastguard Worker input1_id:uint; 242*523fa7a6SAndroid Build Coastguard Worker filter_id:uint; 243*523fa7a6SAndroid Build Coastguard Worker bias_id:uint; 244*523fa7a6SAndroid Build Coastguard Worker output_id:uint; 245*523fa7a6SAndroid Build Coastguard Worker flags:uint; 246*523fa7a6SAndroid Build Coastguard Worker} 247*523fa7a6SAndroid Build Coastguard Worker 248*523fa7a6SAndroid Build Coastguard Workertable _XNNPooling2D { 249*523fa7a6SAndroid Build Coastguard Worker padding_top: uint; 250*523fa7a6SAndroid Build Coastguard Worker padding_right: uint; 251*523fa7a6SAndroid Build Coastguard Worker padding_bottom: uint; 252*523fa7a6SAndroid Build Coastguard Worker padding_left: uint; 253*523fa7a6SAndroid Build Coastguard Worker pooling_height: uint; 254*523fa7a6SAndroid Build Coastguard Worker pooling_width: uint; 255*523fa7a6SAndroid Build Coastguard Worker stride_height: uint; 256*523fa7a6SAndroid Build Coastguard Worker stride_width: uint; 257*523fa7a6SAndroid Build Coastguard Worker dilation_height: uint; 258*523fa7a6SAndroid Build Coastguard Worker dilation_width: uint; 259*523fa7a6SAndroid Build Coastguard Worker input_id: uint; 260*523fa7a6SAndroid Build Coastguard Worker output_id: uint; 261*523fa7a6SAndroid Build Coastguard Worker flags: uint; 262*523fa7a6SAndroid Build Coastguard Worker} 263*523fa7a6SAndroid Build Coastguard Worker 264*523fa7a6SAndroid Build Coastguard Workertable XNNStaticReshape { 265*523fa7a6SAndroid Build Coastguard Worker num_dims:uint; 266*523fa7a6SAndroid Build Coastguard Worker new_shape:[uint]; 267*523fa7a6SAndroid Build Coastguard Worker input_id: uint; 268*523fa7a6SAndroid Build Coastguard Worker output_id: uint; 269*523fa7a6SAndroid Build Coastguard Worker flags: uint; 270*523fa7a6SAndroid Build Coastguard Worker} 271*523fa7a6SAndroid Build Coastguard Worker 272*523fa7a6SAndroid Build Coastguard Workertable XNNStaticSlice { 273*523fa7a6SAndroid Build Coastguard Worker num_dims:uint; 274*523fa7a6SAndroid Build Coastguard Worker offsets:[uint]; 275*523fa7a6SAndroid Build Coastguard Worker sizes:[uint]; 276*523fa7a6SAndroid Build Coastguard Worker input_id:uint; 277*523fa7a6SAndroid Build Coastguard Worker output_id:uint; 278*523fa7a6SAndroid Build Coastguard Worker flags:uint; 279*523fa7a6SAndroid Build Coastguard Worker} 280*523fa7a6SAndroid Build Coastguard Worker 281*523fa7a6SAndroid Build Coastguard Workertable XNNScaledDotProductAttention { 282*523fa7a6SAndroid Build Coastguard Worker query_id:uint; 283*523fa7a6SAndroid Build Coastguard Worker key_id:uint; 284*523fa7a6SAndroid Build Coastguard Worker value_id:uint; 285*523fa7a6SAndroid Build Coastguard Worker scale_id:uint; 286*523fa7a6SAndroid Build Coastguard Worker mask_id:uint; 287*523fa7a6SAndroid Build Coastguard Worker output_id:uint; 288*523fa7a6SAndroid Build Coastguard Worker flags:uint; 289*523fa7a6SAndroid Build Coastguard Worker} 290*523fa7a6SAndroid Build Coastguard Worker 291*523fa7a6SAndroid Build Coastguard Workertable XNNArgMaxPooling2d { 292*523fa7a6SAndroid Build Coastguard Worker padding_top: uint; 293*523fa7a6SAndroid Build Coastguard Worker padding_right: uint; 294*523fa7a6SAndroid Build Coastguard Worker padding_bottom: uint; 295*523fa7a6SAndroid Build Coastguard Worker padding_left: uint; 296*523fa7a6SAndroid Build Coastguard Worker pooling_height: uint; 297*523fa7a6SAndroid Build Coastguard Worker pooling_width: uint; 298*523fa7a6SAndroid Build Coastguard Worker input_id: uint; 299*523fa7a6SAndroid Build Coastguard Worker output_value_id: uint; 300*523fa7a6SAndroid Build Coastguard Worker output_index_id: uint; 301*523fa7a6SAndroid Build Coastguard Worker flags: uint; 302*523fa7a6SAndroid Build Coastguard Worker} 303*523fa7a6SAndroid Build Coastguard Worker 304*523fa7a6SAndroid Build Coastguard Workertable XNNLeakyReLU { 305*523fa7a6SAndroid Build Coastguard Worker negative_slope: float; 306*523fa7a6SAndroid Build Coastguard Worker input_id: uint; 307*523fa7a6SAndroid Build Coastguard Worker output_id: uint; 308*523fa7a6SAndroid Build Coastguard Worker flags: uint; 309*523fa7a6SAndroid Build Coastguard Worker} 310*523fa7a6SAndroid Build Coastguard Worker 311*523fa7a6SAndroid Build Coastguard Worker// Describes data offsets for constant data 312*523fa7a6SAndroid Build Coastguard Workertable ConstantDataOffset { 313*523fa7a6SAndroid Build Coastguard Worker // Constant data offsets are relative to the constant data base offset provided 314*523fa7a6SAndroid Build Coastguard Worker // in the XNNPACKHeader. 315*523fa7a6SAndroid Build Coastguard Worker offset: uint64; 316*523fa7a6SAndroid Build Coastguard Worker 317*523fa7a6SAndroid Build Coastguard Worker // The size in bytes of valid data starting at the offset. The constant data 318*523fa7a6SAndroid Build Coastguard Worker // may be followed by padding before the next piece of constant data 319*523fa7a6SAndroid Build Coastguard Worker size: uint64; 320*523fa7a6SAndroid Build Coastguard Worker} 321*523fa7a6SAndroid Build Coastguard Worker 322*523fa7a6SAndroid Build Coastguard Workertable XNNGraph { 323*523fa7a6SAndroid Build Coastguard Worker // Schema version. 324*523fa7a6SAndroid Build Coastguard Worker version:string; 325*523fa7a6SAndroid Build Coastguard Worker xnodes:[XNode]; 326*523fa7a6SAndroid Build Coastguard Worker xvalues:[XValue]; 327*523fa7a6SAndroid Build Coastguard Worker 328*523fa7a6SAndroid Build Coastguard Worker // Number of external inputs/outputs 329*523fa7a6SAndroid Build Coastguard Worker num_externs:uint; 330*523fa7a6SAndroid Build Coastguard Worker 331*523fa7a6SAndroid Build Coastguard Worker // Ids of external inputs 332*523fa7a6SAndroid Build Coastguard Worker input_ids:[uint]; 333*523fa7a6SAndroid Build Coastguard Worker 334*523fa7a6SAndroid Build Coastguard Worker // Ids of external outputs 335*523fa7a6SAndroid Build Coastguard Worker output_ids:[uint]; 336*523fa7a6SAndroid Build Coastguard Worker 337*523fa7a6SAndroid Build Coastguard Worker // Deprecated constant buffer storage in flatbuffer 338*523fa7a6SAndroid Build Coastguard Worker constant_buffer:[Buffer] (deprecated); 339*523fa7a6SAndroid Build Coastguard Worker 340*523fa7a6SAndroid Build Coastguard Worker // Deprecated memory_buffer size tracking in flatbuffer 341*523fa7a6SAndroid Build Coastguard Worker mem_buffer_sizes: [uint] (deprecated); 342*523fa7a6SAndroid Build Coastguard Worker 343*523fa7a6SAndroid Build Coastguard Worker // List of the constant data that follows the XNNGraph in this file. Each constant data is assigned an index into 344*523fa7a6SAndroid Build Coastguard Worker // the table. 0 index is reserved to be pointed to by non-constant Tensor. 345*523fa7a6SAndroid Build Coastguard Worker constant_data:[ConstantDataOffset]; 346*523fa7a6SAndroid Build Coastguard Worker} 347*523fa7a6SAndroid Build Coastguard Worker 348*523fa7a6SAndroid Build Coastguard Workerroot_type XNNGraph; 349