mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-05-14 02:02:46 +00:00
Extends build time analysis from ROCm/composable_kernel#3644 to handle multiple trace files across build directories (see #4229): - pipeline.py: Generic pipeline framework with fluent interface for composable data processing. Provides parallel processing, progress tracking, and error handling independent of trace-specific code. Processes thousands of trace files at default resolution in minutes, aggregating results into in-memory DataFrames for analysis. - parse_build.py: Parse all trace files in a build directory - build_analysis_example.ipynb: Demonstrates pipeline aggregation across all build files The pipeline design improves capability (composable operations), performance (parallel processing), and user-friendliness (fluent API) of the analysis modules. It enables analyzing compilation patterns across the entire codebase with all trace data available in pandas DataFrames for interactive exploration. --- 🔁 Imported from [ROCm/composable_kernel#3704](https://github.com/ROCm/composable_kernel/pull/3704) 🧑💻 Originally authored by @shumway Co-authored-by: John Shumway <jshumway@amd.com> Co-authored-by: Illia Silin <98187287+illsilin@users.noreply.github.com>
54 lines
1.0 KiB
Python
54 lines
1.0 KiB
Python
# Copyright (c) Advanced Micro Devices, Inc., or its affiliates.
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
"""
|
|
Build Trace Analysis - Core library for analyzing Clang -ftime-trace data.
|
|
|
|
This package provides tools to parse and analyze Clang's -ftime-trace JSON output
|
|
for build performance analysis.
|
|
"""
|
|
|
|
from .parse_file import (
|
|
parse_file,
|
|
get_metadata,
|
|
)
|
|
|
|
from .template_analysis import (
|
|
get_template_instantiation_events,
|
|
)
|
|
|
|
from .phase_breakdown import (
|
|
get_phase_breakdown,
|
|
PhaseBreakdown,
|
|
)
|
|
|
|
from .parse_build import (
|
|
find_trace_files,
|
|
read_trace_files,
|
|
)
|
|
|
|
from .pipeline import (
|
|
Pipeline,
|
|
)
|
|
|
|
from .build_helpers import (
|
|
get_trace_file,
|
|
)
|
|
|
|
__all__ = [
|
|
# Core parsing and filtering
|
|
"parse_file",
|
|
"get_metadata",
|
|
"find_trace_files",
|
|
"read_trace_files",
|
|
# Pipeline processing
|
|
"Pipeline",
|
|
# Template analysis
|
|
"get_template_instantiation_events",
|
|
# Phase breakdown
|
|
"get_phase_breakdown",
|
|
"PhaseBreakdown",
|
|
# Build helpers
|
|
"get_trace_file",
|
|
]
|