Skip to content

Commit

Permalink
Step1: Add yaml event args (#187)
Browse files Browse the repository at this point in the history
Summary:
Pull Request resolved: #187

Add yaml event args

Reviewed By: fengxizhou

Differential Revision: D64145904

fbshipit-source-id: a125079439fd102eedea385194d163a247b84d4e
  • Loading branch information
niufei8888 authored and facebook-github-bot committed Oct 11, 2024
1 parent 641cc13 commit fa9d4dc
Show file tree
Hide file tree
Showing 5 changed files with 391 additions and 33 deletions.
8 changes: 2 additions & 6 deletions hta/common/trace_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,8 @@
from hta.common.trace_symbol_table import TraceSymbolTable

from hta.configs.config import logger
from hta.configs.parser_config import (
AttributeSpec,
ParserBackend,
ParserConfig,
ValueType,
)
from hta.configs.default_values import ValueType
from hta.configs.parser_config import AttributeSpec, ParserBackend, ParserConfig
from hta.utils.utils import normalize_gpu_stream_numbers

# from memory_profiler import profile
Expand Down
40 changes: 39 additions & 1 deletion hta/configs/default_values.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.

from typing import List
from enum import Enum
from typing import Dict, List, NamedTuple, Union

# Default Paths
DEFAULT_TRACE_DIR = "/tmp/trace"
Expand All @@ -14,3 +15,40 @@
# Runtime configurations
IS_DEBUG_ENABLED: bool = True
MAX_NUM_PROCESSES: int = 32


class ValueType(Enum):
"""ValueType enumerates the possible data types for the attribute values."""

Int = 1
Float = 2
String = 3
Object = 4


class AttributeSpec(NamedTuple):
"""AttributeSpec specifies what an attribute looks like and how to parse it.
An AttributeSpec instance has the following fields:
+ name: the column name used in the output dataframe.
+ raw_name: the key used in args dict object in the original json trace.
+ value_type: the expected data type for the values of the attribute.
+ default_value: what value will be used for missing attribute values.
"""

name: str
raw_name: str
value_type: ValueType
default_value: Union[int, float, str, object]


class EventArgs(NamedTuple):
AVAILABLE_ARGS: Dict[str, AttributeSpec]
ARGS_INPUT_SHAPE: List[AttributeSpec]
ARGS_BANDWIDTH: List[AttributeSpec]
ARGS_SYNC: List[AttributeSpec]
ARGS_MINIMUM: List[AttributeSpec]
ARGS_COMPLETE: List[AttributeSpec]
ARGS_INFO: List[AttributeSpec]
ARGS_COMMUNICATION: List[AttributeSpec]
ARGS_DEFAULT: List[AttributeSpec]
208 changes: 208 additions & 0 deletions hta/configs/event_args_formats/event_args_1.0.0.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,208 @@
version: 1.0.0

AVAILABLE_ARGS:
index::ev_idx:
name: ev_idx
raw_name: Ev Idx
value_type: Int
default_value: -1
index::external_id:
name: external_id
raw_name: External id
value_type: Int
default_value: -1
cpu_op::concrete_inputs:
name: concrete_inputs
raw_name: Concrete Inputs
value_type: Object
default_value: "[]"
cpu_op::fwd_thread:
name: fwd_thread_id
raw_name: Fwd thread id
value_type: Int
default_value: -1
cpu_op::input_dims:
name: input_dims
raw_name: Input Dims
value_type: Object
default_value: "-1"
cpu_op::input_type:
name: input_type
raw_name: Input type
value_type: Object
default_value: "-1"
cpu_op::input_strides:
name: input_strides
raw_name: Input Strides
value_type: Object
default_value: "-1"
cpu_op::sequence_number:
name: sequence
raw_name: Sequence number
value_type: Int
default_value: -1
cpu_op::kernel_backend:
name: kernel_backend
raw_name: kernel_backend
value_type: String
default_value: ""
correlation::cbid:
name: cbid
raw_name: cbid
value_type: Int
default_value: -1
correlation::cpu_gpu:
name: correlation
raw_name: correlation
value_type: Int
default_value: -1
sm::blocks:
name: blocks_per_sm
raw_name: blocks per SM
value_type: Object
default_value: "[]"
sm::occupancy:
name: est_occupancy
raw_name: est. achieved occupancy %
value_type: Int
default_value: -1
sm::warps:
name: warps_per_sm
raw_name: warps per SM
value_type: Float
default_value: 0.0
data::bytes:
name: bytes
raw_name: bytes
value_type: Int
default_value: -1
data::bandwidth:
name: memory_bw_gbps
raw_name: memory bandwidth (GB/s)
value_type: Float
default_value: 0.0
cuda::context:
name: context
raw_name: context
value_type: Int
default_value: -1
cuda::device:
name: device
raw_name: device
value_type: Int
default_value: -1
cuda::stream:
name: stream
raw_name: stream
value_type: Int
default_value: -1
kernel::queued:
name: queued
raw_name: queued
value_type: Int
default_value: -1
kernel::shared_memory:
name: shared_memory
raw_name: shared memory
value_type: Int
default_value: -1
threads::block:
name: block
raw_name: block
value_type: Object
default_value: "[]"
threads::grid:
name: grid
raw_name: grid
value_type: Object
default_value: "[]"
threads::registers:
name: registers_per_thread
raw_name: registers per thread
value_type: Int
default_value: -1
cuda_sync::stream:
name: wait_on_stream
raw_name: wait_on_stream
value_type: Int
default_value: -1
cuda_sync::event:
name: wait_on_cuda_event_record_corr_id
raw_name: wait_on_cuda_event_record_corr_id
value_type: Int
default_value: -1
info::labels:
name: labels
raw_name: labels
value_type: String
default_value: ""
info::name:
name: name
raw_name: name
value_type: Int
default_value: -1
info::op_count:
name: op_count
raw_name: Op count
value_type: Int
default_value: -1
info::sort_index:
name: sort_index
raw_name: sort_index
value_type: Int
default_value: -1
nccl::collective_name:
name: collective_name
raw_name: Collective name
value_type: String
default_value: ""
nccl::in_msg_nelems:
name: in_msg_nelems
raw_name: In msg nelems
value_type: Int
default_value: 0
nccl::out_msg_nelems:
name: out_msg_nelems
raw_name: Out msg nelems
value_type: Int
default_value: 0
nccl::group_size:
name: group_size
raw_name: Group size
value_type: Int
default_value: 0
nccl::dtype:
name: msg_dtype
raw_name: dtype
value_type: String
default_value: ""
nccl::in_split_size:
name: in_split_size
raw_name: In split size
value_type: Object
default_value: "[]"
nccl::out_split_size:
name: out_split_size
raw_name: Out split size
value_type: Object
default_value: "[]"
nccl::process_group_name:
name: process_group_name
raw_name: Process Group Name
value_type: String
default_value: ""
nccl::process_group_desc:
name: process_group_desc
raw_name: Process Group Description
value_type: String
default_value: ""
nccl::process_group_ranks:
name: process_group_ranks
raw_name: Process Group Ranks
value_type: Object
default_value: "[]"
nccl::rank:
name: process_rank
raw_name: Rank
value_type: Int
default_value: -1
Loading

0 comments on commit fa9d4dc

Please sign in to comment.