38 Коммитов

Автор SHA1 Сообщение Дата
Mark Meserve 8760fb4976 attach: Formalize ROCAttach API (#1653)
* attach: Formalize ROCAttach API

- Make ROCAttach public with public headers
- Change detach to take a PID
  - attach and detach are now reentrant
- Cleanup of states and signal handling in ptrace session
- Fixes mixed up definition of ROCPROF_ATTACH_TOOL_LIBRARY
  - ROCPROF_ATTACH_TOOL_LIBRARY now always means the tool library loaded by the attachment target
  - ROCPROF_ATTACH_LIBRARY refers to the library used to perform attachment
- Add direct call of rocprof-attach
- Fix python library call of rocprof-attach
  - Function now named attach(), changed from main()

* attach: rocprof-compute ROCAttach updates

- Update to new library names
- Correct usage of C lib detach

* attach: add test for rocattach

- Disable ASan, TSan, and UBSan for the new parallel-attach test
- Lower log level for LSan tests, existing behavior from other tests

---------

Co-authored-by: Ammar ELWazir <aelwazir@amd.com>
2026-01-15 14:32:14 -06:00
Ammar ELWazir ed42157c31 Fixing Code Object Data Race and Thread Safety & Adding validation test (#2014) 2025-11-26 20:28:52 -06:00
Jonathan R. Madsen a2288eb50b [rocprofiler-sdk] Install unit tests and helper functions for integration tests (#921)
* [rocprofiler-sdk] Install unit tests and helper functions for integration tests

* Fix rocprofiler-sdk-tests-target export

* Fix handling of cmake policy CMP0174

* Remove -vv from new pytest.ini files

* add unit tests and integration tests.

* add path to ci workflow.

* misc. fixes.

* pc sampling tests.

* bug fixes.

* pc sampling tests fix.

* misc.

* Update CMakeLists.txt

* Update rocprofiler_config_install_tests.cmake, correct license name

* fix units tests install issues.

* fix counters_def file path.

* fix bug, arg shifting.

* vendor pytest-cmake.

* cmake config fix. missing endfunction()

* disable tests, 1.rocprofv3-trace-hip-libs. 2.kernel-tracing. 3.external_correlation 4.rocpd.

* disable buffered-tracing test and remove pytest-cmake from requirements.txt.

* disable hip-graph-tracing test.

* fix building standalone tests to load rocprofiler-sdk cmake package first and then find rocprofiler_sdk_pytest module.

* addressed comments: 1.add local bin path to code cov workflow. 2.add to cmake prefix path local bin. 3.use ROCPROFILER_MEMCHECK_PRELOAD_ENV_VALUE 4.misc. fix

* enabled back tests api_buffered, external_correlation_id, hip-graph, kernel-tracing, rocpd, tracing-hip-in-libraries. and misc fixes(formating, extra fixtures for agent-index tests.)

* cpack to use llvm bin for .hsaco debug symbols.

* psdb tests fixes.

* EOL.

* misc. fixes and Disable api_buffered_tracing, external_correlation_id, hip-graph-tracing, kernel-tracing, rocpd, summary, tracing-hip-libraries, tracing-plus-counter-collection.

* fix incorrect cmakelists file.

* strip smallkernel.bin

* format.

* revert disabled tests commit.

* misc. fix in counter tests.

* misc.

* search codeobj unit test assets in curr bin and install bin.

* refactor newly added rocpd tests.

* modify tests for newly added hip-host-tracing.

* add LD LIB path to units, psdb is failing due to libs not being found.

---------

Co-authored-by: Venkateshwar Reddy Kandula <venkateshwar.kandula1306@gmail.com>
Co-authored-by: Venkateshwar Reddy Kandula <Venkateshwarreddy.Kandula@amd.com>
Co-authored-by: JeniferC99 <150404595+JeniferC99@users.noreply.github.com>
2025-11-21 08:06:56 -06:00
Jonathan R. Madsen 18d956eb9c [rocprofiler-sdk] Fix hip compiler table initialization after finalization (#1174)
* [rocprofiler-sdk] Fix hip compiler table initialization after finalization

- Resolves tickets
  - https://ontrack-internal.amd.com/browse/SWDEV-557219
  - https://ontrack-internal.amd.com/browse/SWDEV-505503

* Tweak log message

* Remove unsupported hip limit enums

- hipLimitDevRuntimeSyncDepth
- hipLimitDevRuntimePendingLaunchCount

* Update conftest.py

Co-authored-by: Mark Meserve <mark.meserve@amd.com>

* Update README.md

Co-authored-by: Mark Meserve <mark.meserve@amd.com>

* Update hip_host.cpp

---------

Co-authored-by: Mark Meserve <mark.meserve@amd.com>
2025-11-18 08:28:42 -08:00
Madsen, Jonathan 839c07c4aa [CI] Testing stability (#486)
* [CI] Testing Stability

- CMake option ROCPROFILER_DISABLE_UNSTABLE_CTESTS
  - used for tests which periodically fail around 1 out of every 10 runs
  - set to ON while instability remains, this needs to set to OFF in ROCm 7.1 or, ideally, ROCm 7.0.1
- Use FIXTURES_SETUP and FIXTURES_REQUIRED for some tests
- replace "threw an exception" with "${ROCPROFILER_DEFAULT_FAIL_REGEX}" for misc FAIL_REGULAR_EXPRESSIONS

* Remove contents of all EXCLUDE_{TESTS,LABEL}_REGEX from CI workflow

* Disable patch git step in code-coverage run

* Tweak spin time of reproducible runtime

* Removed patch git step in code-coverage run

* Update ROCPROFILER_DEFAULT_FAIL_REGEX

* Mark test-counter-collection tests as unstable

- add fixtures setup/required

* Remove ATTACHED_FILES_ON_FAIL

- CDash doesn't store enable downloading these properly anyway

* Relax collection-period fuzzing window

* Disable unstable collection-period test

- too unstable

* formatting

* Disable unstable device_counting_service_test.async_counters

* Suppress perfetto internal data race errors

* Switch code-coverage CI jobs to mi300 runner

* Timeout increases

* rocprofv3-test-rocpd updates

- add fixtures
- switch executable
- redefine input/output paths

* Revert code-coverage job to mi300a runner

* Update rocprofv3-test-rocpd-execute-multiproc

- reduce problem size

* disable multiproc rocpd

* Split code-coverage into separate workflow

- network issues cause this job to fail frequently
- when in a separate workflow, it can be restarted easily

* Fixtures for rocprofv3-test-trace-hip-in-libraries

* Disable unstable device_counting_service_test.sync_counters

* Potential fix for code scanning alert no. 171: Workflow does not contain permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* Switch code-coverage to run on rocprof-azure

- mi300a EMU runner set is unstable (network issues)

* tests/rocprofv3/pc-sampling SKIP_REGULAR_EXPRESSION

* Update rocprofv3-test-list-avail-trace-execute

- reduce log level and increase timeout

* rocprofv3: Prevent recursive call to rocprofv3_error_signal_handler + log chaining

* rocprofv3: Use ROCP_ERROR + std::exit instead of ROCP_FATAL

- should help with SKIP_REGULAR_EXPRESSION

---------

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

[ROCm/rocprofiler-sdk commit: 640ca55ac0]
2025-06-30 15:07:37 -05:00
Kuricheti, Mythreya bde07e7baa [SDK] KFD new events API (#321)
* Remove page-migration

* Add KFD events API

* Address review comments

* Move assert checks

* Update enum-string utils

* Update codeowners

* Update KFD header

* Add perfetto category

[ROCm/rocprofiler-sdk commit: 8a461afe20]
2025-06-26 13:28:45 -05:00
Elwazir, Ammar 4d79e1df30 [SDK] Support CMake option for using internal RCCL tracing + (temporary) enable in CI (#457)
* Temp: disable RCCL tracing

* Update continuous_integration.yml

* Update continuous_integration.yml

* Update continuous_integration.yml

* Adding option to disable rccl tracing from CMake

* Update codeql.yml

* Misc updates

- ROCPROFILER_BUILD_RCCL -> ROCPROFILER_INTERNAL_RCCL_API_TRACE
- env.EXTRA_TEMP_CMAKE_OPTIONS -> env.GLOBAL_CMAKE_OPTIONS
- add (advanced) option ROCPROFILER_INTERNAL_RCCL_API_TRACE

* Fix rocprofiler::sdk::get_enum_label

- missing enum labels for HIP_RUNTIME_API_TABLE_STEP_VERSION > 8

* Update tests/rocprofv3/advanced-thread-trace/CMakeLists.txt

- improve various aspect of cmake -- particularly echoing where attdecoder_LIBRARY was found

* Use CMAKE_MESSAGE_INDENT

- add prefix to cmake messages to help indicate where messages are coming from
- make find_package(Python3 ...) QUIET for bindings

* Fix rocprofiler::sdk::get_enum_label

- handle HSA_AMD_EXT_API_TABLE_MAJOR_VERSION

* Fix rocprofv3 message for att library path

* Fix tests/rocprofv3/advanced-thread-trace/att_input.yml config

* Fix rocprofv3 check_att_capability + soversion/version library resolution

- Account for ROCPROF_ATT_LIBRARY_PATH in env in check_att_capability
- Add resolve_library_path
  - supports resolution of library names to SOVERSION and VERSION paths

* Fix python linting error (unused import)

---------

Co-authored-by: Ammar ELWazir <aelwazir@amd.com>
Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>

[ROCm/rocprofiler-sdk commit: aeb1621c2b]
2025-06-17 08:32:54 -05:00
Nagaraj, Sriraksha 3a62fee4ac [rocprofv3-avail] Rework rocprofv3-avail tool (#312)
---------

Co-authored-by: vlaindic_amdeng <vladimir.indic@amd.com>

[ROCm/rocprofiler-sdk commit: 80d60d8535]
2025-06-06 11:51:37 -07:00
Madsen, Jonathan bb942ef500 [rocprofv3] rocpd Python package (#384)
* Squashed commit of the following:

commit f764eb6f4a45baa25eb8f1b50b1035c84578c200
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Thu May 1 09:09:37 2025 -0500

    Misc post rebase fixes

commit 447418b0765819eb2fb5c8b5c3ca9128a091d37e
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Thu May 1 07:22:07 2025 -0500

    Formatting

commit 975661f5e498cde99f8c3ce5486c47db03856d1b
Author: Young Hui <young.hui@amd.com>
Date:   Wed Apr 30 21:19:30 2025 -0400

    Reorganize rocpd command line and grouped Required Arguments together
    - had to add --input to each output.py file again since it was moved out of output_config.py
    - ran formatter

commit 9322328611a332c3979f040b652a9e9a9482200e
Author: acanadas <acanadas@amd.com>
Date:   Wed Apr 30 17:00:58 2025 +0000

    corrected indices on some operation, and kind for kernel dispatch

commit 6c146cd0c508dca6f2453e3844e09e1ed3f9978a
Author: acanadas <acanadas@amd.com>
Date:   Wed Apr 30 16:01:26 2025 +0000

    some corrections on pf trace output: added categories

commit 4e02d3f8617324c95e4a449243ab9ab3f4695471
Author: acanadas <acanadas@amd.com>
Date:   Wed Apr 30 14:35:19 2025 +0000

    fixed perfetto cpp with adding stack id and parent stack id to views:tests

commit d7efd9334361cd7d6a842d083a3f8ca51efe72d3
Author: acanadas <acanadas@amd.com>
Date:   Wed Apr 30 14:16:32 2025 +0000

    fixed perfetto cpp with adding stack id and parent stack id to views

commit cdd0e2ec0788d44fdf2d5833822e055c43cddec6
Author: acanadas <acanadas@amd.com>
Date:   Wed Apr 30 09:47:07 2025 -0500

    restore output_config, add output_file arg for generate csv

commit 5f9b7d93dcbefd55e0ba6e2674602e809aa61632
Author: JIn Tao <jintao12@amd.com>
Date:   Wed Apr 30 09:30:32 2025 +0000

    add ROCDecode and ROCJpeg API calls

commit 7724de1263c5f960cc64c5b0e7afb3834d797f87
Author: JIn Tao <jintao12@amd.com>
Date:   Wed Apr 30 09:05:14 2025 +0000

    Json output: add counters_collection

commit a13930d6d2b87605ca1ece58291172f79d81d91f
Author: JIn Tao <jintao12@amd.com>
Date:   Wed Apr 30 09:01:17 2025 +0000

    Json output: add scratch_memory

commit 54e62e25c6d89e718324ce3bc51eb80c25756c48
Author: JIn Tao <jintao12@amd.com>
Date:   Wed Apr 30 08:00:08 2025 +0000

    Json output: add marker_api

commit ab920196c7ddb68a9a1fdc121f43528e513d5a67
Author: root <root@smc300x-ccs-aus-GPUF2C5.cs-aus.dcgpu>
Date:   Tue Apr 29 10:48:53 2025 -0500

    csv refactor, fix output-format argument for script

commit e033d18356f397e3a684e255dcffd0c0d64ec19e
Author: JIn Tao <jintao12@amd.com>
Date:   Tue Apr 29 11:30:16 2025 +0000

    minor revison

commit 748f6754ac0238eca63bb12b26f62b514de65a0d
Author: Jin Tao <jintao12@amd.com>
Date:   Tue Apr 29 10:09:54 2025 +0000

    Json output: complete structures

commit 52c8d77e0eeb8dca7476814ff03b5cdf88055fd6
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Mon Apr 28 15:44:47 2025 +0000

    forced tests upd

commit 7fabc80d3b8db7d137b05a958c633ad5bf8dbae9
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Mon Apr 28 15:43:34 2025 +0000

    fixed the relative-type index issue (missing load) for agent info and related parameter adjustmets stuff for python

commit f8f5bffc010ad6d43a9f8fee90a79e4342fb9562
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Mon Apr 28 12:28:35 2025 +0000

    added 3 convenience views, some refactoring and fixing kernel-rename option

commit 831cd336115153d1e73f01c9120a67c904478f89
Author: Jin Tao <jintao12@amd.com>
Date:   Mon Apr 28 14:45:31 2025 +0000

    Json output: add kernel_dispatch, hip_api, hsa_api

commit 4c414a1abce51fbdd6d5856b2e36e6272279c671
Author: Jin Tao <jintao12@amd.com>
Date:   Fri Apr 25 13:30:01 2025 +0000

    optimize the json output code, certain problems need to be done, e.g., empty counters and strings

commit ceecd7cc5b81f014766199c0a57645386ade23dd
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Fri Apr 25 10:51:16 2025 +0000

    removed unused variable session from write_otf

commit 29fdb2db4fe0cc930cd6b3172092604ee5409242
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Fri Apr 25 10:14:48 2025 +0000

    added tests for generated csv and otf2

commit 5091d2d51e7e4d68fcdc95a97a82a0df41f28350
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Fri Apr 25 10:12:30 2025 +0000

    run formating from command line

commit abbb7637b1704ea904540c5ff717102bf450c76d
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Fri Apr 25 10:09:25 2025 +0000

    added check up if cvs os not broken after other chnages

commit 9ff614d6d8e87fc3647d8f3b0120425c24213f3b
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Thu Apr 24 15:09:40 2025 +0000

    updated new csv.cpp and otf2.cpp to fit the string_view fix

commit e94ea0f3668c9b972f2dd4144cb4152c1b202f93
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Thu Apr 24 14:51:55 2025 +0000

    fixed string view reporting which works at least forgenerateOTF2.cpp

commit 5c5ea532279fba0b7ef5abcd1916d20d0b7fb7b8
Author: Jin Tao <jintao12@amd.com>
Date:   Thu Apr 24 14:32:10 2025 +0000

    Json output: add strings.marker_api

commit d28d1c18c9693421f7676d6de82c2c20af11eaa0
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Thu Apr 24 13:10:13 2025 +0000

    small upd on cmake for tests

commit 325cb3719517ad514291ab620dd85fb04daeb906
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Thu Apr 24 13:08:58 2025 +0000

    fixed abs_index for connecting data and handles for otf2 location reporting

commit e9a648ade545795646f6aca61fdbece5a39fea5c
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Tue Apr 22 14:00:12 2025 +0000

    commit after fixing warnings, executabel name, validate works

commit 1cd2d63501b8f951996c9dfcd1d0af6d6f16c006
Author: Jin Tao <jintao12@amd.com>
Date:   Thu Apr 24 12:38:03 2025 +0000

    Json output: add marker_api in buffer_records

commit f01ab23d2f8f6c524568e2c453fe26a2e4320a1c
Author: Young Hui <young.hui@amd.com>
Date:   Wed Apr 23 21:37:36 2025 -0400

    Add python binding for agent-index-value to output_config
    - command line passes correctly for csv, perfetto needs to be fixed

commit a92dd0c060dd398db365ec37af905dcca25c8a7e
Author: acanadas <acanadas@amd.com>
Date:   Wed Apr 23 09:08:43 2025 -0500

    provisional fix in json.cpp

     - For now using absolut index for agents

commit fddacacbb54f5678a40d552ec8a3a2f9de65381b
Author: acanadas <acanadas@amd.com>
Date:   Wed Apr 23 08:55:49 2025 -0500

    adding agent indexes (abs, log, type) to types for agent_index_value options

      - Fixing agent_id populated in rocpd_memory_allocate table

commit 3b0414ba5271d25996564eddc6d757b1afc637af
Author: Jin Tao <jintao12@amd.com>
Date:   Wed Apr 23 11:22:59 2025 +0000

    minor revision regarding json output

commit a84bc3d0f7dd9bf1014d024ef15eeb7c7ec990c5
Author: Jin Tao <jintao12@amd.com>
Date:   Wed Apr 23 11:16:48 2025 +0000

    add json output

commit e6c0dd98de0b5f24492ac4396cf8d59bd20d58ad
Author: Young Hui <young.hui@amd.com>
Date:   Tue Apr 22 17:22:45 2025 -0400

    Add rocpd commandline input param file check, to ensure DB exists
    - added OTF2 script
    - added placeholder JSON script

commit 1d482257b8f23bf4d64d57d8bd36775b38254026
Author: Young Hui <young.hui@amd.com>
Date:   Mon Apr 21 12:47:52 2025 -0400

    Clean up some rocpd python files
    - removed some unused files
    - cleanup __main__.py imports and duplicate main

commit c15af2aac9935ffce92d9d6ce35ab5e9eabed57c
Author: Young Hui <young.hui@amd.com>
Date:   Thu Apr 17 18:40:13 2025 -0400

    Add rocpd command line support
    - right now pftrace and csv are supported
    - also removed some otf2 test files, to fix cmake configure
    - formatting edits

commit 10bee3bcf496edd8e1ad9521498c926915a33f07
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Thu Apr 17 15:17:15 2025 +0000

    experimented with roctxA, formatted

commit 11ff50882bcbedbe516c6461c5f8d65e38d0aae5
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Thu Apr 17 15:17:05 2025 +0000

    experimented with roctxA, formatted

commit 7cc87cbf56f6d7117df10dc2cfe45174bedff22a
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Thu Apr 17 14:16:16 2025 +0000

    small refactoring on api-calls preprocessing

commit 421bb11d5b97a4b888c0f9a0b46fca229e4abf25
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Thu Apr 17 14:03:39 2025 +0000

    added rccl, rocdecode, rocjpeg, corrected markers

commit 71c1122ec001ce2548aa1e6d7b0d4bbd5ac16d79
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Wed Apr 16 15:59:39 2025 +0000

    integration tests for otf2 generation will stay  till otf2 gen becomes stable

commit b8ff32bb269a4efec001804eb0064a8c6c7f8f6d
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Wed Apr 16 15:07:19 2025 +0000

    intermediate local commit of functioningotf2 output after refactoring writer code

commit 4d6140fbad00a713aed20b72d41fa62219f9aed7
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Wed Apr 16 09:18:40 2025 +0000

    intermediate local commit of functioningotf2 output

commit 96f40ebce93ff3a27c01d5e5267eda67c3ab68ec
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Fri Apr 11 17:58:24 2025 +0000

    first working commit on generating otf2

commit 75ddceb4bd3dc6c32cd8a60450bd1c70bf4d3193
Author: acanadas <acanadas@amd.com>
Date:   Wed Apr 16 11:24:30 2025 +0000

    Add CSV export functionality to ROCm Profiler Data

    Implement complete CSV export pipeline with the following components:

    - Add write_csv function to libpyrocpd.cpp for core CSV generation
    - Create csv.hpp and csv.cpp for CSV formatting and management
    - Implement stats_summary.hpp and stats_summary.cpp for performance metrics
    - Add comprehensive type definitions for markers, counters and statistics
    - Create SQL views in schema_data for efficient data extraction
    - Add csv.py module similar to pftrace.py for Python API consistency
    - Implement convert.py script with multiple format support (CSV, Perfetto)

    This change enables exporting profiling data in CSV format for easier analysis
    and integration with external tools.

commit 953223e32faa862e79bd1f61e28a55874efa0589
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Tue Apr 1 19:58:18 2025 -0500

    [output] Update generateRocpd.cpp to new schema + misc

    - support guid, {{upid}}, {{view_upid}}, etc.
    - improve env support for MPI in format_path

commit 54bd3b0def48d91a81045676fb2f5f549b813880
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Tue Apr 1 19:54:41 2025 -0500

    [rocpd] Updates + cleanup

    - remove stale {autograd,call_stacks,strings,subclass}.py
    - reorganize the SQL schema files
    - add source/functions.{hpp,cpp}
      - custom SQL function
    - update interop for defining functions
    - misc improvements to "write_perfetto" function
    - added rocpd.pftrace
    - added rocpd.output_config

commit 32f668b019c961f0797eec9f613cf5dfea0aa377
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Tue Apr 1 14:35:31 2025 -0500

    [common] md5sum calculator

commit b6ae75ba270ea92661f6cfe75647531a4d6202f3
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Sun Mar 30 01:57:50 2025 -0500

    Optimize sql_generator when query requires ORDER BY

commit 51d6f33b0b1f80dd09de70c91592f928e31a730f
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Sat Mar 29 01:49:52 2025 -0500

    Minimal support for merged pftrace from multiple database

commit 90c4add9001cad2af85d14783ac1fb35c89c7770
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Sat Mar 29 00:46:59 2025 -0500

    Update cereal submodule

    - fix recursive include

commit a5d75dcb5de9c0667af03ec7a34ac484ff864bac
Author: Ian Trowbridge <Ian.Trowbridge@amd.com>
Date:   Fri Mar 28 14:30:32 2025 -0500

    Formatting

commit 7345810d5ea5d76b9a4ed9bd548399cb8df1feda
Author: Ian Trowbridge <Ian.Trowbridge@amd.com>
Date:   Fri Mar 28 13:44:24 2025 -0500

    Fixed interpolation bug

commit 289739669a84ac83b920f417ef94310dd9ee40c6
Author: Ian Trowbridge <Ian.Trowbridge@amd.com>
Date:   Fri Mar 28 13:32:29 2025 -0500

    Initial memory copy implementation created

commit 91416d784bae05984b8e9670d6cd22231fbc8bed
Author: Ian Trowbridge <Ian.Trowbridge@amd.com>
Date:   Fri Mar 28 13:12:43 2025 -0500

    Added memory allocation counter tracks, removed midpoint interpolation temporarily due to strange outputs

commit 7e733e393d06fecc198ae4f7891edecb90882136
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Fri Mar 28 13:22:34 2025 -0500

    Support multiple database connections

commit e82d7b3ee24a855258dee50ea3a4ee8e52f70509
Author: Mark Meserve <Mark.Meserve@amd.com>
Date:   Fri Mar 28 17:44:05 2025 +0000

    fix tracing_session init

commit d29ac6270e7466794ca43ffdf061b7514a29ad94
Author: Mark Meserve <Mark.Meserve@amd.com>
Date:   Fri Mar 28 17:00:08 2025 +0000

    seperate perfetto init to RAII class

commit 0538261898fdc83a05dc3835ec07d90c4b8dd937
Author: Ian Trowbridge <Ian.Trowbridge@amd.com>
Date:   Fri Mar 28 11:03:45 2025 -0500

    Kernel trace in perfetto now functional

commit 3eb63de679e8dfbc3bc551302ca097356f17de7d
Author: Ian Trowbridge <Ian.Trowbridge@amd.com>
Date:   Thu Mar 27 17:43:43 2025 -0500

    Added memory copy and allocation types, need to test kernel perfetto output

commit c70ce8340a5e4603bed27d6f3f0d95bc77aad196
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Thu Mar 27 15:16:18 2025 -0500

    Misc libpyrocpd updates

    - support conditions on read

commit 189226fb3aeaf3485137335392b271f4f1271040
Author: Ian Trowbridge <Ian.Trowbridge@amd.com>
Date:   Thu Mar 27 14:43:25 2025 -0500

    kenrel_dispatch type added, added load function for serialize

commit 07f6af65733f34c067365c94500b03a9ffff6b6b
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Thu Mar 27 14:08:30 2025 -0500

    ROCPROFILER_BUILD_DEPRECATED_WARNINGS OFF by default

commit b3df97af8fee651d20030dbfc8d6c635774030a7
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Thu Mar 27 14:06:42 2025 -0500

    Fix include

commit 49baef7d173385154d346120313e6c9511665b68
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Thu Mar 27 13:16:50 2025 -0500

    Python interface improvements

commit 7d614ed3ab07836c420e216261e80e0b629739a4
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Thu Mar 27 13:16:35 2025 -0500

    Output keys: support {...} format in addition to %...% format

commit afdb63a0814f0954dfb7500abe5c95fbacdddbc2
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Thu Mar 27 00:43:50 2025 -0500

    [Release] Replace implementation usage

    - rocprofiler_record_dimension_info_t -> rocprofiler_counter_record_dimension_info_t

commit d60ecf99334d96a75b08f99d7a5d8556588258e3
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Thu Mar 27 00:43:04 2025 -0500

    [CMake] ROCPROFILER_BUILD_DEPRECATED_WARNINGS option

commit a89de9f205d500ffc9fdbef400b8b712b167782b
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Thu Mar 27 00:30:52 2025 -0500

    [python rocpd] bindings updates

    - read_{code_objects,kernel_symbols,nodes,processes,threads}
    - support writing perfetto output for regions
    - support fallback casting of python object
    - defined various data types for python

commit bb048b42f5828ce742947e1d3b72a35c578c0b0c
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Wed Mar 26 22:18:56 2025 -0500

    [SDK] hip stream tracing update

    - disable hip stream tracing support for HIP compiler API functions
    - add "stream_value" field to rocprofiler_callback_tracing_hip_stream_data_t
      - data type: rocprofiler_address_t

commit 392a12b20ee795ab025097066444504aac3ddd88
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Wed Mar 26 22:02:22 2025 -0500

    [output library] generateRocpd.cpp updates

    - generic functions for accessing fields which may/may not exist
    - simple timer logging
    - populate parent_stack_id
    - misc cleanup

commit 86ae21d178a0c52ec47e27414b63edbd2a62a94d
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Wed Mar 26 21:46:34 2025 -0500

    [public API] update cxx/serialization/load.hpp

    - ROCPROFILER_SDK_CXX_SERIALIZATION_LOAD_DEBUG
    - load definitions
        - rocprofiler_address_t
        - rocprofiler_callback_tracing_code_object_load_data_t
        - rocprofiler_callback_tracing_code_object_kernel_symbol_register_data_t

commit 4ba6232c23296791df484d47db8268e4bc997c0d
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Wed Mar 26 21:44:52 2025 -0500

    [public API] update cxx/perfetto.hpp

    - function: get_perfetto_category for callback tracing and buffer tracing kinds

commit 4c0fcf4395f6c337cf3b955ec45b0567f9b3a477
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Wed Mar 26 21:26:32 2025 -0500

    [python] Rename rocpd/schema_data/* files

    - {tables,views,indexes}.sql

commit 47b862ece9ed3f16d7a5ecd6b632f13b0086bc01
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Wed Mar 26 21:23:35 2025 -0500

    [external] cleanup external/CMakeLists.txt

commit 4e2a71db9b224b11f4144104b4569a5efb45b6c2
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Wed Mar 26 21:23:05 2025 -0500

    [samples] Minor tweak to counter collection sample app

commit c62dd55c5e82b4105bdce374dc45c6adf65a0cc4
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Wed Mar 26 21:22:08 2025 -0500

    [tool library] Rework kernel rename and stream id data

    - simplify and improve memory management
    - support stream information for memory allocation

commit 2521d499664bb01c0e2f9f9454b5da5c38b29cfc
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Wed Mar 26 21:18:46 2025 -0500

    [output library] Misc reorg and updates

    - dropped "with_stream" from various data types
    - add stream support to memory allocation records
    - generator<T> base class resize function
    - serialization load functions for kernel symbols, node_info
    - reorganization of SQL code
    - cereal::SQLite3InputArchive

commit 70a76d6352dca84241f1749da660f8af8e89c469
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Mon Mar 24 03:52:58 2025 -0500

    Misc fixes after rebase

commit 4811201c3e07ac8b5b4edc4028df9cdbc3481bd1
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Thu Nov 14 22:30:43 2024 -0600

    Python Bindings

    Fix rocpd graph support

    - remove uniqueness constraint from subclass
    - replace assumption of "graphExec" with "pGraphExec" in the parsed API arguments

    pybind11 submodule

    Initial roctx python bindings

    Fix testing

    Add rest of python bindings for ROCTX

    Add decorators and context manager for roctx

    Fix: restore rocprofiler_reset_python3_cache from CMakeLists

    work in prorgess! added stub test for pybind

    added subdirectory for pybind-test

    Fixing CMakeLists for pybind-test

    Pybind-test

     - Move simple-transpose-pybind.py to tests/bin

     - Execute test in CMakeLists for pybind-test

    Fix python format

    Update rocprofv3 python bindings testing

    - move to tests/rocprofv3/python-bindings
    - remove misc code
    - add marker.py

    Update roctx python bindings

    Update rocprofv3 python bindings test validation

    Update rocprofv3 python bindings test validation

      - Add checks for marker_api in json format

      - Unify checks for csv and json

    patch removing tmp trace_processor_python_api file after validate is run, ptherwise it blocks the work of others

    correction of previous commit: correct patch

    removed patch because the santizing will be added to perfetto reader

    perf reader: removing tmp user-owned file after the data are read

    robust handling of removing tmp file via a context

    minor clean up perfetto reader, fixing hip-in-libraries-test

    minor clean up perfetto reader, fixing hip-in-libraries-test

    Fix generateRocpd for older compilers

    Formatting

    Remove rocpd-db-to-chrome-tracing console script via pip

    Fix PYTHONPATH for rocprofv3-trace-roctx-python-bindings-*

    replaced context by PerfettoReader destructor  to remove tmp perfetto dir after the test run

    formatting python

    formatted cmake for pybind-tests

    Update contexts and decorators roctx python bindings

    added stub jypiter notebook for python analysis

    formatting notebook

    Update jypiter notebook for python analysis

      - Create summary tables as views : memory_copy, kernel_dispatch, hip_api

    upd the generate_rocpd.py by schme reading and rocpd_node table and queue to rocpd_kernelapi

    comments to discuss on generateJson and generateRocpd.cpp

    comments to discuss on generateJson and generateRocpd.cpp

    remove comments because they block pull

    remove comments because they block pull

    format generate_rocpd

    formatted generateRocpd and generateJSON cpps

    formatted generateRocpd and generateJSON cpps

    formatted the analysis notebook

    reset the Rocpd aand JSon generate to the state before I added comments because my local formatting with c-lang format fails

    add using pandas dataframe to generate summaries

    added basic pytorch trace example in tests

    upd execute toy pytorch test

     pretty printing 3 temporary views bypassing pand frames

    set instrument cells (functions, constants) in front of usage cells

    added experimental routines for creating time slots via markers and counting given api calls  within this time slot

    formatting

    simplified utilities

    more simplified utilities, added label usage in report

    more simplified utilities, added label usage in report

    fogottem commit example matrix mult

    added extracting copy operations by kind, added second db to compare, moved looping over database outside basic procedures

    marker around print

    replaced push.pop with just markers

    added duration and matrixmult flops, lists of kernel names and api names

    add bin directory variable to pass to generateRocpd

    correcting schema

    add bin directory variable to pass to generateRocpd

    debug upd for matrixmult

    create default timed views as copy of the original db

    correct table naming in the orifinal db

    removing rocpd_string, rocpd_metadata from views

    removing rocpd_string, rocpd_metadata from views

    removing rocpd_string, rocpd_metadata from views

    implemented timed views clean up and creation innotebook

    formatted python

    formatted python

    formatted files via make format and commented pytprch test

    added new line at the end of the tableSchema

    Add tracing script for rocpd time slicing views

      - Start and end options: timestamps/percentage , markers

    rebase and format one cpp file

    fix source formatting

    Rocpd: Time slice data

      - Rename tracing.py > time_slice.py

      - Adapt time_slice.py to use RocpdImportData, fix typo 'rocpd_api_ops', add output argument (overwrite input otherwise), update rocpd_kernelapi view

      - Simplifyed chrome_tracing.py : remove start+end arguments, avoid manipulating the time window/time slice

    Fix rebase issues

    [DO NOT MERGE] rocpd-schema.md

    Schema updates

    rocpd schema v3 updates/fixes

    rocpd schema v3 updates/fixes

    - samples view
    - kernels view
    - insert zero duration regions as samples

    generateRocp update rocpd_memory_allocate table fill

    Misc compilation cleanup

    tableSchema.sql updates

    Add core performance analysis views:

    - Add busy view for GPU utilization metrics
    - Add top view for overall performance summary
    - Add top_kernels view for kernel performance analysis
    - Add memory_copies view for memory transfer tracking
    - Add memory_allocates view for memory allocation stats
    - Add kernel_summary view for aggregate kernel metrics

    utilitySchema.sql clean up TOP view and some consistancy changes

    added marker views

    Update rocpd schema

    - new: rocpd_pmc_event
    - modified: rocpd_pmc
    - modified: _rocpd_memory_copy
        - name_id
    - add rocdecode API
    - populate rocpd_pmc and rocpd_pmc_event
    - slight modifications to column names for consistency

    :memory allocation insert for db

    memory allocation insert for db

    memory allocation insert for db

    commit after rebase

    autoincrement for memory allocation

    stringsanitizer applied for pmc description

    replaced inner join with left join for stream id, queue id, region name id

    Update chrome_tracing.py

      - chrome_tracing script updated using new schema

     - importer.py pending update with new schema, currently commented out

    Misc compilation cleanup after rebase

    Update rocpd/time_window.py

      - time_window.py script updated using new schema

      - Adapt chrome_tracing.py to use time windows

    added rocpd_arg and the join view with events, populated

    set back default python version to 3.6 for remote

    addeddereferencing stream ids and usage, some formatting

    refine error messages and help arguments in time_windows.py

    test if removing exact python version fixes integration test

    removed unused variable

    formatting and added back exact 3.6 to fix python linting (try)

    removed the exact python version again because it causes advanced analysis to fail

    revise microseconds to nanoseconds

    made type and name text again, put back strict version for python

    Reorganization of public cxx serialization headers

    Rework generator<T> (abstract base) + file_generator<T>

    - return file_generator<T> from buffered_output

    Add gotcha submodule

    Update cxx serialization headers

    Revert some HIP stream changes

    [output library] Misc updates

    - fix serialization of agent_info
    - add parseRocpd.{hpp,cpp}
    - move common SQL utils to sql.{hpp,cpp}

    [python libraries] Bindings for rocpd + reorg

    - move common cmake code into source/lib/python/utilities.cmake
    - build python bindings for rocpd (primitive implementation)
    - Require ROCPROFILER_BUILD_SQLITE3=OFF for rocpd python bindings
    - wrap sqlite3_open / sqlite3_close / sqlite3_open_v2 / sqlite3_close_v2

    Update rocpd/importer.py

      - importer.py updated using new schema

commit aff19818a5c9f9f6004013144ae00e2c31b21739
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Thu Nov 14 22:27:39 2024 -0600

    [SEPARATE PR] HIP API buffer records with args (ext)

    - Needs to be in separate PR
    - New buffer tracing domain(s) for HIP APIs which include the arguments and the return value in the buffer records

    Update HIP stream support for extended HIP buffer tracing

    Update rocprofv3 tool library and output library to use extended HIP buffer tracing recods

commit 43c3f0ddd5a104346d6db77b8a1b66fd9ec2f797
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Thu Nov 14 18:47:52 2024 -0600

    [SEPARATE PR] Combo of several separate PRs

    [SEPARATE PR] Update correlation ID retirement

    - Needs to be in separate PR
    - correlation_id_finalize

    [SEPARATE PR] rocprofiler_query_intercept_table_name

    - Needs to be in separate PR
    - Function to get the name of  intercept tables

    [SEPARATE PR] Memory copy and memory alloc updates

commit e3da9738b06f974fb6b935893f4172852819b6bc
Author: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Date:   Mon Nov 4 17:22:30 2024 -0600

    Add SQLite3 build support

    Initial SQL writing to rocpd schema in C++

    task code

    Implement kernel dispatch and memory copy writing to table

    Update generateRocpd.cpp

    - SQLITE3_CHECK macro
    - Error messages for sqlite3_exec errors
    - Tweaked rocpd_kernelcodeobject to use kernel ids as id
    - fixed some issues:
      - use string_entries.at(...) instead of (SELECT id FROM ... WHERE string = ...)
      - use custom op_idx instead of relying on correlation ID (one correlation ID can map to multiple ops)

    Update generate-rocpd.py

    - misc tweaks to mirror generateRocpd.cpp implementation
    - add strings for counter names
    - use kernel id for rocpd_kernelcodeobject

    Tweak tests/bin/hip-graph/hip-graph.cpp

    - use stream sync

    Update generateRocpd.cpp

    - made table and view schema more readable
    - sql_exec_callback

    Add source/scripts/rocprofv3-db-to-tracing.py

    - Script which reads a rocprofv3 rocpd database and outputs a chrome tracing format JSON

    Common library updates

    - static_tl_object: similar to static_object but for thread-local objects
    - additional template metaprogramming constructs
      - reverse
      - function_traits

    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

    rocprofiler_stream_id_t: output support

    - use stream_id in generatePerfetto.cpp
    - use stream_id in generateRocpd.cpp

    rocprofiler_stream_id_t: output support

    - rocpd_kernelapi and rocpd_copyapi encode stream/queue as integer instead of string

    Update source/scripts/rocprofv3-db-to-tracing.py

         - Create temporary view from multiple db file
         - Modify write_chrome_tracing_json to use the tmp views

    Update rocprofv3-db-to-tracing.py

    - retain rocpd tables names in create_temp_view instead of appending "_tmp"
    - improve the GPU/Agent and Queue identifiers
    - make the SQL statements easier to read
    - remove rocpd_hsaApi usage (not necessary as HSA data resides in rocpd_api table)
    - directly connect to input if only one database

    Update generateRocpd.cpp

    - use dispatch id for rocpd_kernelapi id (primary key)
    - use dispatch_id for rocpd_op sequenceId
    - create copy_id for rocpd_copyapi id (primary key)
    - use copy_id for rocpd_op sequenceId

    Update tests/{async-copy-tracing,kernel-tracing,page-migration}

    - expand reading the RCCL and scratch memory trace data

    Add sdk::parse::strip function

    - utility function for stripping characters from beginning and end of string

    Preliminary rocpd_node table

    - rocpd_node is a meta-table for process ids
    - added lib/output/node_info.{hpp,cpp}
    - add tool::node_info instance to tool::metadata

    Update page-migration test

    Python packaging of rocpd

    add temporary view rocpd_copyapi

    Update rocpd/importer.py

     - Add rocpd_kernelapi and rocpd_copyapi

     - Create meta temporary views using RocpdSchema

    JSON tool handling of HIP compiler API data

    Misc rocpd updates

    - SQL formatting
    - remove unused imports
    - fix relative import

    lib/output metadata updates

    - add process_init_ns and process_fini_ns
    - add command_line member

    rocprofv3 updates: tool.cpp

    - simplify buffer service configuration
    - rocprofiler_at_intercept_table_registration -> api_timestamps_callback -> start time
    - record init, fini, start, and end times

Added simple_timer to common library

Add missing new lines at end of files

f

added labels for multiprocessed, tested kernel-rename, groupd by queue, type-relative of but bug in run-label

- fixed static marker name to dynamic

rocpd fix python linting errors

Squashed commit of JSON changes, small CSV, OTF2, pftrace fixes, and rocpd commandline params

Contains these original commits:

commit 2c7a10771d60ad0b93073f94f6226a6e92ade4cb
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Wed May 14 18:57:30 2025 +0000

    removed run markers reporting from otf2 as they duplicate api calls

commit 826c0c13a164e7a5d2c7f1963cc437ee53416658
Author: Young Hui <young.hui@amd.com>
Date:   Wed May 14 12:55:51 2025 -0400

    rocpd command line updates
    - some stats-summary params moved to generic params since applies to json and csv
    - added --group-by-queue for perfetto

commit 33a82dcc9c05869f70219b75c76e4d0e6ae84a39
Author: acanadas <acanadas@amd.com>
Date:   Wed May 14 07:12:45 2025 -0500

    Fix corr_id for kernel in write_csv, fix std dev in summary views

commit b89dfbd02a243c3e1b5d1a4a968ab5b7c9ecb3a3
Author: acanadas <acanadas@amd.com>
Date:   Wed May 14 04:03:56 2025 -0500

    Fix generate json merged for multiple db

commit 4968f65f51a6539c95a801c1340487a5675b1f45
Author: Jin Tao <jin.tao@amd.com>
Date:   Wed May 14 08:02:10 2025 +0000

    clean the code for json: remove host fuction, but keep the basic structure

commit 0f5ed2011a6da5a6046974c03c64569a4747102e
Author: Jin Tao <jin.tao@amd.com>
Date:   Wed May 14 07:12:23 2025 +0000

    small fix

commit 152c149905e98f33688fdb0cfc5ca88b3c61694d
Author: Young Hui <young.hui@amd.com>
Date:   Tue May 13 22:13:35 2025 -0400

    Schema revert rocpd_event.correlation_id back to INT
    - removed duplicate K.tid from kernel views
    - re-enabled some json.cpp code to build

commit 8af5ff79b1f85cd1f2ac4c61af580dc891e6dd70
Author: Jin Tao <jin.tao@amd.com>
Date:   Tue May 13 11:13:56 2025 +0000

    add host_functions

commit 2a3e0307ab7571be0f46ffd2f706d2c9f34cdce1
Author: acanadas <acanadas@amd.com>
Date:   Tue May 13 06:08:10 2025 -0500

    Adding summary to write_json, add extra information for sql column type error

commit d339f1cc5eb856e9e3bd7461ac4d776e8265b7cd
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Mon May 12 17:42:47 2025 +0000

    fixed counter annotations for kernel dispatch AND  shadowed names in jsob.cpp

commit d3a8ece3135a8cb5a78b05f7ca653793d89d5d5a
Author: acanadas <acanadas@amd.com>
Date:   Mon May 12 09:18:56 2025 -0500

    Fix node for counters in write_json

commit 5153841b8d047bb4c78aeda5675848f2887aef29
Author: acanadas <acanadas@amd.com>
Date:   Mon May 12 08:26:22 2025 -0500

    Adding counters. code_objects and kernel_symbols in write_json

commit e979a1ab87d6b148d2b90ae25fc60d5e766e3251
Author: Jin Tao <jin.tao@amd.com>
Date:   Mon May 12 13:10:13 2025 +0000

    add json counter_collection.records

commit 026d022052122ee36f83022e270110840dc38aa3
Author: Young Hui <young.hui@amd.com>
Date:   Sat May 10 00:29:33 2025 -0400

    Fix kernel_dispatch thread_id in Perfetto traces, more pftrace args supported and formatting
    - perfetto-backend=system results in 0KB pftrace file, but probably need the traced and perfetto daemons (have not tested with them)

commit f1341487723672b407fa89d2d383944d92663c55
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Fri May 9 17:08:40 2025 +0000

    fixed counters for perfetto but need more testing

commit 33612f9bc6121e38ad9b41d2aecd035d1d629efb
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Fri May 9 13:34:50 2025 +0000

    rearchitectured generator tests into a dedicated rocpd-generators suit (to be extended) and jdon file-name input made a parameter

commit da1e386b77bc1bbbbdc1ca8ee2ffd8c09a99ae5b
Author: acanadas <acanadas@amd.com>
Date:   Fri May 9 08:36:00 2025 -0500

    fixing buffer_record missing values in json, fix using  clang_tidy

commit f7adb8b28ab64127ef20ff642ced40ccace7fef8
Author: acanadas <acanadas@amd.com>
Date:   Fri May 9 10:08:28 2025 +0000

    revise callback_records.counters_collection, still has 3 TBDs

commit 49d4057e7b7e295953915b90cdeb7359948c5034
Author: acanadas <acanadas@amd.com>
Date:   Thu May 8 11:10:32 2025 -0500

    Fixing correlation_id for csv and json

commit bb37556c9d1da7fe1ccb0bc5bf0e05d4f0989476
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Thu May 8 13:27:01 2025 +0000

    This is a combination of 3 commits.
    tree node indexing updated, added extended agent struct for otf2 for efffective handling agents, agent indexes and laeled agent names
    rolled back tree id as process counter, tested well (source and test)

commit 38dc36da08a5a505b6d7d47840690b4d6c29b429
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Thu May 8 13:26:46 2025 +0000

    tree node indexing updated, added extended agent struct for otf2 for efffective handling agents, agent indexes and laeled agent names

commit 2958ba37abc86e5b03bc03f5d529c0efcfd2ce45
Author: acanadas <acanadas@amd.com>
Date:   Thu May 8 08:08:10 2025 -0500

    Adding size, kind and operation for buffer_records in write_json

commit 654c42d8a1c341ef1bfbb724eaf6b24e64fb5475
Author: acanadas <acanadas@amd.com>
Date:   Thu May 8 07:40:30 2025 -0500

    Fixing merge with schema change

commit 01f133bc0fed66d60cb5fe05d9e0b256938c7fb0
Author: acanadas <acanadas@amd.com>
Date:   Thu May 8 06:48:58 2025 -0500

    fixing write_json merge

commit dd3bbd5ed6faabc2207d9bf933c5c8efb8a2fe16
Author: root <root@smc300x-ccs-aus-GPUF2C5.cs-aus.dcgpu>
Date:   Thu May 8 04:45:56 2025 -0500

    update write_json adding strings, buffer_records and counters

commit 6a991305bf75f4f2e944b40e7194b43fcf1ec340
Author: Young Hui <young.hui@amd.com>
Date:   Thu May 8 01:29:08 2025 -0400

    Schema changed rocpd_event.correlation_id to TEXT type [WIP]
    - when --kernel-rename is used, SQL stores correlation_id.external.value value with precision error.  To store accurately, need to store as TEXT.
    - work-in-progress commit, still getting a few rocpd SQL conversion warnings due to TEXT type change.

commit d50b058dc764394f9fc9cfc264866f43f9354da0
Author: oshkarav_amdeng <oshkarav@amd.com>
Date:   Fri May 2 09:32:12 2025 +0000

    This is a combination of 2 commits.
    fixed clang tidy complaint on otf2 and perfetto, added guid-s t info names, but still 2-process DBs fail
    fixed mutliprocess otf2, but agents still need to be labeled by guid

Misc fixes

- flush less often for perfetto
- metadata create_agent_index
- remove sqlite3_close from write_otf2
- warning if gotcha_wrap fails
- fix rocpd-generators tests
- fix multi-python build config

Whitespace cleanup

Revert tests/rocprofv3/summary/CMakeLists.txt

Remove unused scripts

- generate-rocpd.py is outdated
- rocprofv3-db-to-tracing.py is scratch
- simple-transpose-pybind.py is no longer used

Fix maybe-uninitialized compiler warning

Fix maybe-uninitialized compiler warning

Update rocpd.write_X functions to require RocpdImportData instance

- create libpyrocpd.RocpdImportData
- rocpd.importer.RocpdImportData inherits from libpyrocpd.RocpdImportData
- write_csv, write_json, etc. all require instance of RocpdImportData instead of list of sqlite3.Connection

output/rocpd source reorganization

- move lib/output/parseRocpd.* to lib/python/rocpd/source/common.*
- move lib/output/serialization to lib/python/rocpd/source/serialization
- move lib/output/sql/generator.hpp to lib/python/rocpd/source/sql_generator.hpp

Minor refactor of lib/output/sql/*

Remove lib/output/sql.hpp

- this file just included other headers

Fix rocpd source reorg

Update schema files

- replace quotes with backticks

remove short guid from perfetto

fix string sanitization in generateRocpd.cpp

* Update cereal submodule

* Updates following rebase

- remove MANIFEST.in
- remove rocpd/schema_data/*.sql
  - use rocprofiler-sdk-rocpd

* rocpd command line update to pass importData instead of connection

* Update get_perfetto_category for ROCDECODE_API_EXT

* data_views.sql updates

- remove kernels_renamed view
- remove rccl view
- remove rocjpeg view
- remove rocdecode view
- remove api_regions view
- remove api_threads view

* Perfetto, OTF2, output config updates

- Support kernel rename for output config
- Combine memory copy and kernels into same stream track
- Fix get_category_string in perfetto
- Support kernel renaming in OTF2 and Perfetto

* Add samples to perfetto

* ORDER BY for perfetto regions/samples

* Fix busy view, fix integer overflow in summary views

* CSV adding --stats-per-rank and --stats-summary-per-rank reports

Squash of these original commits:
commit 4c0ded4efb6ef273953faf7fd100a54ce16ae00b
Author: Jin Tao <jintao12@amd.com>
Date:   Mon Jun 2 07:25:06 2025 +0000

    change all rank output to PID instead of GUID

commit 969950b009ad18a156a31bfee43f64e032720262
Author: Jin Tao <jintao12@amd.com>
Date:   Wed May 28 11:22:29 2025 +0000

    Change --stats-per-rank and --stats-summary-per-rank to csv.py

commit 970f88dec3bb83663d8a84d8bf4dfcfb8857e903
Author: Jin Tao <jintao12@amd.com>
Date:   Thu May 22 11:39:51 2025 +0000

    refactor and small bug fix

commit a4c5ab4290c0a9b7b45421c3fc21150914d12110
Author: Jin Tao <jintao12@amd.com>
Date:   Thu May 22 10:59:13 2025 +0000

    add args for --stats-per-node and --stats-summary-per-node

commit 432907d0a54de886d01f962f3084c6708bdb1456
Author: Jin Tao <jintao12@amd.com>
Date:   Thu May 22 09:22:55 2025 +0000

    add summary for marker, rccl, rocdecode,  rocjpeg_calls

commit ab53c9c8f4a6f5f7bf40a32bf1f93add1dbd10f5
Author: Jin Tao <jintao12@amd.com>
Date:   Wed May 21 13:33:04 2025 +0000

    add hsa_api_stats_by_node, hip_api_stats_by_nod

commit b26974bdd6d0047759b4014f9c226cf771f0a2ad
Author: Jin Tao <jintao12@amd.com>
Date:   Wed May 21 11:14:07 2025 +0000

    Add memory allocation stats by node and memory copy stats by node

commit d02819c2c4bd57bfeb0537d3a42d9f22866e8600
Author: Jin Tao <jintao12@amd.com>
Date:   Wed May 21 08:33:08 2025 +0000

    Kernels (or categories) by node completed

* JSON fixes for agent in memory allocation if free in write_json, add group by nid for _summary_node views

Squash of these original fixes:
commit 25d8d985b319585fab16eb6d8e9ec5c91e767a91
Author: acanadas <acanadas@amd.com>
Date:   Thu May 22 14:00:20 2025 +0000

    fix agent for memory allocation if free in write_json, add group by nid for _summary_node views

commit d64905418a307db9e56b816e4b9f4de587bc3a14
Author: acanadas <acanadas@amd.com>
Date:   Thu May 22 08:55:21 2025 +0000

    Fix typo json.cpp for memory copy src agent

* CSV add domain_stats_per_rank and PID header fix

Squash of these 3 commits:
commit 10ec1cf40cc92a9d7ce7db84a8c6bbe20c51a340
Author: Jin Tao <jintao12@amd.com>
Date:   Tue Jun 3 10:06:33 2025 +0000

    small fix PID header rename

commit 6775fd3b2031b30ae389b165cf44b321026c1e80
Author: Jin Tao <jintao12@amd.com>
Date:   Mon May 26 11:47:23 2025 +0000

    Add domain_stats_per_rank

commit 9f3eb1793e354c1f04bab1fbc837e86f1f5b5030
Author: Jin Tao <jintao12@amd.com>
Date:   Thu May 22 12:11:28 2025 +0000

    add domain_summary_node view

CSV PID header formatting

* upd otf2 generate validation test went well

* fix Cmake formatting

* In data_views, change P.id/T.id to P.pid/T.tid

* Remove unapproved views for this PR

* Remove rocpd JSON output support

* Fix clang-tidy errors

* Revert output_config changes + cmake + remove chrome_tracing.py

* Revert

* Misc rocpd cleanup

- remove all CsvType per-node and stats enum values
- remove rocpd::types::marker
- remove rocpd/source/stats_summary.{hpp,cpp}
- add `sample_regions` view
- add `regions_and_samples` view
- move tests/rocprofv3/rocpd-generators to tests/rocprofv3/rocpd
- merge validate_perfetto.py and validate_otf2.py into single validate.py

* Remove stats options from rocpd.output_config

* Remove json from rocpd.__main__

* Remove rocpd.csv summary/stats options

* Remove generate_from_rocpd.py

* Add rocpd subparser (convert) + migrate tests to use python3 -m rocpd

* Add additional tests for the rocpd command line

- Check the --help flag works for:
  - python3 -m rocpd --help
  - python3 -m rocpd convert --help
  - python3 -m rocpd.csv --help
  - python3 -m rocpd.otf2 --help
  - python3 -m rocpd.pftrace --help

* adding rocpd python shebangs and main function parameter ordering

* Fix sanitizer tests + remove read_code_objects and read_kernel_symbols

* Misc updates

- Update CHANGELOG.md and source/lib/python/rocpd/README.md
- update time_window.py
  - find min/max in regions_and_samples/kernels/memory_allocations/memory_copies
- RocpdImportData supports all the same functions as sqlite3.Connection

* Improve time_window.py

- find the tables with start/end dynamically
- find the tables with timestamp dynamically

* Minor revert to time_window.py

* Remove tests/rocprofv3/pytorch-tests

* Fix python 3.6 error in time_window.py

- 'type' object is not subscriptable

* Fix rocpd installation

---------

Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Co-authored-by: Young Hui <young.hui@amd.com>
Co-authored-by: acanadas <acanadas@amd.com>
Co-authored-by: Jin Tao <jintao12@amd.com>
Co-authored-by: oshkarav_amdeng <oshkarav@amd.com>

[ROCm/rocprofiler-sdk commit: dff1e9acb5]
2025-06-06 04:03:14 -05:00
Madsen, Jonathan 4875346137 [roctx] Python bindings for rocprofiler-sdk-roctx (#402)
* [roctx] Python bindings for rocprofiler-sdk-roctx

* Update CHANGELOG

---------

Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>

[ROCm/rocprofiler-sdk commit: 14c2dc55ff]
2025-05-19 20:02:51 -05:00
Madsen, Jonathan 49486fee5e [CI] Fix code coverage and thread sanitizer workflows (#378)
* Fix code coverage workflow

* Relocate rocprofv3 conversion test script + rename tests

- these are rocprofv3 tests and were not properly located and not properly named

* Fix thread sanitizer

---------

Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>

[ROCm/rocprofiler-sdk commit: 4f03ebc360]
2025-04-28 10:19:04 -05:00
Madsen, Jonathan 36f4788ad5 [CI] Miscellaneous Testing Updates (#305)
* Add rocprofiler-sdk-utilities.cmake

- contains cmake function rocprofiler_sdk_get_gfx_architectures

* Update perfetto_reader.py

- fix hash collision

* Update project names in tests folders

- rocprofiler-tests -> rocprofiler-sdk-tests

* Fix incorrect allocation-error handling

* [CI] Disable openmp tests for navi2, navi3, and navi4

* Suppress leaks by omptarget and llvm

---------

Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>

[ROCm/rocprofiler-sdk commit: 2d072f9217]
2025-03-22 18:51:42 -05:00
Madsen, Jonathan 17272d5df1 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>

[ROCm/rocprofiler-sdk commit: 2fe63d873e]
2025-03-13 22:29:07 -07:00
Trowbridge, Ian 74efdad1aa rocJPEG API Tracing (#73)
* rocDecode API Tracing support

* Test bin file added to rocdecode. Need to add validate python methods

* Added option to not make rocDecode tests

* Added rocdecode and rocprofv3 tests

* Added csv test

* Address PR comments. Changed tests to use built-in rocstreambit decoder to remove ffmpeg dependancy. Changed cmake option to disbale tests rather than not build them. Tests work locally, but will fail until rocDecode is built with tracing enabled on CI

* Add option to avoid building rocdecode tests

* Added option to avoid building rocdecode bin file

* Support for rocJPEG API Trace

* Added newline to rocjpeg_version.h

* json-tool code added, initial test/bin commit

* Formatting

* Resolved rocjpeg bin test compilation errors

* Tests implemented. Perfetto module currently resulting in errors, so need to retest whenever it is fixed

* Formatting and compilation errors

* Minor fixes

* Copyright year update and minor fixes

* Doc update fix

* Added rocjpeg csv file in data

* Addresses review comments: Updated fixed Findroc.. and uses root directory as a hint, fixed documentation error, changed tables to use _CORE, minor style fixes

* Added rocdecode and rocjpeg to CI

* Removed rocdecode and rocjpeg from CI and added back build tests option

* Updated Cmake Files

* Added rocDecode and rocJPEG to CI

* Remove cmake line added in error

* Temporarily modified tests to pass if rocdecode or rocjpeg tracing are not supported for CI, cmake changes

* Added find_package for test

* Added back use of system rocDecode and rocJPEG, modifies system files to include prefix path

* Updated no-link to include INCLUDE_DIR/roc(decode|jpeg), added comments for tests

* Resolve merge conflicts and formatting

* Added regex find and replace instead of include for CI

* VAAPI package causing errors on Vega20

* Removed system rocjpeg and rocdecode use temporarily until cmake issues resolved

* Removed workflows regex

* Formatting and minor test modification

* Modified test for vega20

* Update rocDecode and rocJPEG cmake and tests

* Changelog

* Fix merge conflict

* Added back if-statements around add-tests since cmake-generator-expressions are resulting in errors when the packages are missing

* Removed if found statements, replaced with TARGET:EXISTS

* Skip json file for rocjpeg and rocdecode tests if not supported

* Add os import

---------

Co-authored-by: Kandula, Venkateshwar reddy <Venkateshwarreddy.Kandula@amd.com>
Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>

[ROCm/rocprofiler-sdk commit: 31fe8858d1]
2025-02-21 13:43:49 -08:00
Jakaraddi, Manjunath 0608bbb4db SWDEV-499989: Conversion Script to change counter collection output format from v3 to v1 (#107)
* SWDEV-499989: Add script to convert rocprofv3 counter collection output format to that of v1

* Add logging and argparsing

* Dropping duplicated counters in pmc multiple lines

* Adding test for conversion

* moving conversion script to test files

* copy conversion script from scripts folder

[ROCm/rocprofiler-sdk commit: c77596b703]
2025-02-12 11:31:17 -08:00
Madsen, Jonathan 81250fa3d4 rocprofv3: Update rocprofv3 command line for ATT (#201)
* rocprofv3: suppress agent info when no data collected

* Update output config serialization

- full serialization of output configuration

* Update rocprofiler-sdk-att/tests

- add version and soversion
- change output directory
- generate libatt_decoder_summary
- disable tests instead of removing them

* Update rocprofv3 command-line

- make --att-library-path hidden by default
- simplify check_att_capability
- reorder pc sampling options
- add hidden --echo option
- remove ROCPROF_LIST_AVAIL_TOOL_LIBRARY from preload

* Add new rocprofv3 tests for specify the ATT library path

* Tweak to rocprofv3-test-hsa-multiqueue-att tests

* Update rocprofv3 tool to enable output with att

* Fix standalone test installation

* Revert to fetchcontent_makeavailable to fetchcontent_populate

* Revert tests/common/CMakeLists.txt

---------

Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>

[ROCm/rocprofiler-sdk commit: 59b41ab5aa]
2025-02-11 18:10:48 -06:00
Trowbridge, Ian 3e1b8ba4ec rocDecode API Tracing Support (#49)
* rocDecode API Tracing support

* Test bin file added to rocdecode. Need to add validate python methods

* Added option to not make rocDecode tests

* Added rocdecode and rocprofv3 tests

* Added csv test

* Address PR comments. Changed tests to use built-in rocstreambit decoder to remove ffmpeg dependancy. Changed cmake option to disbale tests rather than not build them. Tests work locally, but will fail until rocDecode is built with tracing enabled on CI

* Add option to avoid building rocdecode tests

* Added option to avoid building rocdecode bin file

* Merge conflict error

* CMake files changed in response to review comments. Attempting to implement callbacks.

* Turned off test building for rocdecode

* Minor fixes for review comments

* Review comments

* Updated formatting

* Document changes and format.hpp reversion. Need to remove iterate args support for now for later update.

* Remove iterate args support

* Remove iterate-args

* enforce abi versioning in macro if

* Fix doc error

* removed spaces to fix indentation error

---------

Co-authored-by: Madsen, Jonathan <Jonathan.Madsen@amd.com>

[ROCm/rocprofiler-sdk commit: e307b89ca4]
2025-01-17 14:42:25 -08:00
Baraldi, Giovanni f8442415f8 SWDEV-492607: Adding ATT wrapper (#40)
* Adding att parser wrapper

* Adding ATT tests as optional

* Adding decoder API for query capability

* Removed samples

* Formatting

* adding new line

* Removed perfetto and moved to static library

* using default search for lib

* Updated to SDK

* Namespace changes

* Added tests

* Small refactor

* Updated API to receive agent_id

* Fixing tests

* Tidy fixes

* Not write to file

* Switch to filesystem.hpp

* Compilation fixes

* Formatting

* Tidy fix

* Removed likely

* Adding tests

* Added gfx9 test

* Adding gfx12 tests

* Formatting

* Enable tidy

* Fix tests

* Fix deadlock on agent test

* Workaround ASAN

* Moving query outside class.

* Fix standalone tool

* Addressing comments

* Formatting

* Change query name

* Fixed some tests. Updated PR comments.

* Formatting

* Improved coverage

* Formatting

* Fix for comments

* Formatting

* Adding some description. Fix error type.

---------

Co-authored-by: Giovanni Baraldi <gbaraldi@amd.com>

[ROCm/rocprofiler-sdk commit: 2c8e88a76b]
2024-12-18 18:53:32 -08:00
Trowbridge, Ian b2aa29eb0a Skip Building of OpenMP Samples and Tests (#77)
* Add option to disable openmp samples

* Skip building openmp tests and samples for now

[ROCm/rocprofiler-sdk commit: 9de284a568]
2024-12-18 11:37:51 -06:00
Madsen, Jonathan a79f8a0198 SDK: OMPT Support (#22)
* Ability to select alternative compiler per file

Implementation of ompt interface to rocprofiler SDK. task_create and task_schedule are not supported.

Misc updates

Update OpenMP target sample

- samples/ompt -> samples/openmp_target
- fix sample test of openmp-target
- reorganize files

Rework OpenMP implementation

Minor OpenMP implementation cleanup

Rename samples/openmp_target CMake targets

Add tests/bin/openmp

- OpenMP target test app in tests/bin/openmp/target

Format samples/openmp_target CMakeLists.txt

Misc lib/rocprofiler-sdk/openmp cleanup

- fix includes
- convert_arg

Update openmp.def.cpp

- tweak includes
- remove lots of temporary variables

Update samples

- common::get_callback_id_names() -> common::get_callback_tracing_names()
- add kernel dispatch, memory copy, scratch memory buffered tracing to openmp target sample

Fix code object operation names

- add "CODE_OBJECT_" prefix

Update include/rocprofiler-sdk/openmp/api_id.h

- remove spurious comment

Miscellaneous openmp updates

- similar API for openmp_begin and openmp_end
- move implementations of ompt callbacks to openmp.cpp
- ompt_{thread_begin,thread_end,parallel_begin,parallel_end}_callbacks are openmp_events

[SWDEV-484495] Fix int truncation in CSV output (#1098)

CSV output truncates doubles to ints when it shouldn't. Derived metrics
are (mostly) doubles and lose precision (or become worthless) if treated
as an int. Converted these to double to match the format we return from
rocprof-sdk.

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

Update limit for max counter records in rocprof-tool (#1073)

A fixed sized std::array is used to store counter records in rocprofiler SDK. This limit was breached in SWDEV-484742. Upping the limit to 512 to be less likely to reach this limit again.

adding proxy ompt_data_t * arguments

fixes for proxy pointers

- Implement proxy ompt_data_t* pointers for clients
- Add ompt_data_t* arguments back to callback API
- Modify openmp sample to illustrate use of proxy pointers

formatting

SWDEV-467350: Skipping tool counter iteration for unsupported hardware (#1083)

Fixing some accumulate metrics (#1089)

* Fixing some accumulate metrics

* Fixing some more accumulate metrics

---------

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

updating rocprofv3 help options (#1113)

* updating rocprofv3 help options

* updating CHANGELOG

Fixing installed pacakge tests in CI (#1119)

* Fixing installed pacakge tests in CI

* Formatted rocprofv3.py with black formatter

SWDEV-488948: PC Sampling - Correlation class to provide some thread safety. Adding multithread tests. (#1112)

* SWDEV-488948: PC Sampling - Correlation class to provide some thread safety. Adding multithread tests.

* Update source/lib/rocprofiler-sdk/pc_sampling/parser/correlation.hpp

Co-authored-by: Vladimir Indic <139573562+vlaindic@users.noreply.github.com>

* Update source/lib/rocprofiler-sdk/pc_sampling/parser/correlation.hpp

Co-authored-by: Vladimir Indic <139573562+vlaindic@users.noreply.github.com>

* Adding backlog for codeobj changes

* Formatting

* Update source/lib/rocprofiler-sdk/pc_sampling/code_object.hpp

Co-authored-by: Vladimir Indic <139573562+vlaindic@users.noreply.github.com>

* Update source/lib/rocprofiler-sdk/pc_sampling/code_object.hpp

Co-authored-by: Vladimir Indic <139573562+vlaindic@users.noreply.github.com>

---------

Co-authored-by: Vladimir Indic <139573562+vlaindic@users.noreply.github.com>

SWDEV-487621: Fixes for metric definitions (#1118)

* Fixes for metric definitions

* Removing gfx8

* Update changelog

* Fixing unit tests

* Small fixes

* Fix for write size

Fix PSDB change (#1120)

Reverts change to `source/include/rocprofiler-sdk/callback_tracing.h`
from commit c77e4d3b80

clang-18 build fix for RCCL (#1123)

Removes ambiguity on const usage, which clang-18 complains about
(preventing build with warn error).

mem copy direction field update (#1124)

Adding Node-id for debugging with log level trace (#1090)

fix botched rebase

Per Jonathan to remove -rdynamic warning so CI will continue

pedantic formatting

Correct the package name of rocprofiler-sdk (#1126)

* Correct the package name of rocprofiler-sdk

ROCM VERSION(for ex: 60300) was missing in the package name.
Added the same

* Use cmake cache string while setting the variable for ROCm Version

* correct the cmake-format

---------

Co-authored-by: Ranjith Ramakrishnan <Ranjith.Ramakrishnan@amd.com>

Fixing kokkosp tool library packaging (#1121)

* Fixing kokkosp tool library packaging

* Update source/lib/rocprofiler-sdk-tool/kokkosp/CMakeLists.txt

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update CMakeLists.txt

* Update CMakeLists.txt

* Component Requirement in CPack

* Adding package dependency

* Update CMakeLists.txt

* Update rocprofiler_config_packaging.cmake

* Fix rocprofiler-sdk-tool-kokkosp BUILD/INSTALL RPATH

- CMAKE_INSTALL_LIBDIR doesn't help

* Add BUILD/INSTALL RPATH to rocprofv3-trigger-list-metrics

- fixes packaging issues

* Update packaging

- core depends on rocprofiler-sdk-roctx
- add CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS to resolve inter-package dependencies

* Fix package depends version format

* Improve tests/rocprofv3/summary/validate logging

* Update CI workflow

- prioritize roctx package in Install Packages step

* Remove setting <package-name>_VERSION in config.cmake.in

- this is automatically handled by existence of <package-name>-config-version.cmake

* Update rocprofiler-sdk-config.cmake

- relax find_package versioning requirements to same major and minor version

* Update rocprofiler-sdk-config.cmake

- relax find_package versioning requirements (remove EXACT, specify range)

* Tweak CI workflow

* Update perfetto_reader.py

- better handle failure to load trace processor

* Misc cleanup for config packaging

* Update config packaging

* Update config packaging

* Revert perfetto for core-rpm packages

* Revert perfetto for core-rpm packages

- perfetto < 0.9.0

* Tweak tests/rocprofv3/summary/validate.py

- reorder some checks

---------

Co-authored-by: Ammar Elwazir <aelwazir@useocpm2m-387-013.amd.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>

Clang Warning Fixes (#1131)

Builds prevented on clang-18

Adding start and end timestamp columns in csv (#1128)

* Adding start and end timestamp columns in csv

* Adding assert check for the counter timestamps

---------

Co-authored-by: Gopesh Bhardwaj <gopesh.bhardwaj@amd.com>

rocprofv3: docs and help menu updates (#1129)

* doc updates

* Correcting ROCtx information

* Making ROCTx string consistent

* missing occurence

Renamed agent profiling service to device counting service (#1132)

* Renamed agent profiling service to device counting service

Name more aptly represents what agent profiling did (device wide
counter collection). Conversion of existing user code can be
performed by the following find/sed command:

find . -type f -exec sed -i 's/rocprofiler_agent_profile_callback_t/rocprofiler_device_counting_service_callback_t/g; s/rocprofiler_configure_agent_profile_counting_service/rocprofiler_configure_device_counting_service/g; s/agent_profile.h/device_counting_service.h/g; s/rocprofiler_sample_agent_profile_counting_service/rocprofiler_sample_device_counting_service/g' {} +

* Converted dispatch profile to dispatch counting service

* Debug for functioal counters test

* Minor changes for CI

* Minor fix

* More fixes for CI

* Update evaluate_ast.cpp

---------

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

Testing updated RPM dockers (#1136)

* Testing updated RPM dockers

* Trying to fix PSDB for test package dependency

Agent Profiling Fixes for Broken/Improper API Usage (#1122)

Prevent's multiple setups of agent profiling on the same agent.

Fixes agent read context to only read agents that were setup.

Prevent copy of agent profiling internal data struct and reset
hsa_signal on move to prevent inadvertant delete.

Simplifying PR template (#1139)

Implementation of ompt interface to rocprofiler SDK. task_create and task_schedule are not supported.

Fixing installed pacakge tests in CI (#1119)

* Fixing installed pacakge tests in CI

* Formatted rocprofv3.py with black formatter

Fix PSDB change (#1120)

Reverts change to `source/include/rocprofiler-sdk/callback_tracing.h`
from commit c77e4d3b80

delete unused files

added arguments to some OMPT buffter records

* Fix cmake issues

Remove rocprofiler_ompt_finalize_tool

- a public API function is not necessary: should just finalize rocprofiler-sdk

Fix duplicate ROCPROFILER_{BUFFER,CALLBACK}_TRACING_KIND_STRING

Add lib/rocprofiler-sdk/ompt.hpp

- declares rocprofiler::sdk::finalize_ompt

Remove change to tests/rocprofv3/summary/conftest.py

Add set_fini_status(1) back to registration.cpp

Deleted uneeded files

Incoporate OpenMP code and sample

Fix merge issues with amd-staging

Add push_correlation_id for OpenMP tasking; improve debugability

fixup bad merge

* Suppress OpenMP data race

* Fix openmp_target sample

* Enum and struct name changes + source code reorg

- remove mix of ompt and openmp
  - opted for ompt
- changes made for consistency
  - ompt_api -> ompt
  - openmp_api -> ompt
  - OPENMP -> OMPT

* Update tests and more renaming

- dest_device_num -> dst_device_num
- src_addr -> src_address
- dest_addr -> dst_address
- remove info_type::begin
- require OMP_TARGET_OFFLOAD

* Update openmp-target test/sample env and labels

* Formatting

* Tweaks to cmake for openmp target

- Disable for thread sanitizers due to preloading issue

* OpenMP target cmake updates

- remove gfx1010 (fails on mi300)
- OPENMP_GPU_TARGETS

* Remove device_unload and target_map_emi support

- these are never supported by AMD OpenMP compilers

* Update CI workflow

- exclude openmp-target tests from navi3 and vega20

---------

Co-authored-by: Larry Meadows <Lawrence.Meadows@amd.com>
Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>

[ROCm/rocprofiler-sdk commit: 00c46fd5e5]
2024-12-05 22:48:19 -06:00
itrowbri 94f4f56c40 Memory Allocation Tracking (#1142)
* Initial commit: Need to implement wrapper function to collect data and test that wrapper function is correctly replacing core HSA functions

* Attempted to implement wrapper implementation for hsa memory allocation functions. Need to modify generate record files and test if implementation is working as expected

* Debugging and implementing generateCSV function

* Memory allocation size and starting address outputted to csv and json file formats

* Formatting

* Initial setup for OTF2 and Perfetto generation

* Collecting agent id for memory_allocation and formatting

* Modified memory_allocation.cpp to set up code for AMD_EXT commands

* Support for memory_pool_allocate added

* Removed accidently added file

* Made flag optional and added more OTF2 and Perfetto code. Needs testing to ensure perfetto and OTF2 works

* Formatting

* Fixed perfetto and otf2 output

* Fixed flag issue due to incorrect buffer use

* Updated documentation

* Small cleaning and comments

* Added test for HSA memory allocation tracing

* Fixed summary test validation errors due to allocation tracing. Added type to location_base to create unique event ids for allocation due to OTF2 trace error

* Decreased lower limit of hip calls for test

* Modified summary tests to vary number of allocate requests

* Minor fixes to address comments. Still need to address OTF2 comments

* Fix docs and changed OTF2 to use enum for type specified in location_base construction

* Fixed schema error

* Added vmem command tracking. Need to add test

* Updated test to work with vmem command and updated generateCSV to output int instead of hex string.

* OTF2 enum update and mispelling fix

* CI does not support Virtual Memory API. Removed vmem test. Will add back if CI is modifed to suport vmem API

* Update CMakeLists.txt for memory allocation test

* Updated summary test

* Minor fixes to address comments

* Moved domain_type.hpp enum to before LAST

* Fixed compile errors and formatting

* Fixed stats summary domain name error

* Added rocprofv3 test

* Page migration test fix

* Undo page migration test changes. Failures do not appear to have to do with memory allocation

[ROCm/rocprofiler-sdk commit: 3bd7773cf7]
2024-11-18 20:22:14 -06:00
Vladimir Indic 1c98e94488 PC sampling: integration test with instruction decoding (#929)
* 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]
2024-07-04 11:19:27 +05:30
Jonathan R. Madsen 4cd076b9cc Test using HIP Graphs (#835)
* Test using hip graphs

* Remove assert for api_end < async_end

* Update rocprofv3/tracing-hip-in-libraries::test_api_trace

* Update rocprofv3/tracing-hip-in-libraries::test_api_trace

* Increase rocprofv3-test-trace-hip-in-libraries-validate timeout

* Update rocprofv3/tracing-hip-in-libraries::test_api_trace

* Remove submit retry

* Update rocprofv3/tracing-hip-in-libraries::test_api_trace

* Increase rocprofv3-test-trace-hip-in-libraries-validate timeout

* Update lib/common/container/record_header_buffer.hpp

- minor tweaks

* Update lib/rocprofiler-sdk/buffer.hpp

- tweak ROCPROFILER_BUFFER_POLICY_LOSSLESS flush behavior

* Increase rocprofv3-test-trace-hip-in-libraries-validate timeout

* Update rocprofv3/tracing-hip-in-libraries::test_api_trace

* Revert rocprofv3-test-trace-hip-in-libraries-validate timeout

* Update run-ci.py

- RETRY_COUNT set to zero

[ROCm/rocprofiler-sdk commit: 1f96593b4f]
2024-05-07 15:10:22 -05:00
Giovanni Lenzi Baraldi ea56f79495 Gbaraldi/att tool (#766)
* Enabling codeobj and thread trace samples

* Updating aqlprofile_v2 header

* Codeobj and thread trace samples with output log files

* Fixing clang format

* Cmake formatting

* Adding coverage to codeobj

* Comment trace sample

* Adding ATT Parser API

* Fixing forwarding to aqlprofile

* Clang formatting

* Clang tidy

* Adding option to print memory kernels

* Clang format

* Remove default from switch case

* Separating  client/main on codeobj sample for ASAn

* Formatting

* Gbaraldi/att tool rebase (#801)

* Enabling codeobj and thread trace samples

* Updating aqlprofile_v2 header

* Codeobj and thread trace samples with output log files

* Fixing clang format

* Cmake formatting

* Adding coverage to codeobj

* Comment trace sample

* Removing python from workflow

* Adding ATT Parser API

* Fixing forwarding to aqlprofile

* Clang formatting

* Clang tidy

* Adding option to print memory kernels

* Clang format

* Remove default from switch case

* Separating  client/main on codeobj sample for ASAn

* Formatting

* Enabling codeobj and thread trace samples

* Updating aqlprofile_v2 header

* Codeobj and thread trace samples with output log files

* Fixing clang format

* Cmake formatting

* Adding coverage to codeobj

* Comment trace sample

* Adding ATT Parser API

* Fixing forwarding to aqlprofile

* Clang formatting

* Clang tidy

* Adding option to print memory kernels

* Clang format

* Remove default from switch case

* Separating  client/main on codeobj sample for ASAn

* Formatting

* Fix codeobj library

* Allow thread trace in parallel with other service

* Zeroing the HSA signals

* Adding exception wrappers in ATT sample

* Removed force configure

* Remove force configure from ISA decode

* Removing codecov flag

* Gbaraldi/att tool tests (#828)

* Adding tests for codeobj ISA decode

* Adding ATT tests

* Adding ATT integration tests

* Formatting

* Changing codeobj binary extension

* Renaming codeobj library spaces

* Fixing samples

* Formatting

* Formatting

* Fixing int test

* Fixing linker error

* Fixing memory fault

* Moving kernel ot inside namespace

* ASAN linking fix

* Removing unecessary headers

* Formatting

* Fixing target_cu

* Remove codeobj binary

* Revert "Remove codeobj binary"

This reverts commit 7d286f89d8096bc36925cd79cd742a5e6d10d179.

* Enable memory snapshot

* adding comgr

---------

Co-authored-by: Ammar ELWazir <ammar.elwazir@amd.com>

[ROCm/rocprofiler-sdk commit: 099ac7c72d]
2024-05-03 18:45:47 -03:00
Jonathan R. Madsen 7e166e2b5a PyTest utilities (#789)
- tests/pytest-packages/pytest_utils containing utilities for pytest validation tests
- example:

```python
from rocprofiler_sdk.pytest_utils.dotdict import dotdict
```

[ROCm/rocprofiler-sdk commit: 39dd5a81df]
2024-04-18 03:09:01 -05:00
Mythreya 4f99edbad5 Page migration reporting (#651)
* Page migration reporting support

* Page migration: Update parser and reporting

Container does not lave latest KFD header, so CI might fail

* Add kfd_ioctl.h

* Formatting

* Update get_key

- get key was not used (and shouldn't be), so delete it

* clang-tidy fixes

* Tests for page migration

* Apply suggestions from code review

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update tests/bin/page-migration/CMakeLists.txt

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update page-migration test app

- add hipHostRegister to register mmap'ed allocation with HIP
- misc cleanup and reorg
- remove HSA_XNACK=1 from test env

* Update lib/rocprofiler-sdk/tests/page_migration.cpp

- fix compilation error

* Minor updates (reorg, rename)

* Page migration reporting support

* Page migration: Update parser and reporting

Container does not lave latest KFD header, so CI might fail

* Update page migration tests, fix trigger types

* Page Migration Tracing Support Refactoring (#753)

* Reorganization

* Update page migration init/fini

* Formatting

* Update page_migration.cpp

- change logging severity

* Skip test if KFD does not support page migration reporting

* Rework skipping test if KFD does not support page migration

* Fix event trigger enum values

* Fix clang-diagnostic-unused-const-variable

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Co-authored-by: Jonathan R. Madsen <jrmadsen@users.noreply.github.com>

[ROCm/rocprofiler-sdk commit: fd3d97287c]
2024-04-12 15:51:44 -05:00
Mythreya fb1b61d79a Add support for scratch reporting (#523)
* Add ToolsApiTable

Add ToolsApiTable wrapping for
scratch memory tracking

* Add initial support for scratch memory tracking

Buffering is implemented

* cmake formatting (cmake-format) (#525)

Co-authored-by: MythreyaK <MythreyaK@users.noreply.github.com>

* source formatting (clang-format v11) (#524)

Co-authored-by: MythreyaK <MythreyaK@users.noreply.github.com>

* Add callback tracing for scratch

Fixed the error where scratch tracking init was called irrespective of whether any client requested for it

* Apply suggestions from code review

Co-authored-by: Jonathan R. Madsen <jrmadsen@users.noreply.github.com>

* Fix tools api copy/update

Table were saved/updated incorrectly in previous
commit. Also adds passing user data through the callback

* Fix OpKind sequence for scratch tracking

Previously scratch was using OpKind from rocprofiler-sdk, but
templates were instantiated using API ID. These differ by 1

* Integration tests for scratch reporting

Added buffer and callback integration tests for scratch reporting

* source formatting (clang-format v11) (#550)

Co-authored-by: MythreyaK <26112391+MythreyaK@users.noreply.github.com>

* cmake formatting (cmake-format) (#551)

Co-authored-by: MythreyaK <26112391+MythreyaK@users.noreply.github.com>

* python formatting (black) (#549)

Co-authored-by: MythreyaK <26112391+MythreyaK@users.noreply.github.com>

* CI fixes

* source formatting (clang-format v11) (#554)

Co-authored-by: MythreyaK <26112391+MythreyaK@users.noreply.github.com>

* Update api

Rebase on main and updates based on PR feedback

* Update scratch reporting and address PR comments

- Added agent id to buffer records
- Updated `test_internal_correlation_ids` - Is almost identical to
  one in async-copy
- Updated scratch test to check for agent id
- Updated queue id serialization in callback records (prints
  handle as nested key)
- Remove `marker_api_traces` from scratch `test_internal_correlation_ids`
  validation test
- Rename `amd_tools_api` to `scratch_memory`
- Added doxygen comments
- Remove scratch callback from `tool.cpp`
- Replace assert with `LOF_IF` in `scratch_memory.cpp`

* Update tools table

Changed to match up with changes to hsa tables in main branch

* Rework scratch memory structure

* Update tests

- Added suggestions from PR review, and updated tests accordingly

* Misc cleanup

* Update scratch test

As of Apr 4th, `hsa_amd_agent_set_async_scratch_limit` is disabled.

Note,
> This API: `hsa_amd_agent_set_async_scratch_limit` is currently
> disabled. We need some changes in CP firmware to be able to do this
> and these changes are not ready yet.
> With the current code, you will also not get notifications for
> alternate-scratch allocations because this feature has been disabled
> while CP firmware is making additional changes
> We are hoping to have that feature enabled by ROCm-6.3

* Minor update to lib/rocprofiler-sdk/internal_threading.*

- delay destruction of shared_ptrs of the tasks to prevent rare (but possible) data race on the destruction of the shared_ptr

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: MythreyaK <MythreyaK@users.noreply.github.com>
Co-authored-by: Jonathan R. Madsen <jrmadsen@users.noreply.github.com>
Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>

[ROCm/rocprofiler-sdk commit: 4fa165ec1a]
2024-04-05 20:32:57 -05:00
Jonathan R. Madsen 407fc57ede Shared Library Constructor (rocprofv3 deadlock fix) (#599)
* Moved tests/apps to tests/bin

* Renamed cmake project in tests/bin

* Update samples

- Use ROCPROFILER_DEFAULT_FAIL_REGEX
- tweaks to stdout messages

* Update tests

- Use ROCPROFILER_DEFAULT_FAIL_REGEX

* Add tests/lib

- libraries with HIP code

* Update PTL submodule

- remove atexit delete of thread_id_map

* Update cmake/rocprofiler_options.cmake

- Set ROCPROFILER_DEFAULT_FAIL_REGEX

* Update common lib: env + logging

- improved customization of logging settings
- default to disabling logging to files
- install failure handler for rocprofv3
- set_env support in environment.*

* Add lib/rocprofiler-sdk/shared_library.cpp

- shared library constructor

* Update lib/rocprofiler-sdk-tool/tool.cpp

- destructor thread safety
- convert callback_name_info and buffered_name_info to pointers
- install failure handler for logging

* Add tests/bin/hip-in-libraries

- hip-in-libraries is an exe which uses two shared libraries where each shared library contains HIP kernels
  - used for testing deadlocking within __hipRegisterFatBinary

* Update bin/rocprofv3

- reorganized the env variables
- use exec to launch command
- set ROCPROFILER_LIBRARY_CTOR=1

* Add tests/rocprofv3/tracing-hip-in-libraries

- uses hip-in-libraries exe for exe which uses shared libraries to launch HIP kernels

* Update bin/rocprofv3

- fix counter collection (no exec)

* Update lib/rocprofiler-sdk-tool/tool.cpp

- replace "Kernel-Name" with "Kernel_Name"

* Update lib/rocprofiler-sdk/registration.cpp

Use RTLD_LOCAL instead of RTLD_GLOBAL for env libraries

* Update tests/rocprofv3

- replace "Kernel-Name" with "Kernel_Name"

* Update tests

- vector-ops (bin) stream syncs + runs with 4 queues per device
- improve counter-collection/input1 validation
- rocprofv3/tracing-hip-in-libraries does not do sys-trace
- improved validation script for tracing-hip-in-libraries
- updated dispatch_callback in json-tool.cpp following reworking of prototypes for counter collection

* Update samples/counter_collection

- updated dispatch_callback(s) and record_callback(s) following reworking of prototypes

* Update bin/rocprofv3

- reorganized help menu
- added options for sub-HSA tables
- added --hip-runtime-trace
- changed --hip-trace to include --hip-compiler-trace

* Update lib/rocprofiler-sdk-tool

- improved kernel filtering
- removed arch_vgpr, accum_vgpr, sgpr code (in rocprofiler-sdk)
- fixed issue with counter-collection w/o tracing
- added support for fine grained HSA API tracing
- removed directly linking to HSA-runtime

* Update lib/rocprofiler-sdk/agent.cpp

- rocp_agents != hsa_agents is non-fatal when ROCPROFILER_BUILD_CI=OFF (CMake option)

* GPR (vector and scalar) info in kernel symbol data

- rocprofiler_callback_tracing_code_object_kernel_symbol_register_data_t contains general purpose register info

* Header include order fix

- Include repo headers first
- Third party library headers next
- standard library headers last

* Update dispatch profiling public API

- introduce rocprofiler_profile_counting_dispatch_data_t
- change signature of rocprofiler_profile_counting_dispatch_callback_t and rocprofiler_profile_counting_record_callback_t
- provide rocprofiler_user_data_t pointer in dispatch callback
- provide rocprofiler_user_data_t value (from dispatch cb) in record callback

* Update tests/bin/CMakeLists.txt

- fix add_subdirectory(hip-in-libraries) order

* Update VERSION

- bump to 0.2.0 in prep for AFAR

[ROCm/rocprofiler-sdk commit: 7b6d3c70bd]
2024-03-07 22:21:26 -06:00
Jonathan R. Madsen 15302ff11d C compatibility for public headers (#566)
* C compatibility for public headers

- add tests/tools/c-tool.c
  - builds a tool (which does nothing) with C language
  - ensures that tool can be compiled in C
- add tests/c-tool/CMakeLists.txt
  - ensures that tool library build from C is a valid tool
- rocprofiler_counter_info_v0_t is_derived is int instead of bool
  - C does not have bool unless <stdbool.h> is included
- add `include/rocprofiler-sdk/hsa/api_trace_version.h
  - handles providing HSA_*_TABLE_(MAJOR|STEP)_VERSION values if compiled from C
- cmake define in version.h.in for ROCPROFILER_HSA_*_TABLE_(MAJOR|STEP)_VERSION
  - HSA table versions compiled with
- use rocprofiler_(hsa|hip|marker)_api_no_args struct to handle incompatibility b/t empty structs in C vs. C++ (size of 0 vs. size of 1)
- extern "C" in include/rocprofiler-sdk/{hsa,hip,marker}/api_args.h
- fixed spelling error: derrived -> derived
- scope YY_NO_INPUT compile definition to lib/rocprofiler-sdk/counters/parser/*

* Revert CDash dashboard

[ROCm/rocprofiler-sdk commit: a1267e1fd2]
2024-02-29 23:49:54 -06:00
SrirakshaNag 64b06a643e Kernel Serialization Support (#379)
* Serialization-rebased with main branch

* Removing client_id from queue completion callbacks

* removing debugging code

* source formatting (clang-format v11) (#449)

Co-authored-by: SrirakshaNag <SrirakshaNag@users.noreply.github.com>

* moving ready signal handler to anonymous namespace

* source formatting (clang-format v11) (#450)

Co-authored-by: SrirakshaNag <SrirakshaNag@users.noreply.github.com>

* Handling deque search better in queue destructor

* source formatting (clang-format v11) (#451)

Co-authored-by: SrirakshaNag <SrirakshaNag@users.noreply.github.com>

* disabling test_total_runtime test  in code coverage

---------

Co-authored-by: Benjamin Welton <bewelton@amd.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: SrirakshaNag <SrirakshaNag@users.noreply.github.com>

[ROCm/rocprofiler-sdk commit: f6198f226a]
2024-02-05 12:42:59 -06:00
Jonathan R. Madsen cefb7bc8d6 HIP API Tracing (#357)
* Update include/rocprofiler-sdk/hip*

- updates for intercept table

* Update lib/common/units.hpp

- clang-tidy fixes

* Add lib/rocprofiler-sdk/hip

- tracing implementation for the HIP intercept table

* Update source/lib/rocprofiler-sdk/CMakeLists.txt

- add_subdirectory(hip)

* Update source/lib/rocprofiler-sdk/hsa

- offset function in hsa_api_info<Idx>
- remove report_activity, set_callback
- Tweak HSA_API_TABLE_LOOKUP_DEFINITION

* Update lib/rocprofiler-sdk/hip

- rocprofiler::hip::copy_table
- stringize_impl print dereferenced pointers when possible

* Update lib/rocprofiler-sdk/hsa/utils.hpp

- stringize_impl print dereferenced pointers when possible

* Update lib/rocprofiler-sdk/tests/intercept_table.cpp

- remove failures for intercepting HIP API tables

* Update include/rocprofiler-sdk/fwd.h

- add ROCPROFILER_HIP_RUNTIME_LIBRARY (== ROCPROFILER_HIP_LIBRARY)
- add ROCPROFILER_HIP_COMPILER_LIBRARY

* Update lib/rocprofiler-sdk/buffer_tracing.cpp

- Support ROCPROFILER_BUFFER_TRACING_HIP_API in rocprofiler_query_buffer_tracing_kind_operation_name
- Support ROCPROFILER_BUFFER_TRACING_HIP_API in rocprofiler_iterate_buffer_tracing_kind_operations

* Update lib/rocprofiler-sdk/callback_tracing.cpp

- Support ROCPROFILER_CALLBACK_TRACING_HIP_API in rocprofiler_query_callback_tracing_kind_operation_name
- Support ROCPROFILER_CALLBACK_TRACING_HIP_API in rocprofiler_iterate_callback_tracing_kind_operations
- Support ROCPROFILER_CALLBACK_TRACING_HIP_API in rocprofiler_iterate_callback_tracing_kind_operation_args

* Update lib/rocprofiler-sdk/intercept_table.cpp

- support HipDispatchTable and HipCompilerDispatchTable

* Update lib/rocprofiler-sdk/internal_threading.cpp

- Support ROCPROFILER_HIP_COMPILER_LIBRARY

* Update lib/rocprofiler-sdk/registration.cpp

- Support "hip" and "hip_compiler" in rocprofiler_set_api_table
- Added some extra logging

* Update samples/api_{buffered,callback}_tracing

- Modifications to demonstrate HIP API tracing

* Update tests/kernel-tracing

- Modifications to handle/test HIP API tracing

* Separate HIP tracing from HIP compiler tracing

* Fix installation of include/rocprofiler-sdk/hip/*

- add compiler and table headers to install

* Fixes to HIP interception

- hip_api_trace.hpp was updated a bit
  - removed hipGetDeviceProperties (generic)
  - added hipGetDevicePropertiesR0600
  - added hipGetDevicePropertiesR0000
  - removed hipRegisterTracerCallback
  - reordered hipCreateChannelDesc, hipExtModuleLaunchKernel, hipHccModuleLaunchKernel
  - added hipDrvGraphAddMemsetNode
- static asserts in hsa_api_info ensuring ordering of pointers

* Update lib/rocprofiler-sdk/hip/hip.*

- use size_t instead of rocprofiler_hip_table_api_id_t as non-type template parameter (smaller binary)
- separated out population of callback_context_data and buffered_context_data into non-template function (significantly smaller binary)

* Update lib/rocprofiler-sdk/hsa/hsa.*

- separated out population of callback_context_data and buffered_context_data into non-template function (significantly smaller binary)

* Update test/kernel-tracing/validate.py

- does not expect any hip_api_traces until libamdhip.so actually starts using rocprofiler-register

* Update tests/tools/json-tool.cpp

- fix context associated with "HIP_API_CALLBACK"

* Update external/CMakeLists.txt

- move misc variables to top of CMakeLists.txt so they apply to all external subprojects
  - BUILD_TESTING (OFF)
  - BUILD_SHARED_LIBS (OFF)
  - BUILD_OBJECT_LIBS (OFF)
  - BUILD_STATIC_LIBS (ON)
  - CMAKE_POSITION_INDEPENDENT_CODE (ON)
  - CMAKE_VISIBILITY_INLINES_HIDDEN (ON)
  - CMAKE_CXX_VISIBILITY_PRESET (hidden)
- disable using libunwind in glog

* Update lib/rocprofiler-{sdk,sdk-tool}/CMakeLists.txt

- remove explicit setting of SKIP_BUILD_RPATH

* Update CMakeLists.txt

- set high-level CMAKE_BUILD_RPATH and CMAKE_INSTALL_RPATH_USE_LINK_PATH

* Update tests/CMakeLists.txt

- include(GNUInstallDirs)

* Update samples/CMakeLists.txt

- include(GNUInstallDirs)

* Update include/rocprofiler-sdk/hip/{compiler_api,api}_args.h

- remove extern "C" due to incompatibility b/t empty struct in C (size 0) vs. empty struct in C++ (size 1)

* Update lib/rocprofiler-sdk/hip/details/ostream.hpp

- clang-tidy fixes

* Update cmake/rocprofiler_linting.cmake

- add a feature for clang tidy exe

* Update lib/rocprofiler-sdk/hip/hip.cpp

- use recursion instead of fold expression due to clang-tidy errors (maximum nesting level exceeded)

* Update lib/rocprofiler-sdk/buffer_tracing.cpp

- fix merge

* Update lib/rocprofiler-sdk/callback_tracing.cpp

- fix merge

* Update bin/rocprofv3

- args for marker, HIP runtime, and HIP compiler tracing

* Update tests/apps/simple-transpose

- use roctx

* Update tests/rocprofv3/tracing

- validate marker API data

* Update lib/rocprofiler-sdk-tool

- support for HIP runtime, HIP compiler, marker API

* Update queue/queue_controller/registration/utility

- call hsa::queue_controller_fini() during finalization
- add a yield function to common/utility.hpp
  - implements a thread yield + sleep
- add a sync function to Queue class
- add a iterate_queues member function to QueueController
  - this is used to sync each queue during queue_controller_fini()

* Fix data races: queue/context/stable_vector

- stable_vector::emplace_back returns reference
- correlation id map uses stable_vector
- queue_info_session has explicit fields for queue id, hsa agent, rocp agent
- use hsa::get_table() in AsyncSignalHandler
- WriteInterceptor does not use TLS for context array

* Update lib/rocprofiler-sdk/hsa/hsa.*

- static object for API subtables
- accessors for API subtables
- google tests for HSA API subtables

* Update lib/rocprofiler-sdk/hsa/{queue,async_copy}.cpp

- use HSA subtable accessors

* Update rocprofiler_memcheck and CI workflow

- use GCC 13 instead of GCC 11 due to suspected false positives in thread sanitizer
  - GCC 13 uses libtsan.so.2

* Update CI workflow

* Update lib/rocprofiler-sdk/counters/{metrics,counters}

- fix possibly dangling reference to a temporary from gcc-13

* Update thread-sanitizer-suppr.txt

- Ignore data races originating in hsa-runtime library

* Update cmake/rocprofiler_memcheck.cmake

- Deduce the sanitizer library to preload by compiling an application and extracting the linked sanitizer library

* Update tests/rocprofv3/tracing/CMakeLists.txt

- add csv files to REQUIRED_FILES and ATTACH_ON_FAIL in validate test

* Update lib/common/container/record_header_buffer.hpp

- fix data race identified by gcc v13 and libtsan.so.2

* Update hip API id, args, and def

- remove hipDrvGraphAddMemsetNode (not part of ROCm 6.0

* Update lib/common/container/record_header_buffer.hpp

- fix deadlock in save/read/reset

* Update source/docs/CMakeLists.txt

- remove COMMAND_ERROR_IS_FATAL ANY to allow for printing of stdout/stderr

* Update lib/rocprofiler-sdk/hip/details/ostream.hpp

- remove overloads for HIP_MEMSET_NODE_PARAMS

* Update docs/CMakeLists.txt

- use find_program for shell instead of hardcoded /bin/bash

[ROCm/rocprofiler-sdk commit: c641749fe6]
2024-01-24 16:32:54 -06:00
Jonathan R. Madsen 37d7930a60 Tools update (#397)
* Srnagara/tool counters collect (#331)

* Adding counter collection capability to tools

* Adding counter collection feature to tools

* Adding counter collection capability to tools

* Fixing merge down issues

* Small tool fixes for build + prevent profile realloc

* Reproducing the counter name query issue in buffered callback

* Minor fix for init order + sample that directly uses sdk-tool for debug purposes

* Adding a temporary fix to print the counter names

* Fixing the output file name and reverting the changes of caching the profile config

* Fixing SGPR_Count value

* cleaning up debug prints

* Adding header to counter collection file

* Adding kernel filtering support

* Remove threading

* Cleaning up the code

* Removing redundant prints

* Revert "Remove threading"

This reverts commit 05c58fb9de826e92cf8d2e3d1c31d5578525dcb4.

* Revert "Cleaning up the code"

This reverts commit 1d964882bf2396dee8ad020cbb6c83b36e0674e9.

* Changing the tools code to align with init-order fix

* cmake formatting (cmake-format) (#335)

Co-authored-by: SrirakshaNag <SrirakshaNag@users.noreply.github.com>

* source formatting (clang-format v11) (#336)

Co-authored-by: SrirakshaNag <SrirakshaNag@users.noreply.github.com>

* Adding support for async memory copy

* source formatting (clang-format v11) (#391)

Co-authored-by: SrirakshaNag <SrirakshaNag@users.noreply.github.com>

* Fixing header typo

* Fixing tool_fini

* Replaceing the direction and kind fields values with description

* Update lib/rocprofiler-sdk-tool/helper.cpp

- Remove use of VLA

* Update lib/rocprofiler-sdk-tool/tool.cpp

- Formatting

* Migrate common/config.* to rocprofiler-sdk-tool

* Update lib/rocprofiler-sdk-tool/tool.cpp

- fix clang-tidy issues

* source formatting (clang-format v11) (#392)

Co-authored-by: jrmadsen <jrmadsen@users.noreply.github.com>

* Update lib/common/mpl.hpp

- is_string_type / is_string_type_impl for deducing if type is a string type

* Update include/rocprofiler-sdk/fwd.h

- ROCPROFILER_BUFFER_TRACING_MEMORY_COPY_NONE starts at zero

* Update lib/rocprofiler-sdk/hsa/async_copy.*

- functions for operation ids and names

* Update lib/rocprofiler-sdk/buffer_tracing.cpp

- support iterating and getting names for ROCPROFILER_BUFFER_TRACING_MEMORY_COPY

* Update lib/rocprofiler-sdk-tool/config.*

- env ROCPROFILER_ prefix -> ROCPROF_ prefix
- add support for memory copy tracing, counter collection, etc.

* Update lib/rocprofiler-sdk-tool/helper.*

- removed TracerFlushRecord
- removed cxa_demangle (use one in common library)
- removed GetCounterNames (handled in config)
- removed GetKernelNames (handled in config)

* Add lib/rocprofiler-sdk-tool/output_file.*

- separate out get_output_stream function and output_file struct from tool.cpp

* Add lib/rocprofiler-sdk-tool/csv.hpp

- write_csv_entry automatically quotes strings
- csv_encoder struct enforces correct number of columns

* Update lib/rocprofiler-sdk-tool/CMakeLists.txt

- add new files

* Update lib/rocprofiler-sdk-tool/tool.cpp

- update construction of output_file class
- add kernel_symbol_data for serializing kernel trace data
- use config instead of env lookups
- optimize counter collection profile config lookup/creation

* Update bin/rocprofv3

- rocprofv3 --help exits with 0 (as it should)
- command-line arg for memory copy tracing
- command-line arg for mangled kernels
- command-line arg for truncated kernels
- env ROCPROFILER_ prefix -> env ROCPROF_ prefix

* Update tests/async-copy-tracing/validate.py

- update test_async_copy_direction to new enum values

* Update tests/kernel-tracing/validate.py

- update test_async_copy_direction to new enum values

* Update tests/tools/json-tool.cpp

- add ROCPROFILER_BUFFER_TRACING_MEMORY_COPY to supported buffer_name_info

* Update samples/counter_collection/{CMakeLists.txt,main.cpp}

- remove counter-collection-sdk-tool

* Update .github/workflows/docs.yml

- fix paths triggering running the workflow

---------

Co-authored-by: Benjamin Welton <bewelton@amd.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: SrirakshaNag <SrirakshaNag@users.noreply.github.com>
Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Co-authored-by: jrmadsen <jrmadsen@users.noreply.github.com>

* adding counter collection support

* Adding counter collection test

* changing directory structure of counter collection tests

* Fixing test path for rocprofv3

* Adding hsa-tracing basic test

* cmake formatting (cmake-format) (#362)

Co-authored-by: bgopesh <bgopesh@users.noreply.github.com>

* counter collection tests drop2

* fixing hsa-trace test for rocprofv3 path

* python formatting (black) (#371)

Co-authored-by: bgopesh <bgopesh@users.noreply.github.com>

* both counter colleciton and tracing should work together

* Fixing rocprofv3 path

* Attempt to fix Segfault with AddressSanitizer

* fixing sanitizer segfault

* Update rocprofv3

* Update lib/rocprofiler-sdk-tool/README.md

- update env variables

* Update lib/rocprofiler-sdk/buffer_tracing.cpp

- return ROCPROFILER_STATUS_BUFFER_NOT_FOUND if buffer tracing service is configured with invalid buffer

* Update lib/rocprofiler-sdk-tool/tool.cpp

- designated hsa API trace buffer

* Update tests/hsa-tracing/CMakeLists.txt

- Fix environment

* Update rocprofv3

- do not override HSA_TOOLS_LIB
- support ROCPROF_PRELOAD
- LD_PRELOAD librocprofiler-sdk.so

* Restructure tests directory

- move all rocprofv3 integration tests into subfolder

* Update cmake/Templates/rocprofiler-sdk/config.cmake.in

- create rocprofiler-sdk::rocprofv3 cmake target

* Update tests/rocprofv3/hsa-tracing

- improve validate.py
- convert input to dict via csv.DictReader

* Update tests/apps/CMakeLists.txt

- fix build rpath for simple-transpose

* Update  cmake/rocprofiler_memcheck.cmake

- prefer libtsan.so.0

* Update tests/rocprofv3/hsa-tracing

- move to tests/rocprofv3/tracing
- include kernel tracing and memory copy tracing

* Update lib/rocprofiler-sdk-tool/tool.cpp

- normalize "_ID" vs. "_Id" in CSV column names (use "_Id")

* Update lib/rocprofiler-sdk/buffer.{hpp,cpp}

- change signature of buffer::get_buffers()
- buffer::get_buffers() uses static_object

* Update lib/rocprofiler-sdk/context/context.cpp

- update usage of buffer::get_buffers()
  - now returns pointer

* Update lib/rocprofiler-sdk/tests/buffer.cpp

- update to change for signature of buffer::get_buffers()

* Update tests/rocprofv3/tracing/CMakeLists.txt

- use %argt% with -d argument

* Update lib/rocprofiler-sdk-tool/tool.cpp

- use atexit for finalization

* Update tests/rocprofv3/tracing/CMakeLists.txt

- tweaked name of tests

* Update lib/rocprofiler-sdk/hsa/async_copy.*

- async_copy_fini + reference counting signals

* Update lib/rocprofiler-sdk/registration.cpp

- invoke hsa::async_copy_fini() to prevent data race on signals

---------

Co-authored-by: SrirakshaNag <104580803+SrirakshaNag@users.noreply.github.com>
Co-authored-by: Benjamin Welton <bewelton@amd.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: SrirakshaNag <SrirakshaNag@users.noreply.github.com>
Co-authored-by: gobhardw <gopesh.bhardwaj@amd.com>
Co-authored-by: bgopesh <bgopesh@users.noreply.github.com>

[ROCm/rocprofiler-sdk commit: 1f4cf1aa39]
2024-01-22 19:06:25 -06:00
Jonathan R. Madsen 5e0a39e5d5 Async memory copy tracing (#317)
* Update samples/api_buffered_tracing/client.cpp

- support ROCPROFILER_BUFFER_TRACING_MEMORY_COPY

* Update include/rocprofiler-sdk/{buffer_tracing,fwd}.h

- update rocprofiler_buffer_tracing_memory_copy_record_t
- add ROCPROFILER_BUFFER_TRACING_MEMORY_COPY_HOST_TO_HOST to rocprofiler_memory_copy_operation_t

* Update lib/rocprofiler-sdk/context/context.*

- get_registered_contexts functions (local copy)

* Update tests/apps/reproducible-runtime/reproducible-runtime.cpp

- include some memory allocations and memory copies for better testing

* Update tests/common/serialization.hpp

- update serialization save function for rocprofiler_buffer_tracing_memory_copy_record_t

* Update lib/rocprofiler-sdk/hsa/hsa.*

- remove stale set_callback / activity_functor_t code
- forward decl hsa_api_meta
- template struct hsa_api_func for getting function return type and args

* Update tests/kernel-tracing/validate.py

- enforce memory_copies data size
- test timestamps in memory copies data
- improve internal and external correlation id validation

* Update lib/rocprofiler-sdk/hsa/defines.hpp

- HSA_API_META_DEFINITION macro

* Update lib/rocprofiler/hsa/rocprofiler-sdk/hsa/hsa.def.cpp

- HSA_API_META_DEFINITION specializations for async copy functions

* Add lib/rocprofiler-sdk/hsa/async_copy.{hpp,cpp}

- implements buffer memory tracing

* Update lib/rocprofiler-sdk/registration.cpp

- invoke rocprofiler::hsa::async_copy_init

* Update lib/rocprofiler-sdk/hsa/async_copy.cpp

- logging improvements
- improve hsa <-> rocp agent mapping

* Update lib/rocprofiler-sdk/hsa/async_copy.cpp

- load original signal in async signal handler before store_screlease

* Update lib/rocprofiler-sdk/hsa/async_copy.cpp

- use store_relaxed instead of store_screlease

* Update lib/rocprofiler-sdk/hsa/async_copy.cpp

- logging

* Update lib/rocprofiler-sdk/hsa/async_copy.cpp

- logging

* Update lib/rocprofiler-sdk/hsa/async_copy.cpp

- misc changes

* Update lib/rocprofiler-sdk/hsa/async_copy.cpp

- misc changes

* Update lib/rocprofiler-sdk/hsa/async_copy.cpp

- misc changes

* Update lib/rocprofiler-sdk/hsa/async_copy.cpp

- return function pointer instead of lambda

* Update reproducible-runtime.cpp

- device sync

* Update tests/apps/reproducible-runtime/reproducible-runtime.cpp

- use *Async variants of hipMalloc and hipMemcpy

* Update lib/rocprofiler-sdk/hsa/async_copy.cpp

- populate async data properly

* Update tests/kernel-tracing/validate.py

- verification of async copy direction

* Update tests/apps/reproducible-runtime/reproducible-runtime.cpp

- temporarily disable async memcpy functions

* Create tests/tools

- directory containing tool libraries used for collecting data in integration tests

* Update tests/kernel-tracing

- remove kernel-tracing-test-tool library (now rocprofiler-sdk-json-tool)
- update cmake, validate.py, conftest.py accordingly

* Add tests/async-copy-tracing

- integration test validating async copy tracing in transpose example

* Update tests/CMakeLists.txt

- updates for restructuring

* Revert tests/apps/reproducible-runtime

- restore code to semi-original state (no memory copying)

* Update tests/async-copy-tracing/validate.py

- fix comment in test_async_copy_direction

* Fix building tests against installation

[ROCm/rocprofiler-sdk commit: 936816f762]
2024-01-09 11:34:46 -06:00
Jonathan R. Madsen 309a8e069b Update packaging (#306)
* Restructured tests

- support standalone compilation
- move tests/kernel-tracing/serialization.hpp to tests/common/serialization.hpp
- created tests/common library
- handle cloning of cereal library in standalone build

* Update install and packaging

* Update cmake/rocprofiler_config_packaging.cmake

- condense core, samples, development, and tools install components into single rocprofiler-sdk package
- keep tests install component in separate rocprofiler-sdk-tests package

* Update CI workflow to test install and packaging

* Update CI workflow

- install newer cmake for packaging checks

* Update cmake/rocprofiler_config_packaging.cmake

- disable auto-generation of shared-lib deps and provides for tests package

* Update CI workflow

- add sbin to PATH for dpkg install

* Update CI workflow

- remove using github.workspace when installing packages

* Update CI workflow

- hack to fix ordering of dpkg install

* Update CI workflow

- whitespace cleanup

[ROCm/rocprofiler-sdk commit: 8ed68ce4f3]
2023-12-15 14:39:13 -06:00
Jonathan R. Madsen 2918251d9c Integration Testing (#211)
* Add external/cereal submodule

- used for integration testing

* Update lib/common/container/small_vector.hpp

- documentation notes

* Update tests/apps

- update transpose app (fix build)
- add reproducible-runtime app

* Update include/rocprofiler/fwd.h

- rocprofiler_service_callback_phase_t -> rocprofiler_callback_phase_t

* Update PTL submodule

- fix for task group: submitting tasks from different thread

* Update lib/rocprofiler/hsa/queue.cpp

- CHECK_NOTNULL(_buffer)

* Update lib/rocprofiler/hsa/hsa.cpp

- use buffer::get_buffer instead of manually looking for buffer

* Update lib/rocprofiler/internal_threading.cpp

- use buffer::get_buffer instead of manually looking for buffer

* Update lib/rocprofiler/buffer.cpp

- offset the buffer id
- properly handle rocprofiler_create_buffer reusing rocprofiler_buffer_id_t on a different context

* Update tests

- kernel tracing library for integration testing

* Add cereal submodule

* Update lib/rocprofiler/registration.*

- OnUnload
- Support ROCP_TOOL_LIBRARIES for python usage
- improve finalize function
- remove calling hsa_shut_down in finalize function

* Update lib/rocprofiler/buffer.*

- allocate_buffer sets the buffer id value
- expose (internally) is_valid_buffer_id
- update test

* Update tests/kernel-tracing

- installation
- better organization of JSON groups
- improved messaging

* Update lib/rocprofiler/registration.cpp

- add workaround for hsa-runtime supporting rocprofiler-register

* Update tests/kernel-tracing/kernel-tracing.cpp

- fix memory leaks

* cereal support for minimal JSON

- update cereal submodule to rocprofiler branch
- change REPO_BRANCH in rocprofiler_checkout_git_submodule for cereal
- update tests/kernel-tracing/kernel-tracing.cpp
  - use minimal json
  - slight tweak putting giving contexts name in storing name + context pointer pair in map

* Update tests/kernel-tracing/kernel-tracing.cpp

- support runtime selection of contexts via KERNEL_TRACING_CONTEXTS environment variable

* Update tests

- tests/CMakeLists.txt
  - find_package(Python3 REQUIRED)
- tests/kernel-tracing
  - pytest validation

* Update CI workflow

- install pytest
- add checks for test labels

* Update scripts/run-ci.py

- change --coverage options
  - replace 'unittests' with 'tests'
- replace test label regex '-L unittests' with '-L tests'

* Update requirements.txt

- this is now an empty file since none of the packages are required for this repo

[ROCm/rocprofiler-sdk commit: cf5e4b4b1b]
2023-11-16 03:21:39 -06:00
Jonathan R. Madsen ba4c3a123e Update build for rocprofiler-library to support unit tests (#76)
* Update build for rocprofiler-library

- Build rocprofiler OBJECT library (rocprofiler-object-library)
- Generate rocprofiler shared library via rocprofiler-object-library
- Generate rocprofiler static library via rocprofiler-object-library
  - this target is excluded from all target and, thus, is only built when another target links to it

* Update lib/rocprofiler/CMakeLists.txt

- tweak order of EXCLUDE_FROM_ALL and STATIC in add_library(rocprofiler-static-library ...)

* Update samples

- link against rocprofiler::rocprofiler instead of rocprofiler::rocprofiler-library following target renaming

* Update cmake

- fix PROJECT_BUILD_TARGETS for rocprofiler::rocprofiler target in rocprofiler-config.cmake
- disable <OS>-<VERSION> in CPack package name
- Add ROCPROFILER_BUILD_CODECOV option

[ROCm/rocprofiler-sdk commit: 5c07deb159]
2023-09-21 18:01:20 -05:00
Ammar ELWazir d4a977349c Adding Workflow for building and testing (#21)
* Adding Workflow for building and testing

* Adding run-ci script

* Fixing Project name

* Fixing Github Action

* Fixing Git Version

* Adding CMake installation

* Adding Gtest installation

* Fixing CDash Project name

* Correcting the AmdExtTable

* Fixing issues caused by submodules

* Enable Coverage

* Update tests/CMakeLists.txt

- add placeholder test printing cmake version

* Update CI workflow

- remove CMAKE_PREFIX_PATH and LD_RUNPATH_FLAG env vars
- rename Mi200-Ubuntu22-Doc-Packages job to mi200-ubuntu
- reorder jobs
- remove CMAKE_MODULE_PATH, CMAKE_SHARED_LINKER_FLAGS, CMAKE_INSTALL_RPATH, CMAKE_INSTALL_RPATH_USE_LINK_PATH, CPACK_PACKAGING_INSTALL_PREFIX, CPACK_{OBJCOPY,READELF,STRIP,OBJDUMP}_EXECUTABLE
- Remove build docs step

* Update cmake

- fix code coverage build

* Update submodules

- use rocprofiler_checkout_git_submodule for googletest

---------

Co-authored-by: Jonathan Madsen <jrmadsen@users.noreply.github.com>

[ROCm/rocprofiler-sdk commit: d4df53cdc9]
2023-08-29 01:45:45 -05:00
Jonathan R. Madsen ccac2ee157 Initial skeleton (#1)
* googletest submodule

* cmake folder

* misc root files

- clang-format
- cmake-format
- pyproject.toml
- requirements.txt
- VERSION

* workflows

* RPM files

* external folder

* samples folder

* tests root folder

* source/bin folder

* source/include folder

* source/lib/common folder

* source/lib/plugins folder

* source/lib/tests folder

- for library unit tests

* source/lib/rocprofiler folder

- rocprofiler library implementation

* Remaining cmake files

* lib/common/containers

- ring_buffer
- atomic_ring_buffer
- stable_vector
- static_vector

* Update .gitignore

* Update hsa.hpp

- include cstdint

* cmake formatting (cmake-format) (#2)

Co-authored-by: jrmadsen <jrmadsen@users.noreply.github.com>

* Remove linting.yml

- uses self-hosted runners

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

[ROCm/rocprofiler-sdk commit: 527aa71f5a]
2023-08-08 18:39:01 -05:00