Commit Graph

8920 Commits

Author SHA1 Message Date
Mallya, Ameya Keshava 914923f688 Added release trigger for further releases 2025-03-14 13:48:05 -07:00
Kuricheti, Mythreya bbacf70ec7 Add an option to disable perfetto debug annotations in json tool (#258)
* Add opt-in to disable perfetto annotations

Add an env option `ROCPROFILER_DISABLE_PERFETTO_ANNOTATIONS`
to disable perfetto function-arg annotations.

If there are a large number of records, the tests that use this tool timeout
on some machines

* Update iteration kind

* Remove test_retired_correlation_ids for page-migration
2025-03-14 13:06:18 -07:00
cfallows-amd 1c237c1382 Debug logging during intensities calculations when no flops recorded (#608)
Added debug log for when no flops are recorded (total_flops is 0), so AI points will not be plotted.
Removed commented out print statement that is not functional- contains nonexistent method call.

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>
2025-03-14 12:37:19 -04:00
Khatri, Shweta 8503ec36ca Use idomatic approach to extending CMAKE_MODULE_PATH. (#7)
There are many reasons why there may already be a CMAKE_MODULE_PATH defined.
The idiomatic way to extend it in a project is via list(APPEND).

https://github.com/ROCm/rocminfo/pull/97 submitted by @stellaraccident

Co-authored-by: Stella Laurenzo <Stella.Laurenzo@amd.com>
2025-03-14 08:16:56 -07:00
Stella Laurenzo c36ccaaf4b rocr: Search for libnuma with find_package before find_library.
This avoids a false dependence on a system library when not desired.
2025-03-14 08:16:13 -07:00
Trowbridge, Ian ccd1e54293 HIP Streams to Queues Translation (#235)
* rocprofiler_stream_id_t: opaque handle for a stream

- e.g. HIP stream
- the same HIP stream may map to different HSA queues at different points in the application
- added to:
  - rocprofiler_buffer_tracing_hip_api_record_t
  - rocprofiler_buffer_tracing_memory_copy_record_t
  - rocprofiler_callback_tracing_hip_api_data_t
  - rocprofiler_callback_tracing_memory_copy_data_t
---------

Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Co-authored-by: Mark Meserve <mark.meserve@amd.com>
Co-authored-by: Elwazir, Ammar <Ammar.Elwazir@amd.com>
Co-authored-by: Ammar ELWazir <aelwazir@amd.com>
Co-authored-by: Jakaraddi, Manjunath <Manjunath.Jakaraddi@amd.com>
Co-authored-by: Bhardwaj, Gopesh <Gopesh.Bhardwaj@amd.com>
Co-authored-by: Nagaraj, Sriraksha <Sriraksha.Nagaraj@amd.com>
Co-authored-by: U, Srihari <Srihari.U@amd.com>
Co-authored-by: Madsen, Jonathan <Jonathan.Madsen@amd.com>
Co-authored-by: Welton, Benjamin <Benjamin.Welton@amd.com>
Co-authored-by: Benjamin Welton <ben@amd.com>
Co-authored-by: Indic, Vladimir <Vladimir.Indic@amd.com>
Co-authored-by: Benjamin Welton <bewelton@amd.com>
2025-03-14 02:45:13 -07:00
Welton, Benjamin aa88dd44c7 [SWDEV-512693] Iteration based counter multiplexing (#272)
Adds iteration based multiplexing to counter collection. Counter groups can now be specified. These counter groups are collected on a device individually until a specified interval period is reached. When the interval is reached, the next counter group is set to be collected on subsequent kernel executions.

Supplies two new argument types that can be included in YAML/JSON inputs:

pmc_groups: an array of arrays containing the counter groups to run (i.e. [ ["SQ_WAVES", "GRBM_COUNT"], ["GRBM_GUI_ACTIVE"])
pmc_group_interval: the number of kernel invocations on a GPU of a group before rotating to the next group

Note: originally there was a random_seed_generator proposed in the linked ticket, that was not implemented since there are very few instances where you would want the selection of the groups to be randomly generated (and if you do, you can randomly generate the pattern and place it as a large list of groups in pmc_group).

All existing counter functionality should be preserved (selection of counters on specific devices only, profiling of only specific kernels, etc).

---------

Co-authored-by: Benjamin Welton <bewelton@amd.com>
2025-03-14 02:05:36 -07:00
Welton, Benjamin 007285272b [SWDEV-518071] Return HSA not loaded status (device counter collection) (#242)
* [SWDEV-518071] Return HSA not loaded status (device counter collection)

This is a state that a caller would want to know about to understand if
they got no counters because of a failure or if they were trying to
collect counters too early (as is the case in the sample, which can
attempt to collect counters before HSA is inited).

* Minor edit

* format

* [SWDEV-518081] Simplify Metric Loading (#243)

* [SWDEV-518071] Return HSA not loaded status (device counter collection)

This is a state that a caller would want to know about to understand if
they got no counters because of a failure or if they were trying to
collect counters too early (as is the case in the sample, which can
attempt to collect counters before HSA is inited).
* [SWDEV-518324] Add AST update support

Allows the ability for ASTs to be updated (instead of an unchangable
static value). Adds a shared pointer return type to protect against
static destructors/modifications from invalidating potentially in use
AST definitions. No functionality/use changes in this PR.
* [SWDEV-518593] Add updatable dimension cache + fix string issues (#252)

* [SWDEV-518593] Add updatable dimension cache + fix string issues

Updates dimension cache to use the same design pattern as AST/Metrics.

Fixes the string scoping issue seen in ASTs, which appears here as well.

* Add rocprofiler_create_counter

Creates derived counters based on input from the API. This PR does three
things:

1. Adds the API + test case
2. Validates that an AST can be constructed from the counter supplied.
3. Updates metrics, ast, and dimension caches to include the new metric.

Metric should be available for use immediately after the call completes.

Due to the regeneration of ASTs, this call should not be performed in
performance sensitive code.

* Suggestion fixes

---------

Co-authored-by: Benjamin Welton <bewelton@amd.com>

* Minor tweak

---------

Co-authored-by: Benjamin Welton <bewelton@amd.com>
Co-authored-by: Venkateshwar Reddy Kandula <vkandula@amd.com>

---------

Co-authored-by: Benjamin Welton <bewelton@amd.com>
Co-authored-by: Venkateshwar Reddy Kandula <vkandula@amd.com>

* Fixes for comments

---------

Co-authored-by: Benjamin Welton <bewelton@amd.com>
Co-authored-by: Kandula, Venkateshwar reddy <Venkateshwarreddy.Kandula@amd.com>
Co-authored-by: Venkateshwar Reddy Kandula <vkandula@amd.com>

---------

Co-authored-by: Benjamin Welton <bewelton@amd.com>
Co-authored-by: Kandula, Venkateshwar reddy <Venkateshwarreddy.Kandula@amd.com>
Co-authored-by: Venkateshwar Reddy Kandula <vkandula@amd.com>
2025-03-14 01:07:16 -07:00
Nagaraj, Sriraksha c30bb7cbda Adding agent-index (#189)
* Adding agent-index

* review changes

* review comments addressed

* minor fix

* fix CI failure

* review comments

* Fix agent index test and address review comments

* Build Fixes

---------

Co-authored-by: Benjamin Welton <bewelton@amd.com>
2025-03-14 00:51:32 -07:00
Madsen, Jonathan 2fe63d873e Re-enable OpenMP target and testing (#126)
* Re-enable OpenMP target and testing

* Enable openmp target tests on mi200 jobs

* Fix direct self-inclusion of header file

* Enable openmp-target testing on vega20

---------

Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Co-authored-by: Welton, Benjamin <Benjamin.Welton@amd.com>
2025-03-13 22:29:07 -07:00
Trowbridge, Ian 6518c5463d Temporarily Fix Incorrect Kernel Perfetto Trace Duration due to Firmware Timestamp Bug (#134)
* Perfetto duration temp fix setup

* Add timestamp change amounts to ROCP Info

* Groups kernel dispatch info by agent and queue id before sorting. Midpoint interpolation is then performed on the sorted kernels

* Moved dispatch bins into the for-loop

* Fix compilation error by using const ref

* Modified for review comments

* Changed variable names
2025-03-13 20:40:03 -07:00
Verma, Saurabh cffda33d3c Fixes for runtime errors reported in id_decode.hpp:set_dim_in_rec() by Mi300 UndefinedBehaviorSanitizer job (#114)
* Initial fix for runtime error in id_decode.hpp:set_dim_in_rec()

* actual fix: corrected the handling of case where dim==1 (ROCPROFILER_DIMENSION_NONE)

* removing magic numbers

* minor fix

* fix for invalid bool value at runtime

* clang format

* build fix

---------

Co-authored-by: Welton, Benjamin <Benjamin.Welton@amd.com>
Co-authored-by: Benjamin Welton <bewelton@amd.com>
2025-03-13 20:17:32 -07:00
Hila, Nino 98a5ebc3f1 Update palamida.yml
Signed-off-by: Hila, Nino <Nino.Hila@amd.com>
2025-03-13 20:08:56 -04:00
Hila, Nino 0e2064e6a7 Create palamida.yml
Signed-off-by: Hila, Nino <Nino.Hila@amd.com>
2025-03-13 16:07:18 -04:00
Baraldi, Giovanni 970bebafeb Update codeobj disassembly to use comgr va2fo API (#250)
* Update codeobj disassembly to use comgr va2fo API

* Format

* Tidy fix

* Tidy fix

* Review comments

---------

Co-authored-by: Giovanni Baraldi <gbaraldi@amd.com>
2025-03-13 12:35:25 -07:00
Baraldi, Giovanni 346c7149dd SWDEV-518826: Adding nullptr check after gpu name query (#257)
* Fix segfault on fail to query GPU name

* Format

* Review comments

* Format

* Review comment

---------

Co-authored-by: Giovanni Baraldi <gbaraldi@amd.com>
2025-03-13 16:25:16 +00:00
vedithal-amd 6827330135 Fix tests on MI 100 (#609) 2025-03-13 12:07:03 -04:00
Benjamin Welton d2a89a467b rocr: Reset event_age when signals move
Resets event_age when signals move. Prior to this PR, event_age
can become unaligned with hsa_event, causing hangs if the event_age
exceeds the true hsa_event age.
2025-03-13 11:32:16 -04:00
Emily Deng 42f79776cd kfdtest: Fix the childStatus is 0x7f error for KFDDBGTest.HitMemoryViolation
For the case parent goes faster then child, and child hasn't call the second
raise(SIGSTOP), then parent's "waitpid(childPid, &childStatus, 0)" will return,
and the childStatus will be 0x137f, which is SIGSTOP signal id.

Signed-off-by: Emily Deng <Emily.Deng@amd.com>
2025-03-13 13:38:46 +08:00
Emily Deng 91ef44d3ec kfdtest: Fix DeviceSnapshot return fail error for KFDDBGTest.HitMemoryViolation
For the case that the child goes to the second raise(SIGSTOP),
and parent sends PTRACE_CONT, than child exits. Parent will assert at
DeviceSnapshot, as in kfd_ioctl, couldn't get the mm from child pid.

Signed-off-by: Emily Deng <Emily.Deng@amd.com>
2025-03-13 13:38:46 +08:00
Apurv Mishra 85c4b0020a kfdtest: limit GFX VRAM allocation to 1/4 sys mem
reduce the allocated memory for GFX VRAM as
KFD Evict test faced intermittent page faults,
which can be due to larger GFX CS BO size
2025-03-12 13:54:04 -04:00
Yiannis Papadopoulos c7936334cf rocr/aie: Changing variable names 2025-03-11 19:35:21 -04:00
Yiannis Papadopoulos fb33e2e724 rocr/aie: Handle non-HSA_STATUS_SUCCESS during VisitRegion 2025-03-11 19:35:21 -04:00
Apurv Mishra de8f8f076d kfdtest: add blacklist for RHEL9 system
add tests for exclusion when running kfdtest
on RHEL9 system, tested with Navi 31

Signed-off-by: Apurv Mishra <apurv.mishra@amd.com>
2025-03-11 16:40:25 -04:00
Galantsev, Dmitrii f5a4402ce5 RVS - Use config files and make GPU aware
Change-Id: I7a5c80ed4e6122d102e494d1ae38b4b7d40c42cd
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2025-03-11 15:39:16 -05:00
Kandula, Venkateshwar reddy 8735ae4eb0 SWDEV-518356: added check to avoid out of range hip host to device. (#267)
added check to avoid out of range.

Co-authored-by: Venkateshwar Reddy Kandula <vkandula@amd.com>
2025-03-11 15:37:59 -05:00
Bhardwaj, Gopesh b7dc66ad8b Updated changelog for 6.4 (#21) 2025-03-11 11:31:08 -07:00
Sajina PK e605e5d33f Fix for excluding JPEG and VCN activity test. (#135)
JPEG activity recording is currently only supported on MI300 serries.
VCN activity is supported in MI100 also but there is a bug currently being fixed by FW.

- Currently only testing the Activity verification tests for MI300
- Also moves the Jpeg image copying code to after the package is found.
2025-03-11 14:12:28 -04:00
vedithal-amd 30752d1547 selective counter bugfix (#602)
Allow block filter of the form xx.x
2025-03-11 13:34:48 -04:00
vedithal-amd 15edbf475e Standalone binary no self execute fix (#603)
* Fix nuitka command
2025-03-11 13:34:37 -04:00
cfallows-amd 097d30dc5c Add fp8 graph to standalone gui in analysis mode (#600)
Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>
2025-03-11 13:32:37 -04:00
Galantsev, Dmitrii 247c8c7d5e RVS - Disable IET test
Change-Id: I015d68735316d2dc6af18d16f972d9f379b76bcf
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2025-03-11 09:51:08 -05:00
Longlong Yao a254e35fd6 rocr: export pointer type for OnlyAddress
Signed-off-by: Longlong Yao <Longlong.Yao@amd.com>
2025-03-11 10:16:58 -04:00
Longlong Yao 5916467552 libhsakmt: set node_id to 0 for OnlyAddress
Signed-off-by: Longlong Yao <Longlong.Yao@amd.com>
2025-03-11 10:16:58 -04:00
Fei Zheng 7e8d2d2c0e Fix counter collection inconsistency with rocprofv3 2025-03-10 21:05:40 -06:00
vedithal-amd 51c9c6fad3 Update sphinx docs version in develop (#601)
* Update sphinx docs version in develop instead of amd-staging branch
* Add repo admins to pr review
2025-03-10 18:01:37 -04:00
Welton, Benjamin f7e94c1ee8 Add debug printing statement to packet submission (#212)
* Add debug printing statement to packet submission

Adds debug printing to packets being submitted to HSA Queue in device
counting mode.

* Minor change

* Small fix

* formatting

---------

Co-authored-by: Benjamin Welton <bewelton@amd.com>
Co-authored-by: Kandula, Venkateshwar reddy <Venkateshwarreddy.Kandula@amd.com>
2025-03-10 14:02:30 -07:00
cfallows-amd fd288e6d13 Force kaleido version to be no greater than 0.2.1 (#599)
Higher versions (eg. 0.4.1) have external dependencies that are causing errors and forcing early exits without creating roof plots

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>
2025-03-10 15:16:14 -04:00
vedithal-amd 55cf0e237e Analysis report block based filtering for profiling (#566)
* Analysis report block based filtering for profiling

* Profiling mode changes

- `-b` option now additionally accepts metric id(s), similar to `-b` option in analyze mode (e.g. 6, 6.2, 6.23)
    - Only counters mentioned in the selected analysis report blocks will be collected
        - Add parsing logic to identify hardware counters from analysis report blocks
        - Add filtering logic to only write filtered counters in perfmon files
        - Log not collected counters in one line
- `--list-metrics` option added in profile mode to list possible metric id(s) similar to analyze mode
- Write arguments provided during profiling in profiling_configuration.yaml file

* Analysis mode changes

- During analysis mode, only show report blocks selected during profiling
    - If `-b` option is provided in analysis mode, then follow provided filters
- Do not show empty tables in analysis report

* Miscellaneous changes

- Update CHANGELOG
- Add test cases
    - Instruction mix report block filter
    - Instruction mix and Memory chart report block filter
    - Instruction mix report block filter and CPC hardware block filter
    - TA hardware block filter
    - --list-metrics in profile mode should work
- Move binary handler fixtures to conftest.py to avoid importing
  fixtures
- cmake file in tests directory has been updated to compile sample/vmem.hip for testing

* Public documentation changes

- Use the term "Hardware report block" instead of "Hardware block"
- Add documentation for "--list-metrics" option in profile mode
- Add example of filtering by hardware report block such as instruction
  mix and wavefront launch statistics
- Add deprecation warning for hardware component (sq, tcc) based filtering
2025-03-10 14:42:56 -04:00
Peter Park 0aefd15b7b Fix name in package manager install docs (#593)
* Fix post analysis gui in standalone binary (#591)

* Fix post analysis gui in standalone binary

* Add post analysis gui assets and required server libraries for GUI
  server and web page

* Add port forwarding to docker test compose

* Update README me to use `docker compose up` instead of `docker compose run`
  to run containers with port forwarding and to leverage other
  functionalities of docker compose

* Fix rocprofv1 output processing. (#588)

* fix rocprof-compute binary name in package manager install docs

---------

Co-authored-by: vedithal-amd <Vignesh.Edithal@amd.com>
Co-authored-by: xuchen-amd <xuchen@amd.com>
2025-03-10 13:47:30 -04:00
Amber Lin fcf3f91379 kfdtest: Temporarily blacklist KFDNegativeTest
Blacklist KFDNegativeTest.BasicPipeReset from gfx950 until MEC can
support pipe reset on GC 9.5.0.

Signed-off-by: Amber Lin <Amber.Lin@amd.com>
2025-03-10 10:37:19 -07:00
Arif, Maisam 1416c2043d [SWDEV-517717] Maintence Mode Notice (#20)
Signed-off-by: Maisam Arif <Maisam.Arif@amd.com>
2025-03-09 14:23:33 -05:00
Kanangot Balakrishnan, Bindhiya d8de415960 SWDEV-510419: Restore compute partition after memory partition test (#15)
Memory partition test was changing original compute partiton based
on default compute mode. Corrected this to set back to original
compute partition.

Signed-off-by: Bindhiya Kanangot Balakrishnan <Bindhiya.KanangotBalakrishnan@amd.com>
2025-03-09 14:23:33 -05:00
Charis Poag 967493c39a [SWDEV-514998/SWDEV-511662] Fix tests for Guest and BM with static CPX config
Guest: Tests needed to account for not supporting changing compute
partitions.

BM: Tests need to account for invalid responses from Driver (due to
static CPX config).
2025-03-09 14:23:22 -05:00
Galantsev, Dmitrii 9c82706fc1 [SWDEV-508785] Bump version number to 7.6.0
Change-Id: I084f139802f73311f15c68f94bc98f631c7f2bd8
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2025-03-09 14:23:22 -05:00
Charis Poag b951a65cf2 [SWDEV-504146] Fix Device Name
Changes: - Fixed Device Name (market name)
  - Added new API rsmi_dev_market_name_get()
  - Updated tests
  - Updated amdgpu_drm.h to match latest mainline kernel
  - Fixed subsystem ID to only show hex value (not subsystem name)
  - rocm_smi_lib now has a recommended requirement for libdrm
Change-Id: Ic438529e16c8c3dbbdd620da664918148c40c997
2025-03-09 14:23:22 -05:00
Galantsev, Dmitrii 59cbeb57d1 Fix warnings on CXX/linker flags (#12)
1) When `clang` is used as system compiler, libraries were built without respecting LDFLAGS. For example, this affected LTO flags, if any (and it only affected clang, not gcc).

2) Linker flags are registered as CXX flags, which produces warnings during compilation:
```
clang++: warning: -Wl,-z,noexecstack: 'linker' input unused [-Wunused-command-line-argument]
clang++: warning: -Wl,-znoexecheap: 'linker' input unused [-Wunused-command-line-argument]
clang++: warning: -Wl,-z,relro: 'linker' input unused [-Wunused-command-line-argument]
clang++: warning: -Wl,-z,now: 'linker' input unused [-Wunused-command-line-argument]
```

3) Clang does not support `-Wtrampolines` flag:
```
warning: unknown warning option '-Wtrampolines' [-Wunknown-warning-option]
```

4) No linkers support `noexecheap` anymore. `noexecheap` linker flag was a part of PaX patches to GNU ld, (which were dropped in 2017)[https://www.gentoo.org/support/news-items/2017-08-19-hardened-sources-removal.html]. Now ld/ld.lld/ld.gold don't support it and protection of heap is managed by NX bit. Therefore every compiler produces this warning:
```
ld.lld: warning: unknown -z value: noexecheap
```

Closes #210.

Co-authored-by: Sv. Lockal <lockalsash@gmail.com>
2025-03-09 14:23:22 -05:00
Johar, Adel fc61e40506 Docs: Fix broken links, warnings and use automodule (#11)
- Fixes the broken links in rocm_smi.h
- Uses automodule instead of autofunction in docs/reference/python_api.rst
- Fixes some warnings during docs build
- Update some of the versions in requirements.txt
2025-03-09 14:23:22 -05:00
Mallya, Ameya Keshava a938e743f0 Added !verify trigger 2025-03-09 14:23:22 -05:00
Kanangot Balakrishnan, Bindhiya 6337f7b05b [SWDEV-481004] Fix for incorrect gfx_version number (#8)
The target_graphics_version was not formatted properly and was
showing incorrect Target Name. Corrected this by fomatting
major, minor and revision numbers.

Signed-off-by: Bindhiya Kanangot Balakrishnan <Bindhiya.KanangotBalakrishnan@amd.com>
2025-03-09 14:23:22 -05:00