* Added check in Queue::sync to verify that there is a callback for every dispatch
* Removed new atomic, using get_balanced_signal_slots() atomic with initial value of NUM_SIGNALS to verify dispatches complete
* Use queries instead of views in summary.py
* Export queries when created
* Remove HIP and HSA from output
* Fix domain query
* Export summary queries in the main function
* Fix comments and variable names
* Change syntax for old python versions
---------
Co-authored-by: Young Hui <young.hui@amd.com>
* add more derived metrics for navi4.
* addr comments
* addr comments, and add more derived counters.
* EOF.
* misc.
* remove duplicate counter.
* misc.
* Remove gfx12 architecture definition for ldslatency
* remove extra architectures for gfx12.
* use wgp for normalization
* move these changes to another PR.
---------
Co-authored-by: Venkateshwar Reddy Kandula <venkateshwar.kandula1306@gmail.com>
* Remove config checks for stream and kernel rename data collection
* Updated csv generation to check if kernel rename is on before calling get_kernel_name
* Update metadata to use kernel_rename bool argument
* Formatting + unconditionally store kernel name in rocpd
* Readded kernel rename parameter after rebase
* Fixed rebase conflicts
* Updated comment in line with github comments
* Added check in rocpd csv.cpp to output kernel name if region name is empty
* Add test for kernel rename
---------
Co-authored-by: Ian Trowbridge <Ian.Trowbridge@amd.com>
- Clean up and standardization of MIT licenses after discussion with legal team.
- Update README.md with blurb for top-level files.
- MIT License explicitly mentioned for relevant projects.
- Removal of years.
- Copyright attribution should be to `Advanced Micro Devices, Inc.` and not `AMD ROCm(TM) Software`
- Removal of `All rights reserved.`
- Reduce line width of the text for readability.
- Add clear visual separators for additional licenses.
- Convert text files to markdown format for aforementioned separators.
- Update build scripts to point to renamed files.
- Fixed SMI doc references
Co-authored-by: Maisam Arif <Maisam.Arif@amd.com>
* Increase rocDecode code coverage and add version check
* Update rocJPEG tests
* Fix rocJPEG tests
* Enable building tests/samples in rocm release compat workflow
* Readded rocJPEG test skips
* formatting
* Adding ROCm libraries for the code-coverage job
* Added return value check for error message and updated compatability to enable tests
* Disable rocm_release_compatibility samples and tests until openmp issue is resolved
---------
Co-authored-by: Ian Trowbridge <Ian.Trowbridge@amd.com>
Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Co-authored-by: Jonathan R. Madsen <Jonathan.Madsen@amd.com>
* rocprofv3-avail scrip fix
* addressing feedback
* formatting
* rocprofv3 and rocprofv3-avail to display help when no args are provided
---------
Co-authored-by: gobhardw <gopesh.bhardwaj@amd.com>
* Updated stream code to handle special cases when stream value is 0x01 or 0x02
* Removed extra definitions and updated tests to account for special case
* Modified stream.cpp so that each thread assigned a unique stream ID when hipStreamPerThread is used as stream value. Modified tests to check that threads are assigned unique, repeated values when hipStreamPerThread is called
* Updated idx_offset, stream_map, and thread counter to be in one struct.
* Update stream.cpp to only use add_stream() and update tests for seperate unit test for hipStreamPerThread
* Remove unecessary comment
* Removed unecessary line
* Updated tests and stream.cpp to update stream ID correctly
* Updated test structure
* Removing regex from the tool
* Adding alternative for regex regarding handling
* Adding ROCpd
* Removing regex include
* Apply suggestion from @jomadsen_amdeng
Co-authored-by: Madsen, Jonathan <Jonathan.Madsen@amd.com>
* Apply suggestion from @jomadsen_amdeng
Co-authored-by: Madsen, Jonathan <Jonathan.Madsen@amd.com>
* Apply suggestion from @jomadsen_amdeng
Co-authored-by: Madsen, Jonathan <Jonathan.Madsen@amd.com>
* Adding Standalone Regex Header File
* Fixing Regex to handle grouping and
* Fixing Regex to handle grouping and
* Fixing Regex to handle grouping and
* Formatting Fix
* Update rocprofiler-sdk-restrictions.yml
* Separating regex.hpp to source and header & Adding Tests for parity with std::regex
* Update regex.cpp
* Using snake_case for naming and addressing some comments
* Adding more tests & README for regex implementation
* Updating rocprofiler sdk restrictions workflow
* Updating more tests & README for regex implementation
* Update README_regex.md
* Rename README_regex.md to README.md
---------
Co-authored-by: Ammar ELWazir <aelwazir@amd.com>
Co-authored-by: Elwazir, Ammar <Ammar.Elwazir@amd.com>
Co-authored-by: Madsen, Jonathan <Jonathan.Madsen@amd.com>
* Using semaphore to sync with all peer processes in finalization stage
[rocprofv3] Implement synchronization using POSIX semaphore in finalization
* clang format code
* clang 11 format code
* Add process sync option for rocprofv3
* Default value of process sync is false
* Update source/lib/rocprofiler-sdk-tool/tool.cpp
Apply suggestion by Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* update according to comments
* add new line to helper.hpp
---------
Co-authored-by: Huanran Wang <huanrwan@amd.com>
Co-authored-by: Huanran Wang <huanran.wang@amd.com>
Co-authored-by: Madsen, Jonathan <Jonathan.Madsen@amd.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
`interop.cpp` uses `std::find_if` without a relevant include file, breaking compilation with Clang/libc++.
Co-authored-by: Sv. Lockal <lockalsash@gmail.com>
* Switching from RHEL 8 to RHEL 9
* Switching from RHEL 8 to RHEL 9
* Switching from RHEL 8 to RHEL 9
* Fixing ROCPD for older Python Versions
* Formatting and checking if SQRT is available or not
* Formatting and checking if SQRT is available or not
* Formatting and checking if SQRT is available or not
* Formatting and checking if SQRT is available or not
* Formatting and checking if SQRT is available or not
* Update projects/rocprofiler-sdk/source/lib/python/rocpd/summary.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update summary.py
* Update summary.py
* Update projects/rocprofiler-sdk/source/lib/python/rocpd/summary.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update projects/rocprofiler-sdk/source/lib/python/rocpd/summary.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update summary.py
* Update summary.py
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Adding new trace decoder record types and new ATT parameters
* Add compatiblity with decoder 0.1.2
* Added RT
* Format
* Add logging to sdata values
* Review comment
* Review comments
* Update projects/rocprofiler-sdk/source/include/rocprofiler-sdk/experimental/thread-trace/trace_decoder_types.h
* Changing CDash Project
* Fixing CI
* Fixing AQLProfile CDash
* Fixing CI
* Fixing CI
* Fixing CI
* Fixing CI
* Fixing CI
* Fixing CI
* Fixing CI
* Fixing CI
* Fixing CI
* Fixing CI
* Fixing CI
* Fixing CI
* Fixing CI
* Fixing CI
* Fixing CI
* Fixing CI
* Fixing CI
* Fixing CI
* Fixing CI
Problem with original test:
- Created circular dependencies between queues:
* Queue1: Kernel A → Barrier(waits for signal_2) → Kernel C
* Queue2: Barrier(waits for signal_1) → Kernel B → sets signal_2
- With strict "one kernel at a time" serialization, this created deadlock:
* Queue1 executed Kernel A, then blocked on barrier waiting for signal_2
* Serializer switched to Queue2, but Queue2 was blocked waiting for signal_1
* Neither queue could proceed: Queue1 needed Queue2's Kernel B to complete,
but Queue2 couldn't start until Queue1 finished completely
- Test would hang indefinitely at hsa_signal_wait_relaxed() for signal_2
Solution implemented:
- Reordered packet submission to eliminate circular dependencies
- Ensured signal producers execute before consumers need them:
* Kernel A produces signal_1 before Queue2's barrier needs it
* Kernel B produces signal_2 before Queue1's continuation needs it
- Dependencies now flow forward without cycles, allowing serializer progress
Refactoring changes:
- Extract common functionality into helper functions:
* create_completion_signal() for signal creation
* create_queue() for queue creation
* submit_kernel_packet() for kernel dispatch packets
* submit_barrier_packet() for barrier packets
- Add comprehensive documentation explaining expected execution pattern
- Simplify main() function making the dependency flow more readable
Co-authored-by: Benjamin Welton <bewelton@amd.com>
[ROCm/rocprofiler-sdk commit: b5e1645a14]
* Adding GPU index as a parameter for ATT
* Tidy fix
* Using tokenize
* Update tests/rocprofv3/advanced-thread-trace/CMakeLists.txt
Co-authored-by: Indic, Vladimir <Vladimir.Indic@amd.com>
* Update tests/rocprofv3/advanced-thread-trace/CMakeLists.txt
* Adding error logging. Using idx instead of id.
---------
Co-authored-by: Giovanni <gbaraldi@amd.com>
Co-authored-by: Indic, Vladimir <Vladimir.Indic@amd.com>
[ROCm/rocprofiler-sdk commit: fd6f96ffb5]
* Reverted header and field location for csv memory allocation and updated tests
* Updated example csv file and made small update
[ROCm/rocprofiler-sdk commit: 533a8329d8]