xref: /aosp_15_r20/external/executorch/backends/qualcomm/aot/ir/qcir.fbs (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
1//
2// Copyright (c) Qualcomm Innovation Center, Inc.
3// All rights reserved.
4//
5// This source code is licensed under the BSD-style license found in the
6// LICENSE file in the root directory of this source tree.
7//
8
9namespace qcir;
10
11enum TensorType : byte {
12    WRITE = 0,
13    READ,
14    READWRITE,
15    NATIVE,
16    STATIC,
17    OPTIONAL,
18    UNDEFINED,
19}
20
21enum DataType : byte {
22    INT8 = 0,
23    INT16,
24    INT32,
25    INT64,
26    UINT8,
27    UINT16,
28    UINT32,
29    UINT64,
30    FLOAT16,
31    FLOAT32,
32    FLOAT64,
33    SFIXED4,
34    SFIXED8,
35    SFIXED16,
36    SFIXED32,
37    UFIXED4,
38    UFIXED8,
39    UFIXED16,
40    UFIXED32,
41    BOOL,
42    STRING,
43    UNDEFINED,
44}
45
46enum QuantizeDef : byte {
47    IMPL_GENERATED = 0,
48    DEFINED,
49    UNDEFINED,
50}
51
52enum QuantizeType : byte {
53    SCALE_OFFSET = 0,
54    AXIS_SCALE_OFFSET,
55    BW_SCALE_OFFSET,
56    BW_AXIS_SCALE_OFFSET,
57    UNDEFINED,
58}
59
60struct ScaleOffset {
61    scale: float;
62    offset: int;
63}
64
65table QuantizeParam {
66    def: QuantizeDef;
67    type: QuantizeType;
68    bitwidth: uint;
69    axis: int;
70    // used by bitwidth quantization
71    scales: [float];
72    offsets: [int];
73    // used by general quantization
74    data: [ScaleOffset];
75}
76
77table Tensor {
78    name: string;
79    shape: [uint];
80    type: TensorType;
81    dtype: DataType;
82    qparam: QuantizeParam;
83    data: [ubyte];
84}
85
86table Operator {
87    name: string;
88    package_name: string;
89    type_name: string;
90    // keep only tensor indexes
91    inputs: [int];
92    outputs: [int];
93    params: [int];
94}
95
96table Graph {
97    name: string;
98    nodes: [Operator];
99    tensors: [Tensor];
100}
101
102table Context {
103    graphs: [Graph];
104}
105
106root_type Context;
107