Repository navigation
[rocprof-compute] Generalize Roofline - #325
Merged
jamessiddeley-amd merged 26 commits intoAug 20, 2025
Merged
Conversation
…sers/jamessiddeley-amd/generalize-roofline
…sers/jamessiddeley-amd/generalize-roofline
…sers/jamessiddeley-amd/generalize-roofline
…sers/jamessiddeley-amd/generalize-roofline
…sers/jamessiddeley-amd/generalize-roofline
xuchen-amd
reviewed
Aug 13, 2025
…sers/jamessiddeley-amd/generalize-roofline
…sers/jamessiddeley-amd/generalize-roofline
jamessiddeley-amd
marked this pull request as ready for review
August 15, 2025 18:55
jamessiddeley-amd
requested review from
cfallows-amd,
coleramos425,
feizheng10,
vedithal-amd and
ywang103-amd
as code owners
August 15, 2025 18:55
feizheng10
approved these changes
Aug 16, 2025
feizheng10
left a comment
Contributor
There was a problem hiding this comment.
LGTM.
BTW, we never really support/verify roofline on MI100...@carrie please help to check
…sers/jamessiddeley-amd/generalize-roofline
Closed
vedithal-amd
approved these changes
Aug 18, 2025
vedithal-amd
left a comment
Contributor
There was a problem hiding this comment.
Left minor comments
cfallows-amd
pushed a commit
that referenced
this pull request
Aug 18, 2025
feizheng10
approved these changes
Aug 19, 2025
SwRaw
pushed a commit
that referenced
this pull request
Aug 19, 2025
…how counters being profiled in metadata. (#325) * expose dimensional info in rocprofiler_counter_info_v1_t. * add counter_id in dim info. * address review comments * format. * address comments. * use array of pointers for dimensions_instaces. * format and comments. * address comments. * new line. * Update counter_defs.yaml * Update counter_defs.yaml * Update counter_defs.yaml * counter_defs. * format counter defs. * format counter defs. * format counter defs. * show only counters being profiled in metadata. * Format. * use config for counters and fix warnings. * add version for rocprofiler_counter_dimension_info_v1_t struct. * rename rocprofiler_counter_record_dimension_instance_v1_info_t. * account device id from pmc for counters metadata. * move dim structs to counters.h. * address comments to compare value. * fix tests. * Address comments. use pointer of arrays for ABI. * rebase. * fix build error. * use separate metadata::init() for rocprofv3. * also print not found counters. * precompute all the perf counters needed to be in metadata. * Misc. * format * Format. * rocprofiler::sdk::container::c_array * Address comments. * source/lib/output/metadata.cpp * lint. * add unit test for c_array. * add unit test and serialization support for c_array container. * Misc. * Clean files. * Format. * clang-tidy. * add more checks to c_array. * misc. typo * Addr comments. --------- Co-authored-by: Venkateshwar Reddy Kandula <vkandula@amd.com> Co-authored-by: Jonathan R. Madsen <Jonathan.Madsen@amd.com> [ROCm/rocprofiler-sdk commit: bf0fad1]
Collaborator
|
/AzurePipelines run rocm-ci-caller |
|
Azure Pipelines successfully started running 1 pipeline(s). |
jamessiddeley-amd
deleted the
users/jamessiddeley-amd/generalize-roofline
branch
August 20, 2025 13:58
systems-assistant Bot
pushed a commit
to ROCm/rocprofiler-compute
that referenced
this pull request
Aug 20, 2025
* per kernel analysis Roofline * added per-kernel eval_metric calculation with display * fixed typo * updated tty.py show_all() * formatting * fixed ctest failures and updated equations * formatting * updated metric descriptoins * review tweaks * update docs * added roofline gui analysis * updated GUI docs * updated print statement * comment tweaks and ran ruff formatting [rocm-systems] ROCm/rocm-systems#325 (commit 5840940)
sluzynsk-amd
pushed a commit
that referenced
this pull request
Aug 21, 2025
* per kernel analysis Roofline * added per-kernel eval_metric calculation with display * fixed typo * updated tty.py show_all() * formatting * fixed ctest failures and updated equations * formatting * updated metric descriptoins * review tweaks * update docs * added roofline gui analysis * updated GUI docs * updated print statement * comment tweaks and ran ruff formatting
| t_df = OrderedDict() | ||
| t_df["pmc_perf"] = pd.read_csv(pmc_perf_csv) | ||
|
|
||
| self.__ai_data = calc_ai_profile( |
Contributor
There was a problem hiding this comment.
Seems like we missed handling rocpd processing dataframe here
xuchen-amd
added a commit
that referenced
this pull request
Aug 21, 2025
1 task done
ammallya
pushed a commit
that referenced
this pull request
Nov 17, 2025
Change-Id: Ide3563a876cb530d0e80676e78f36f18a233a3ba Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
ammallya
pushed a commit
that referenced
this pull request
Nov 18, 2025
Change-Id: Ide3563a876cb530d0e80676e78f36f18a233a3ba Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com> [ROCm/amdsmi commit: bd82e88]
ammallya
pushed a commit
that referenced
this pull request
Nov 21, 2025
Change-Id: Ide3563a876cb530d0e80676e78f36f18a233a3ba Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com> [ROCm/amdsmi commit: bd82e88]
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
This PR extracts the roofline equation out of python code in roofline_calc.py to one section in YAML config, in which can be easily configured for each arch.
These YAMLS are per-kernel roofline analysis, allowing users to analyze individual kernel performance characteristics for roofline methodology using equations from a single-source of truth YAML (0400_roofline.yaml).
Technical Details
Added roofline YAML configuration (
0400_roofline.yaml) defining metrics based directly off ofAI_Dataobject python equations incalc_ai()tounified_configs.yamlforgfx90a,gfx908,gfx940,gfx941,gfx942, andgfx950.Refactored
calc_ai()tocalc_ai_profile()which carries over the same legacy hardcoded calculations for profiling use (before analysis configs are available)Modified
calc_ai()inroofline_calc.pytocalc_ai_analyze()to process individual kernels rather by callingeval_metric()on each kernel.Added
roofline.csvas an analysis runtime dependancy to read and display respective empirical peaks for roofline metricsUpdated
analysis_cli.pyto generate per-kernel roofline plots and display kernel-specific metrics in the CLI outputModified
cli_generate_plotto display plot points calculated fromcalc_ai_analyze()Enhanced
tty.pyshow_all()function to display per-kernel roofline metrics withcli_style = "Roofline"in organized sections (4.1 Roofline Rate Metrics, 4.2 AI Plot Points) (screenshots in ticket)Added web Gui integration (screenshots in ticket)
Updated docs
Complete TUI integration will be moved to a later implementation.## Test Plan
Pass 100% on local testing suite
Test Result
Local ctest pass 16/16
Submission Checklist