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