xref: /aosp_15_r20/external/executorch/devtools/etdump/schema_flatcc.py (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
1*523fa7a6SAndroid Build Coastguard Worker# Copyright (c) Meta Platforms, Inc. and affiliates.
2*523fa7a6SAndroid Build Coastguard Worker# All rights reserved.
3*523fa7a6SAndroid Build Coastguard Worker#
4*523fa7a6SAndroid Build Coastguard Worker# This source code is licensed under the BSD-style license found in the
5*523fa7a6SAndroid Build Coastguard Worker# LICENSE file in the root directory of this source tree.
6*523fa7a6SAndroid Build Coastguard Worker
7*523fa7a6SAndroid Build Coastguard Worker# pyre-strict
8*523fa7a6SAndroid Build Coastguard Worker"""
9*523fa7a6SAndroid Build Coastguard WorkerThis file is the python representation of the schema contained in
10*523fa7a6SAndroid Build Coastguard Workerexecutorch/devtools/etdump/etdump_schema.fbs. Any changes made to that
11*523fa7a6SAndroid Build Coastguard Workerflatbuffer schema should accordingly be reflected here also.
12*523fa7a6SAndroid Build Coastguard Worker"""
13*523fa7a6SAndroid Build Coastguard Worker
14*523fa7a6SAndroid Build Coastguard Workerfrom dataclasses import dataclass
15*523fa7a6SAndroid Build Coastguard Workerfrom enum import Enum
16*523fa7a6SAndroid Build Coastguard Workerfrom typing import List, Optional
17*523fa7a6SAndroid Build Coastguard Worker
18*523fa7a6SAndroid Build Coastguard Workerfrom executorch.exir.scalar_type import ScalarType
19*523fa7a6SAndroid Build Coastguard Worker
20*523fa7a6SAndroid Build Coastguard Worker
21*523fa7a6SAndroid Build Coastguard Worker@dataclass
22*523fa7a6SAndroid Build Coastguard Workerclass Tensor:
23*523fa7a6SAndroid Build Coastguard Worker    scalar_type: ScalarType
24*523fa7a6SAndroid Build Coastguard Worker    sizes: List[int]
25*523fa7a6SAndroid Build Coastguard Worker    strides: List[int]
26*523fa7a6SAndroid Build Coastguard Worker    offset: Optional[int]
27*523fa7a6SAndroid Build Coastguard Worker
28*523fa7a6SAndroid Build Coastguard Worker
29*523fa7a6SAndroid Build Coastguard Worker@dataclass
30*523fa7a6SAndroid Build Coastguard Workerclass TensorList:
31*523fa7a6SAndroid Build Coastguard Worker    tensors: List[Tensor]
32*523fa7a6SAndroid Build Coastguard Worker
33*523fa7a6SAndroid Build Coastguard Worker
34*523fa7a6SAndroid Build Coastguard Worker@dataclass
35*523fa7a6SAndroid Build Coastguard Workerclass Null:
36*523fa7a6SAndroid Build Coastguard Worker    pass
37*523fa7a6SAndroid Build Coastguard Worker
38*523fa7a6SAndroid Build Coastguard Worker
39*523fa7a6SAndroid Build Coastguard Worker@dataclass
40*523fa7a6SAndroid Build Coastguard Workerclass Int:
41*523fa7a6SAndroid Build Coastguard Worker    int_val: int
42*523fa7a6SAndroid Build Coastguard Worker
43*523fa7a6SAndroid Build Coastguard Worker
44*523fa7a6SAndroid Build Coastguard Worker@dataclass
45*523fa7a6SAndroid Build Coastguard Workerclass Bool:
46*523fa7a6SAndroid Build Coastguard Worker    bool_val: bool
47*523fa7a6SAndroid Build Coastguard Worker
48*523fa7a6SAndroid Build Coastguard Worker
49*523fa7a6SAndroid Build Coastguard Worker@dataclass
50*523fa7a6SAndroid Build Coastguard Workerclass Double:
51*523fa7a6SAndroid Build Coastguard Worker    double_val: float
52*523fa7a6SAndroid Build Coastguard Worker
53*523fa7a6SAndroid Build Coastguard Worker
54*523fa7a6SAndroid Build Coastguard Worker@dataclass
55*523fa7a6SAndroid Build Coastguard Workerclass Float:
56*523fa7a6SAndroid Build Coastguard Worker    float_val: float
57*523fa7a6SAndroid Build Coastguard Worker
58*523fa7a6SAndroid Build Coastguard Worker
59*523fa7a6SAndroid Build Coastguard Worker@dataclass
60*523fa7a6SAndroid Build Coastguard Workerclass String:
61*523fa7a6SAndroid Build Coastguard Worker    string_val: str
62*523fa7a6SAndroid Build Coastguard Worker
63*523fa7a6SAndroid Build Coastguard Worker
64*523fa7a6SAndroid Build Coastguard Worker@dataclass
65*523fa7a6SAndroid Build Coastguard Workerclass ContainerMetadata:
66*523fa7a6SAndroid Build Coastguard Worker    encoded_inp_str: str
67*523fa7a6SAndroid Build Coastguard Worker    encoded_out_str: str
68*523fa7a6SAndroid Build Coastguard Worker
69*523fa7a6SAndroid Build Coastguard Worker
70*523fa7a6SAndroid Build Coastguard Worker@dataclass
71*523fa7a6SAndroid Build Coastguard Workerclass ValueType(Enum):
72*523fa7a6SAndroid Build Coastguard Worker    NULL = "Null"
73*523fa7a6SAndroid Build Coastguard Worker    INT = "Int"
74*523fa7a6SAndroid Build Coastguard Worker    BOOL = "Bool"
75*523fa7a6SAndroid Build Coastguard Worker    FLOAT = "Float"
76*523fa7a6SAndroid Build Coastguard Worker    DOUBLE = "Double"
77*523fa7a6SAndroid Build Coastguard Worker    TENSOR = "Tensor"
78*523fa7a6SAndroid Build Coastguard Worker    TENSOR_LIST = "TensorList"
79*523fa7a6SAndroid Build Coastguard Worker    STRING = "String"
80*523fa7a6SAndroid Build Coastguard Worker
81*523fa7a6SAndroid Build Coastguard Worker
82*523fa7a6SAndroid Build Coastguard Worker@dataclass
83*523fa7a6SAndroid Build Coastguard Workerclass Value:
84*523fa7a6SAndroid Build Coastguard Worker    val: str  # Member of ValueType
85*523fa7a6SAndroid Build Coastguard Worker    tensor: Optional[Tensor]
86*523fa7a6SAndroid Build Coastguard Worker    tensor_list: Optional[TensorList]
87*523fa7a6SAndroid Build Coastguard Worker    int_value: Optional[Int]
88*523fa7a6SAndroid Build Coastguard Worker    float_value: Optional[Float]
89*523fa7a6SAndroid Build Coastguard Worker    double_value: Optional[Double]
90*523fa7a6SAndroid Build Coastguard Worker    bool_value: Optional[Bool]
91*523fa7a6SAndroid Build Coastguard Worker    output: Optional[Bool]
92*523fa7a6SAndroid Build Coastguard Worker
93*523fa7a6SAndroid Build Coastguard Worker
94*523fa7a6SAndroid Build Coastguard Worker@dataclass
95*523fa7a6SAndroid Build Coastguard Workerclass DebugEvent:
96*523fa7a6SAndroid Build Coastguard Worker    name: Optional[str]
97*523fa7a6SAndroid Build Coastguard Worker    chain_index: int
98*523fa7a6SAndroid Build Coastguard Worker    instruction_id: int
99*523fa7a6SAndroid Build Coastguard Worker    delegate_debug_id_int: Optional[int]
100*523fa7a6SAndroid Build Coastguard Worker    delegate_debug_id_str: Optional[str]
101*523fa7a6SAndroid Build Coastguard Worker    debug_entry: Value
102*523fa7a6SAndroid Build Coastguard Worker
103*523fa7a6SAndroid Build Coastguard Worker
104*523fa7a6SAndroid Build Coastguard Worker# Note the differing value style is a result of ETDump string
105*523fa7a6SAndroid Build Coastguard Workerclass PROFILE_EVENT_ENUM(Enum):
106*523fa7a6SAndroid Build Coastguard Worker    RUN_MODEL = "Method::execute"
107*523fa7a6SAndroid Build Coastguard Worker    OPERATOR_CALL = "OPERATOR_CALL"
108*523fa7a6SAndroid Build Coastguard Worker    DELEGATE_CALL = "DELEGATE_CALL"
109*523fa7a6SAndroid Build Coastguard Worker    LOAD_MODEL = "Program::load_method"
110*523fa7a6SAndroid Build Coastguard Worker
111*523fa7a6SAndroid Build Coastguard Worker
112*523fa7a6SAndroid Build Coastguard Worker@dataclass
113*523fa7a6SAndroid Build Coastguard Workerclass ProfileEvent:
114*523fa7a6SAndroid Build Coastguard Worker    name: Optional[str]
115*523fa7a6SAndroid Build Coastguard Worker    chain_index: int
116*523fa7a6SAndroid Build Coastguard Worker    instruction_id: int
117*523fa7a6SAndroid Build Coastguard Worker    delegate_debug_id_int: Optional[int]
118*523fa7a6SAndroid Build Coastguard Worker    delegate_debug_id_str: Optional[str]
119*523fa7a6SAndroid Build Coastguard Worker    delegate_debug_metadata: Optional[bytes]
120*523fa7a6SAndroid Build Coastguard Worker    start_time: int
121*523fa7a6SAndroid Build Coastguard Worker    end_time: int
122*523fa7a6SAndroid Build Coastguard Worker
123*523fa7a6SAndroid Build Coastguard Worker
124*523fa7a6SAndroid Build Coastguard Worker@dataclass
125*523fa7a6SAndroid Build Coastguard Workerclass AllocationEvent:
126*523fa7a6SAndroid Build Coastguard Worker    allocator_id: int
127*523fa7a6SAndroid Build Coastguard Worker    allocation_size: int
128*523fa7a6SAndroid Build Coastguard Worker
129*523fa7a6SAndroid Build Coastguard Worker
130*523fa7a6SAndroid Build Coastguard Worker@dataclass
131*523fa7a6SAndroid Build Coastguard Workerclass Allocator:
132*523fa7a6SAndroid Build Coastguard Worker    name: str
133*523fa7a6SAndroid Build Coastguard Worker
134*523fa7a6SAndroid Build Coastguard Worker
135*523fa7a6SAndroid Build Coastguard Worker# Must have one of profile_event, allocation_event, or debug_event
136*523fa7a6SAndroid Build Coastguard Worker@dataclass
137*523fa7a6SAndroid Build Coastguard Workerclass Event:
138*523fa7a6SAndroid Build Coastguard Worker    profile_event: Optional[ProfileEvent]
139*523fa7a6SAndroid Build Coastguard Worker    allocation_event: Optional[AllocationEvent]
140*523fa7a6SAndroid Build Coastguard Worker    debug_event: Optional[DebugEvent]
141*523fa7a6SAndroid Build Coastguard Worker
142*523fa7a6SAndroid Build Coastguard Worker
143*523fa7a6SAndroid Build Coastguard Worker@dataclass
144*523fa7a6SAndroid Build Coastguard Workerclass RunData:
145*523fa7a6SAndroid Build Coastguard Worker    name: str
146*523fa7a6SAndroid Build Coastguard Worker    bundled_input_index: Optional[int]
147*523fa7a6SAndroid Build Coastguard Worker    allocators: Optional[List[Allocator]]
148*523fa7a6SAndroid Build Coastguard Worker    events: Optional[List[Event]]
149*523fa7a6SAndroid Build Coastguard Worker
150*523fa7a6SAndroid Build Coastguard Worker
151*523fa7a6SAndroid Build Coastguard Worker@dataclass
152*523fa7a6SAndroid Build Coastguard Workerclass ETDumpFlatCC:
153*523fa7a6SAndroid Build Coastguard Worker    version: int
154*523fa7a6SAndroid Build Coastguard Worker    run_data: List[RunData]
155