Commit Graph

390 Commits

Author SHA1 Message Date
vedithal-amd 86e243201e Fix SPI block counter limit (#780)
* Fix SPI counter collection limit

* Update counter collection limits from aqlprofile

* Remove special handling for MI 350 SPI pipe counters

[ROCm/rocprofiler-compute commit: 6e1bbb5efb]
2025-06-27 14:07:56 -04:00
vedithal-amd 1d59cbb06d Add support for MI 100 with rocprofiler-sdk (#768)
* Add custom rocprofiler-sdk counter definitions file for MI 100

* Update CHANGELOG to mention that accumulation counters will not be
  collected when profiling on MI 100 using rocprofiler-sdk/rocprofv3

* Migrate accum_counters.yaml to code

[ROCm/rocprofiler-compute commit: a95a45d69a]
2025-06-26 09:03:18 -04:00
xuchen-amd 7ab4a3f03f GUI: prevent big number overflow (#772)
* Prevent number overflow by formatting values.

* Improve value formatting logic based on comments.

[ROCm/rocprofiler-compute commit: 92ce4732bc]
2025-06-24 16:27:06 -04:00
vedithal-amd 9873460265 Fix counter collection for MI 350 (#764)
* Fix TCC counter collection bug
* Fix accumulate counter collection
* Fix formatting

[ROCm/rocprofiler-compute commit: 5950a02ff6]
2025-06-21 08:48:25 -04:00
jamessiddeley-amd 979c59fadc added progress printout in rocprof-compute profile (#727)
* added progress printout for profiler

* added comments and fixed readability

* removed redundant newlines

* moved format_time helper function to utils

* removed tqdm and redundant time calc

[ROCm/rocprofiler-compute commit: 036866fc12]
2025-06-18 14:09:09 -04:00
xuchen-amd 9d50115bd7 Integrate roofline in tui (#762)
* Update changelog, remove unused code.

* enable roofline in TUI.

* Remove roofline section when data not available.

* Fix workload dir path.

[ROCm/rocprofiler-compute commit: 5d8fd55e36]
2025-06-18 13:58:42 -04:00
xuchen-amd 0b6e03adb0 CLI: enable roofline plot (#760)
* enable roofline plot in cli.

* Add roofline to analysis config.

* Unify global variables.

* Disable roofline for baseline comparison and gfx908.

* Add check for roofline.csv

[ROCm/rocprofiler-compute commit: 80159ee117]
2025-06-18 13:19:58 -04:00
Vladimir Indic f49b70142f [PC Sampling] Separate counts for issued and stalled samples (#756)
[ROCm/rocprofiler-compute commit: 451be8a600]
2025-06-16 15:09:21 -06:00
ywang103-amd dab2c49342 fix broken test with --cols options (#750)
[ROCm/rocprofiler-compute commit: bb0c417871]
2025-06-12 19:45:24 -04:00
vedithal-amd 89bc1fc812 Change default rocprof to rocprofv3 (#748)
* Revert of https://github.com/ROCm/rocprofiler-compute/pull/738

* Change default rocprof backend interface to rocprofv3

* Add MI 350 support in documentation

* Added known issue that MI 100 profiling will not work unless rocprofv1
  is explicitly opted in

* Remove MI 50 soc gfx python class since MI 50 is not supported

[ROCm/rocprofiler-compute commit: d27ee69b52]
2025-06-12 15:45:11 -04:00
vedithal-amd 9e743cdff2 Remove rocscope related code and add deprecation warning for mongo db usecase (#744)
* Remove rocscope related code

* Add deprecation warning for database update mode which is used for grafana and mongodb functionality

[ROCm/rocprofiler-compute commit: cdd41dee40]
2025-06-12 14:21:24 -04:00
David Galiffi a153c96c7b Copyright Header Compliance (#745)
- for SWDEV-537492

[ROCm/rocprofiler-compute commit: 1cd989a110]
2025-06-12 12:02:58 -04:00
cfallows-amd 192c63f2f6 Update roofline binaries (#741)
Update roofline binaries from rocm-amdgpu-bench
- uses hip to find number of CUs dynamically instead of hardcoded values in table

Remove duplicate AI plot points printing
- only print ai points once on plot since we are measuring using total flops and value is same
- remove datatype from legend labels

---------

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

[ROCm/rocprofiler-compute commit: 24d3e7eecd]
2025-06-10 15:43:56 -04:00
vedithal-amd c7cea9c971 Revert default interface to rocprof v1 (#738)
* Add deprecation warning for rocprof v1 / v2 / v3 interfaces to use
  rocprofiler-sdk interface

[ROCm/rocprofiler-compute commit: a1ef3425c6]
2025-06-09 16:39:11 -04:00
Fei Zheng d750ea6616 TUI improvement (#732)
[ROCm/rocprofiler-compute commit: 96aa04fb13]
2025-06-09 11:29:10 -06:00
vedithal-amd dd39c649d9 Bugfix for rocprofiler sdk interface not working in MI 200 (#733)
[ROCm/rocprofiler-compute commit: 721053bd03]
2025-06-09 12:33:25 -04:00
Fei Zheng 9a392edb21 CLI: enable mem_chart for single run (#643)
[ROCm/rocprofiler-compute commit: e5b31af2a4]
2025-06-06 16:15:56 -06:00
Fei Zheng 243aa68712 Support stochastic pc sampling
[ROCm/rocprofiler-compute commit: d756aeb3fd]
2025-06-06 12:43:52 -06:00
ywang103-amd d1feafe4db Tcc new format input yaml (#723)
[ROCm/rocprofiler-compute commit: e5c7d4795a]
2025-06-04 12:24:57 -04:00
xuchen-amd 6c40056aa9 Add chip specs (#681)
* Add perfmon config spec, enhance memory partition info.

* Add gfx950 perfmon config.

* Add High Freq variants in gfx942.

* Add backup detection methods for gpu model.

* Improve get_num_xcds logic by adding detection of 1to1 arch-to-compute_partition logic.

* Add default compute partition settings spx:8 for when gpu_model=None.

* Update gpu spec tests.

* Add backup compute partition detection.

---------

Signed-off-by: xuchen-amd <xuchen@amd.com>

[ROCm/rocprofiler-compute commit: f0fad19e8b]
2025-05-29 16:35:34 -04:00
Ben Richard 7fd93cfed3 Upgrade to Dash 3.0 (#719)
[ROCm/rocprofiler-compute commit: 45296ceb46]
2025-05-29 14:36:03 -04:00
cfallows-amd 9eaeb16acc Rename roofline bins (#717)
Rename roofline bins, remove rocm version in naming. Change method for binary search.

---------

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

[ROCm/rocprofiler-compute commit: bbe2e17b80]
2025-05-28 14:55:51 -04:00
cfallows-amd 689746e2cd Add F4 F6 to roofline for MI350 series (#709)
Add roofline bins with FP4 FP6 datatypes enabled for gfx950 arch

---------

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

[ROCm/rocprofiler-compute commit: cb2d928ecf]
2025-05-26 18:36:31 -04:00
vedithal-amd 6dc3fad1c7 Implement interface to rocprofiler sdk (#695)
* Setting ROCPROF=rocprofiler-sdk environment variable will use rocprofiler-sdk C++ library instead of rocprofv3 python script

* Add runtime option --rocprofiler-sdk-library-path to use custom version of rocprofiler sdk library
    * Add --rocprofiler-sdk-library-path conftest option for tests

* Setup appropriate environment variables to inject rocprofiler sdk code to user command
    * Add env. vars. for counter collection and filtering
    * Add env. vars. for pc sampling

* Use python bindings to list counters supported by rocprofiler sdk

[ROCm/rocprofiler-compute commit: 5cb86e31fc]
2025-05-13 10:48:21 -04:00
Ben Richard ceb2df6345 Avoid crash when profiling data not generated (#694)
* Avoid crash when profiling data not generated

-Handle case where program has no kernel launches
-Improve error messages
-Avoid roofline when profiling data is missing

Signed-off-by: benrichard-amd <ben.richard@amd.com>

* Update other soc_gfx files to catch missing pmc_perf.csv

* Fix formatting

* Fix incorrectly ordered imports

---------

Signed-off-by: benrichard-amd <ben.richard@amd.com>

[ROCm/rocprofiler-compute commit: 35493f440c]
2025-05-05 16:09:48 -04:00
cfallows-amd c8d67fc97e Enable roofline for MI350 series (#677)
Rework of roofline binaries generated from rocm-amdgpu-bench
- removed arch identifier in bin name
- removed rocm5 bins altogether

Updated required distros for roofline
- updated distro checks and bin naming
- moved up ubuntu20.04->22.04 and sles15.3->15.6 per rocm support

Enabled ctests for mi350 for test_roof_*
- removed mi350 series check to skip these specific tests

---------

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

[ROCm/rocprofiler-compute commit: 41e73650d5]
2025-04-28 16:08:23 -04:00
Daniel Su 935e2b53b8 Set rocprofV3 agent-index to absolute (#675)
Signed-off-by: Daniel Su <danielsu@amd.com>

[ROCm/rocprofiler-compute commit: b77fcf575e]
2025-04-28 15:38:07 -04:00
xuchen-amd af114a1539 Add test for gfx942 number of xcds. (#674)
* Add test for 9fx942 number of xcds.

* Improve the structure of mi gpu specs, add num_xcds_spec_class test.

* Add to ctest.

---------

Signed-off-by: xuchen-amd <xuchen@amd.com>

[ROCm/rocprofiler-compute commit: 85bfa73e2c]
2025-04-28 11:29:14 -04:00
xuchen-amd 703dc4d6ad process hip trace output. (#654)
Signed-off-by: xuchen-amd <xuchen@amd.com>

[ROCm/rocprofiler-compute commit: ee73c2a119]
2025-04-22 18:31:47 -04:00
ywang103-amd 303b846a13 change default rocprof version to v3 when not setting env variable (#673)
[ROCm/rocprofiler-compute commit: 3e09f038e5]
2025-04-16 12:38:20 -04:00
cfallows-amd 10d304f365 Add roofline support for rhel10 (#667)
-add check for rhel10 (platform:el10), force use rhel roof binary
-update changelog in 'unreleased- added' section

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

[ROCm/rocprofiler-compute commit: c056a39db4]
2025-04-11 17:45:53 -04:00
cfallows-amd ffa47d197e Fix rpath checks during RPM generation on RHEL10 (#669)
Invalid rpath on roofline binaries reported during build testing for new RHEL10 addition, removed rpaths to prevent rpath check failures.

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

[ROCm/rocprofiler-compute commit: 03732d3719]
2025-04-11 17:40:59 -04:00
xuchen-amd 76e7d942f6 Add mi325 specs. (#663)
[ROCm/rocprofiler-compute commit: e7a7af539a]
2025-04-07 17:03:40 -04:00
cfallows-amd 04919c13e0 Fixes for roofline datatype plot outputs (#659)
Profile mode:
Fix roofline plots for datatypes that have peakVALU only. Check for highest roofline to plot the bandwidth lines to proper height, don't rely on existence of peakMFMA for every datatype.
Analyze mode:
Add roofline-data-type option for viewing pdfs in standalone gui. Default is same as profile mode, FP32.

---------

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

[ROCm/rocprofiler-compute commit: c45e20f325]
2025-04-07 12:10:37 -04:00
vedithal-amd 27585a8a2b Support MI 350 profiling (#632)
* Add MI 350 hardware information

* Refactor MI GPU YAML file and corresponding interface

* Add SoC file for gfx950 architecture

* Add analysis report configs for MI 350 containing existing metrics

* Add placeholder None valued metrics for previous architectures to make
  baseline comparison work

* Enable testing on MI 350

* Analysis config metric changes
    - SPI changes
        - Update metric formula for default SPI pipe counter
             - Use efficiently collected pipe wise SPI counters
        - Add SPI Wave Occupancy
        - Add Scheduler-Pipe Wave Utilization
        - Update formula for VGPR Writes
        - Add Scheduler-Pipe FIFO Full Rate
   - CPC changes
	- Add CPC SYNC FIFO Full Rate
	- Add CPC CANE Stall Rate
        - Add CPC ADC Utilization
   - SQ changes
        - Add VALU co-issue efficiency
        - Add F6F4 datatype metrics
        - Update formula for total FLOPs by adding F6F4 counters
        - Add LDS STORE / LOAD / ATOMIC metrics
        - Add LDS STORE / LOAD / ATOMIC bandwidth
        - Add LDS FIFO and TA ADDR / CMD / DATA FIFO full rates

* Collect TCP_TCP_LATENCY_sum only for gfx950 (MI 350)

* Do not inject SQ_ACCUM_PREV_HIRES unnecesarily

* Do not hardcode memory and shader clock speeds

* Write num_hbm_channels to sysinfo.csv instead of hbm_bw while profiling

* Move generate sysinfo.csv to pre processing step of profiling

* Add warnings to use --specs-correction for missing sysinfo.csv values during analysis phase

* Update CHANGELOG

* Analysis phase warning to use --specs-correction when needed

[ROCm/rocprofiler-compute commit: f9aa7be97c]
2025-04-03 02:21:18 -04:00
xuchen-amd 35acf4c410 remove flask debug msg (#655)
* Suppress Flask warning message in quiet mode.

* Init args.gui if dne.

[ROCm/rocprofiler-compute commit: c7202923b0]
2025-04-02 20:29:39 -04:00
xuchen-amd abc1c336f6 Improve chip id logic (#648)
* Improve chip id logic, add missing physical and virtual chip ids.

[ROCm/rocprofiler-compute commit: e77dd1a1ab]
2025-04-01 12:18:07 -04:00
ywang103-amd 6e1cab4e03 re-write fucntion that detects whether v1 is in use to avoid false negative result when ROCPROF is not set (#647)
[ROCm/rocprofiler-compute commit: 7b38766caa]
2025-03-31 16:40:53 -04:00
Fei Zheng ee5df82698 Support host-trap PC Sampling on CLI (beta version)
[ROCm/rocprofiler-compute commit: 9bacad0876]
2025-03-28 16:51:49 -06:00
Ben Richard b0844b42bb Read Accum_VGPR_Count from rocprof output if provided (#645)
[ROCm/rocprofiler-compute commit: 9bd45f5135]
2025-03-28 10:43:24 -04:00
ywang103-amd ad070d94db fix the wrong number of channels of TCC counters to put in pmc txt file (#633)
[ROCm/rocprofiler-compute commit: 7c1f14123a]
2025-03-27 18:15:41 -04:00
ywang103-amd 79a333231c fix ip block test by changing ways of extracting agent id (#639)
[ROCm/rocprofiler-compute commit: cdb93b7a4c]
2025-03-27 16:28:00 -04:00
cfallows-amd c615c12209 Add datatypes for roofline profiling (#642)
Rebuild of rocm-amdgpu-bench roofline binaries for MI200/MI300 systems with rocm6.
Added datatype options to roofline feature.

---------

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

[ROCm/rocprofiler-compute commit: 6cb5bcdbe9]
2025-03-26 21:07:48 -04:00
Cole Ramos 088fa6a4ac Fix incorrect logging in mi_gpu_spec.py (#626)
* Move console logging to logger function to avoid circular dependency in utils module

Signed-off-by: coleramos425 <colramos@amd.com>

* Apply python formatting

Signed-off-by: coleramos425 <colramos@amd.com>

* Remove the default StreamHandler before adding the custom

 If you are not explicitly removing this default handler, it could be causing duplicate outputs.

Signed-off-by: coleramos425 <colramos@amd.com>

* Fix lingering bugs from merge conflict resolution

Signed-off-by: coleramos425 <colramos@amd.com>

* Comply to python formatting and update pre-commit hook helper

Signed-off-by: coleramos425 <colramos@amd.com>

* Removing redundant console_log call as the get_mi300_num_xcds() call, otherwise ALL Mi200 profiling runs will print this message

Signed-off-by: coleramos425 <colramos@amd.com>

---------

Signed-off-by: coleramos425 <colramos@amd.com>

[ROCm/rocprofiler-compute commit: 04f92b72a9]
2025-03-25 17:06:37 -05:00
xuchen-amd a851c977c7 Improve readability. (#628)
[ROCm/rocprofiler-compute commit: 3294c495f5]
2025-03-25 17:49:42 -04:00
Cole Ramos 796241206d Generalize locale checker to support more UTF-8 types (#623)
Signed-off-by: coleramos425 <colramos@amd.com>

[ROCm/rocprofiler-compute commit: 38c7dce84a]
2025-03-25 16:39:02 -05:00
ywang103-amd d8c291a29d fix the crash related to agent id in rocprofv3 (#631)
[ROCm/rocprofiler-compute commit: 983f902fa0]
2025-03-25 16:33:12 -04:00
ywang103-amd 7e94296408 disable TCC flattern for rocprofv1 to avoid its crash becasue of unsupported implementation (#629)
[ROCm/rocprofiler-compute commit: a92bf96e56]
2025-03-25 15:12:19 -04:00
cfallows-amd 5079a1803f Datatype selection option for roofline (#624)
Added command line option to specify which datatype(s) to capture into the roofline PDF(s).
All datatypes are still collected by roofline call if applicable, but only specific datatypes are plotted into PDF outputs. Will dump out all datatypes into one graph, but separate FP from Int into two graphs if needed. Will skip datatype and give error message if the datatype is not valid on a particular gpu arch.
Default is FP32

Reworked roofline calls and plotting to be general enough such that any new datatypes added into rocm-amdgpu-bench can easily be reflected in rocprof-compute with simple modifications in roofline_calc.py.

Adjusted ctest to reflect expected default pdf outputs from roofline.

---------

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

[ROCm/rocprofiler-compute commit: a492e92034]
2025-03-25 15:02:09 -04:00
vedithal-amd 67b20baf11 Remove static pmc files (#606)
* Delete static pmc files

* Counter parsing changes
	- Move counter parsing logic to another function
	- Fix counter parsing regex
	- Log list of counters being collected

* Sanity check counters supported by rocprof
	- Emit warning instead of error since rocprof support counters
	  list might be inaccurate

* Do not collect these counters
	- TCP_TCP_LATENCY_sum (except for gfx908 and gfx90a)
	- SQC_DCACHE_INFLIGHT_LEVEL

* Update logic of writing TCC channel counter definition yaml file

* Fix bug in capture_subprocess_output() utility function
	- Make logging optional in capture_subprocess_output()

* Fix formatting and tests

* Update changelong

[ROCm/rocprofiler-compute commit: 58cf702d40]
2025-03-24 17:43:29 -04:00