* PC sampling: online partial PC sampling decoding
PC sampling service decodes a PC sample partially
by replacing the PC with an id of the loaded code object instance
containing PC and the offset of the PC within that code object instance.
* PC sampling: marker records removed
* PC sampling parser: minor doc update in mock
* PC sampling: introducing rocprofiler_pc_t
* NULL value of the code object id introduced.
* Clarifying documenation related to PC offset.
* PC offset documentation improvement
* PC sampling parser benchmark: Reducing the number of samples to recreate half of performance.
[ROCm/rocprofiler-sdk commit: 93e82663d9]
* Update HSA ABI checks for tracing
* Update lib/common/abi.hpp
- perform ABI versioning checks even when `ROCPROFILER_CI` is not defined (or ROCPROFILER_CI=0)
* Enforce versioning size for various HSA AmdExt step versions + hsa_amd_enable_logging support
* Minor HIP abi.cpp updates
[ROCm/rocprofiler-sdk commit: 7a639f3439]
- ROCPROFILER_API after function
- use rocprofiler_tracing_operation_t in lieu of uint32_t where appropriate
- rocprofiler_tracing_operation_t is not int32_t typedef (formerly uint32_t)
- use const T* instead of T* where appropriate
[ROCm/rocprofiler-sdk commit: bb25376480]
* Add kernel profiling time info to counter collection records
- lib/rocprofiler-sdk/kernel_dispatch
- added profiling_time.{hpp,cpp}
- restructured tracing.cpp
- updated queue.cpp AsyncSignalHandler
- gets kernel dispatch profiling time and passes to dispatch_complete and signal callbacks
- structured some header includes to reduce cyclic include probability
- originally, including kernel_dispatch/tracing.hpp in hsa/queue.hpp created a lot of cyclic includes
* Fix kernel_dispatch.cpp includes
* Fix kernel_dispatch.cpp
- include <cstring>
- replace use of ROCPROFILER_HSA_AMD_EXT_API_ID_NONE with ROCPROFILER_KERNEL_DISPATCH_LAST
[ROCm/rocprofiler-sdk commit: b15e498945]
* Tidying ATT dispatch API. ATT Agent to be initialized with rest of profiler. Removing read_index-based wait.
* Formatting
* Adding some input validation
* Add perf test for agent
* Removing async
[ROCm/rocprofiler-sdk commit: fa1b9e67ab]
When configuring the otf2 dependency, CFLAGS, CXXFLAGS, CC and CXX are
explicitly specified, but LDFLAGS is not. As a consequence, LDFLAGS is
picked up from the environment (if set). In some build configurations,
the LDFLAG from the environment is not compatible with the rest of the
compiler/linker configuration options specified in CMakeLists.txt,
resulting in the configure script failing.
This patch make sure to specify an empty LDFLAGS when configuring otf2
build to avoid such issues.
Bug: SWDEV-477693
[ROCm/rocprofiler-sdk commit: 9f3cffc39a]
* SQ Counter Documentation
Improve documentation of SQ counters. Attempts to
make what the counters are outputting (and where
applicable what the counter means in terms o
performance) more clear.
* pre-format
* Address comments + YAML formatting
* More definition fixes
---------
Co-authored-by: Benjamin Welton <ben@amd.com>
Co-authored-by: Gopesh Bhardwaj <gopesh.bhardwaj@amd.com>
[ROCm/rocprofiler-sdk commit: 27a408f5cc]
* look for symbols in dynsym table
* checking both symtab and dynsym
* Avoid symbol duplication in non stripped binaries
* clang-format
* Minor elf_utils.cpp updates
- use 'else if' instead of 'if'
- logging tweaks
* Update registration
- tweak logging
* Update testing
- strip the rocprofiler-sdk-c-tool library
- add test-c-tool-rocp-tool-lib-execute test which does NOT LD_PRELOAD the library (uses only ROCP_TOOL_LIBRARIES instead)
---------
Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
[ROCm/rocprofiler-sdk commit: dc671497da]
* PCS: show chiplet; cover loading/unloading in integration test
* Use (code_object_id, pc_addr) pair as instruction id.
[ROCm/rocprofiler-sdk commit: 0f89f0449d]
* updating CI for RHEL and SLES builds
* Turn off Build CI for rhel/sles
* update CI workflow
* Attempt to fix job names
* core-deb and core-rpm
* picking the right runner-set
* compiler version check for rhel/sles
* PC sampling check
* BUILD_CI off for
* trying with sudo
* supressing unused variable error
* removing LD_LIBRARY_PATH
* Revert "removing LD_LIBRARY_PATH"
This reverts commit eb2d79ab65c00a97056f6bb4b679de3aad59f593.
* Removing duplicate code
[ROCm/rocprofiler-sdk commit: bb5b2c9264]
* Convert counter def format to YAML
Converts counter definition format to YAML with the
following structure:
```yaml
COUNTER_NAME:
architectures:
gfxXX: // Can be more than one, / deliminated if they share idential data
block: <Optional>
event: <Optional>
expression: <optional>
description: <Optional> // In case per arch notes are needed
gfxYY:
...
description: General counter desctiption
```
All counters (derived and hardware) are now defined
in the same file for ease of future additions/subtractions.
Removes existing XML parser. Keeps the existing XML
definitions for now (since other tools still rely on
its presence).
[ROCm/rocprofiler-sdk commit: 34897d318f]
- missing-new-line CI job: ensures all source files end with new line
- logging updates
- add new line to the end of many files
- fix header include ordering is misc places
- transition to use hsa::get_core_table() and hsa::get_amd_ext_table() in various places instead of making copies
[ROCm/rocprofiler-sdk commit: 1e49b43738]
* PC sampling: integration test with instruction decoding
* PC sampling: verifying internal and external CIDs
The PC sampling integration test has been extended
to verify internal and external correlation IDs.
* tmp solution of using Instructions as keys
* wrapper for HIP call
* PCS integration test: ld_addr as instruction id
For the sake of the integration test, use as the
instruction identifier. To support code object unloading
and relocations, use as the identifier
(the change in the decoder is required).
* PCS integration test: removing shared_ptr
Completely removing usage of shared pointers.
* PCS integration test: removing decoder
When a code object has been unloaded, ensure all PC samples
corresponding to that object are decoded, prior to removing
the decoder.
* PCS integration test: fixing build flags and imports
* PCS integration test: fixing labels
* PCS integration test: cmake flags fix
* PC sampling cmake labels renamed
* PCS integration test refactoring
* PCS integration test: minimize usage of raw pointers
* PCS integration test: at least one sample should be delivered.
* PC sampling lables: pc-sampling
[ROCm/rocprofiler-sdk commit: 498b1f2bd7]
- one context for callback and buffer tracing of same API produces erroneous fatal error -- this is a valid use case
[ROCm/rocprofiler-sdk commit: b62ba5f096]