Jonathan R. Madsen
9fde046078
JSON schema + JSON node vs. Perfetto category consistency ( #869 )
...
* Fix schema differences b/t JSON and perfetto
- "kernel_dispatches" (JSON) vs. "kernel_dispatch" (Perfetto) -> "kernel_dispatch"
- "scratch_api" (JSON) -> "scratch_memory"
* Update include/rocprofiler-sdk/cxx/serialization.hpp
- remove unnecessary includes causing circular dependency
* rocprofv3 docs
- Output formats
- JSON schema
* Spelling fix
* Update schema descriptions
* Improve assert log in test_perfetto_data
[ROCm/rocprofiler-sdk commit: b4dc4f8e92 ]
2024-05-22 20:36:27 -05:00
Jonathan R. Madsen
46a9637496
Adding Perfetto support ( #867 )
...
* Perfetto submodule
* include/rocprofiler-sdk/cxx/perfetto.hpp
- adapted from tests/common/perfetto.hpp
- updated json-tool to use <rocprofiler-sdk/cxx/perfetto.hpp>
* Update include/rocprofiler-sdk/cxx
- add details/delimit.hpp
- add details/join.hpp
- extend details/mpl.hpp
- extend details/operators.hpp
* Update lib/rocprofiler-sdk/hsa/async_copy.cpp
- update MEMORY_COPY direction names
* Preliminary perfetto support
* Update lib/rocprofiler-sdk-tool/generatePerfetto.cpp
- fix getting roctx msg vs. buffer operation name
* Temporary variable restructuring
* Perfetto patches after rebasing onto main
* Revert lib/rocprofiler-sdk/hsa/async_copy.cpp
- revert name
* Update lib/rocprofiler-sdk-tool/generatePerfetto.cpp
- fix ReadTrace
* Update tests/bin/hip-in-libraries
- sleep_for
* Support PFTRACE output format option in rocprofv3
* Change perfetto logging
* Update rocprofv3 tests to generate pftrace output
* Minor tweak to json-tool.cpp
* Update requirements.txt for perfetto testing
* Fix data race on amount_read in generatePerfetto.cpp
* Add testing for pftrace output
- relatively simple testing which verifies that the pftrace file has the same number of entries as JSON data for HIP/HSA/marker/kernel/memory_copy
* Fix import in perfetto_reader.py
* Fix data race in generatePerfetto.cpp
[ROCm/rocprofiler-sdk commit: 957bb7a4e5 ]
2024-05-22 15:51:12 -05:00
Jonathan R. Madsen
0ba9f26a6a
Adding JSON support ( #860 )
...
* Adding json support
minor bugs
Fixing tests
Fixing formatting issues
Fixing test
test fix
Misc testing fixes
Use rocprofiler/cxx/name_info in rocprofiler-sdk-tool
fixes to reduce the Json file size
Update source/lib/rocprofiler-sdk-tool/generateJSON.cpp
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Update source/lib/rocprofiler-sdk-tool/generateJSON.cpp
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Update source/lib/rocprofiler-sdk-tool/tool.cpp
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Update source/lib/rocprofiler-sdk-tool/tool.cpp
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Update source/lib/rocprofiler-sdk-tool/helper.hpp
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Update source/lib/rocprofiler-sdk-tool/helper.hpp
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Update source/lib/rocprofiler-sdk-tool/generateJSON.hpp
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Update source/lib/rocprofiler-sdk-tool/generateJSON.cpp
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Update source/lib/rocprofiler-sdk-tool/generateJSON.cpp
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Update source/lib/rocprofiler-sdk-tool/tool.cpp
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Update source/lib/rocprofiler-sdk-tool/tool.cpp
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Update source/lib/rocprofiler-sdk-tool/helper.hpp
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Update source/lib/rocprofiler-sdk-tool/tool.cpp
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Update source/lib/rocprofiler-sdk-tool/generateJSON.cpp
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Update source/lib/rocprofiler-sdk-tool/generateJSON.cpp
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
misc fixes
Removing int cast for JSON tests
formatting
removing a condition test on Navi3
adding debug info
Misc fix
* CSV updates
- fix stats
- numerical formatter support for customizing write_csv_entry
- misc formatting
- get_marker_stats_file
* Misc tests/rocprofv3/counter-collection/input2 fixes
- rocprofiler_configure_pytest_files in rocprofv3/counter-collection/input2
- removed state code from merge in rocprofv3/counter-collection/input2
* Tool: "Agent-id" -> "Agent_Id"
- consistency
* Tool update
- remove rocprofiler_tool_marker_record_t
- add marker_tracing_kind_conversion
- fix memory leak in write_json
- minor update to get_output_stream
- rework handling of marker records
* Update tests/pytest-packages/pytest_utils/__init__.py
- add collapse_dict_list function for converting a dictionary value that is a list of length one into a directly mapped value
* Update tests/rocprofv3/**/conftest.py
- use collapse_dict_list when reading in JSONs
* Update tests/rocprofv3/counter-collection/input1/validate.py
- relax testing requirements gfx1102 (AQLProfile bugs)
- in addition to relaxed testing requirements for gfx1101
* Update tests/rocprofv3/tracing/validate.py
- fix removal of PID in every marker record
* Update tests/rocprofv3/tracing-plus-cc
- remove test design that relies on iterating subdirectories
* Wrapper around __libc_start_main
- Ensures finalization happens before main returns
- Update tests/rocprofv3/tracing/validate.py
- wrapper around __libc_start_main changed roctx calls
* Combine include/rocprofiler-sdk/cxx/serialization.hpp and include/rocprofiler-sdk/external/serialization.hpp
- tests/common/serialization.hpp simply includes include/rocprofiler-sdk/cxx/serialization.hpp now
* Update lib/rocprofiler-sdk/hip/hip.cpp
- tracing function immediately returns when fini_status is non-zero
* Update lib/rocprofiler-sdk/hsa/hsa.cpp
- remove logging of tracing function when fini_status is non-zero
* Update lib/rocprofiler-sdk-tool/CMakeLists.txt
- remove rocprofv3_trigger_list_metrics.cpp from TOOL_SOURCES
* Update tests/rocprofv3/tracing-plus-cc/CMakeLists.txt
- fix depends
* Domain statistics
* Update tests/rocprofv3/tracing-plus-cc/CMakeLists.txt
- do not set ROCP_LOG_LEVEL in env
* Remove erroneous <bits/utility.h> include
* Restructure tool source + reduce tool table + support multiple formats
- buffered_output struct for handling output
- support multiple output formats, e.g. --output-format csv,json
- rename buffer_type_t -> domain_type
- simplified generation of CSV output files
- removed rocprofiler_tool_marker_record_t
* Update lib/common/container/ring_buffer.hpp
- value_type alias in ring_buffer<Tp>
* Remove all but one json-execute tests
- generate CSV and JSON in same run
* Fix include for domain_type.cpp
* Update tests/rocprofv3/tracing-plus-cc/input.txt
- only specify counters which can be found on gfx8, gfx9, gfx10, gfx11, etc.
- use :device= syntax
* Update lib/rocprofiler-sdk-tool/config.cpp
- support :device=N syntax for counters file
- improve stripping comments in PMC files
- only read after pmc:
* Rework tool library counter collection
- fatal error if all requested counters for device are not found
- support :device= syntax
* Update tests/rocprofv3/tracing-plus-cc/input.txt
- removed L2CacheHit (not supported on mi300)
* Disable JSON tests in tests/rocprofv3
* Update include/rocprofiler-sdk/cxx/serialization.hpp
- support rocprofiler_record_dimension_info_t
* Update tool JSON schema
- remove domain_type::CODE_OBJECT
- rocprofiler_tool_agent_v0_t
- rocprofiler_agent_v0_t + counters
- rocprofiler_tool_counter_info_t
- get_code_object_data()
* Update JSON schema for tool
* Update lib/rocprofiler-sdk-tool/tool.cpp
- fix ROCP_WARNING_IF
* rocprofv3 -> rocprofv3.sh
- install rocprofv3.sh into sbin
- configure_file <source-tree>/rocprofv3.sh -> <binary-tree>/bin/rocprofv3
* Update tool counter collection
- rocprofiler_tool_record_counter_t
- rocprofiler_tool_counter_collection_record_t
* Update tests/rocprofv3/counter-collection/input1/CMakeLists.txt
- use rocprofiler_configure_pytest_files for validate.py, conftest.py, and input.txt
* Update tests/rocprofv3/counter-collection/input1/validate.py
- re-enable test_validate_counter_collection_pmc1_json
* Update tests/rocprofv3/counter-collection/input2/validate.py
- remove unused code
* Update tests/rocprofv3/counter-collection/input2/validate.py
- remove unused code
* Update tests/rocprofv3/hsa-queue-dependency/validate.py
- re-enable JSON tests
* Misc tests/rocprofv3 CMake updates
* Update tests/rocprofv3/tracing/validate.py
- re-enable JSON tests
* Update tests/rocprofv3/tracing-hip-in-libraries/validate.py
- re-enable JSON tests
* Update tests/rocprofv3/tracing/validate.py
- remove unused node_exists function
* Update tests/rocprofv3/tracing/validate.py
- fix test_marker_api_trace_json
---------
Co-authored-by: Sriraksha Nagaraj <Sriraksha.Nagaraj@amd.com >
[ROCm/rocprofiler-sdk commit: 92b7326910 ]
2024-05-22 00:53:42 -05:00
Gopesh Bhardwaj
01cdd61d70
SWDEV-458796,458610 doc updates ( #854 )
...
* SWDEV-458796,458610 doc updates
* updating --stats and scratch memory docuemntation
* Adding usage for --stats option
[ROCm/rocprofiler-sdk commit: 83e2d7d8af ]
2024-05-21 23:59:19 -05:00
Benjamin Welton
acf806ad97
[2/N] Agent Counter implementation with unit tests to check functionality ( #846 )
...
Agent Counter Collection API with tests and samples.
---------
Co-authored-by: Benjamin Welton <ben@amd.com >
[ROCm/rocprofiler-sdk commit: 28e6430d04 ]
2024-05-21 13:34:54 -07:00
Jonathan R. Madsen
ba3d0e2c19
Fix ROCP_CI_LOG when ROCPROFILER_CI not defined ( #864 )
...
[ROCm/rocprofiler-sdk commit: 7eeb7376b4 ]
2024-05-20 16:04:28 -05:00
Jonathan R. Madsen
e7cba805c5
Update logging ( #838 )
...
* Update logging
* Remove unused function
* Fix lib/rocprofiler-sdk/hsa/pc_sampling.cpp logging compilation
* Fix logging FLAGS_vmodule string leak and numerical log level
* Update logging
* Update glog submodule
* Leak fixes
* format
[ROCm/rocprofiler-sdk commit: 4d5b71b0e7 ]
2024-05-20 15:38:18 -05:00
Ammar ELWazir
0b6fe0dd59
Removing EXPECT_EQ() that checks for rocminfo ( #858 )
...
[ROCm/rocprofiler-sdk commit: 2c7e9e8e8b ]
2024-05-17 04:19:13 -05:00
Ammar ELWazir
a967d3ce2b
Fixing rocminfo path for multiple installation ways ( #857 )
...
* Fixing rocminfo path for multiple installation ways
* Update source/lib/rocprofiler-sdk/tests/agent.cpp
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
[ROCm/rocprofiler-sdk commit: ea4b793e73 ]
2024-05-15 15:35:53 -05:00
Ammar ELWazir
d61dbd03b3
Fixing build issues with HSA ( #856 )
...
[ROCm/rocprofiler-sdk commit: 91e7dfb24e ]
2024-05-15 14:12:44 -05:00
Vladimir Indic
c28c399b84
avoiding early destruction of code objects list ( #847 )
...
[ROCm/rocprofiler-sdk commit: 358c599c3f ]
2024-05-08 11:00:08 +02:00
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
Ammar ELWazir
4417b435cf
Adding --stats examples ( #842 )
...
[ROCm/rocprofiler-sdk commit: 6d3fbcffad ]
2024-05-03 10:25:04 -05:00
Jonathan R. Madsen
5ef0655896
C++ headers for std::hash, operator==, operator!= ( #833 )
...
* C++ headers for std::hash, operator==, operator!=
* std::hash specializations for some HSA types
[ROCm/rocprofiler-sdk commit: bf75579566 ]
2024-05-02 01:50:28 -05:00
Jonathan R. Madsen
0dc01661c1
Relax default CDash submission requirements in run-ci.py ( #836 )
...
* Update run-ci.py to not require successful CDash submission by default
* Minor tweak to run-ci.py
[ROCm/rocprofiler-sdk commit: d15cf17635 ]
2024-05-02 00:15:20 -05:00
Benjamin Welton
055d6b722a
[1/N] Agent Counter Collection Implementation ( #832 )
...
Added public API call to setup agent counter collection on a context.
Refactored the return types internally for dispatch counter collection
to use rocprofiler_status_t (allow for more verbose failures to be
surfaced via the API)
Subsequent commits will fill out the sampling functionality for agent
counter collection.
Co-authored-by: Benjamin Welton <ben@amd.com >
[ROCm/rocprofiler-sdk commit: cb3fc070c7 ]
2024-05-01 13:34:54 -07:00
Benjamin Welton
461caaf766
Code migration and include fixes ( #830 )
...
* Migrating code/reformatting
* Remove unnecessary includes
---------
Co-authored-by: Benjamin Welton <ben@amd.com >
[ROCm/rocprofiler-sdk commit: e21609c80e ]
2024-04-29 15:48:50 -07:00
Jonathan R. Madsen
f167317524
Public C++ header files and samples updates ( #819 )
...
* Public C++ header files (source/include/rocprofiler-sdk/cxx)
* Update samples/api_buffered_tracing
- scratch memory and page migration
- README
* Update samples/api_buffered_tracing
- page migration component in sample
* Update tests/page-migration/validate.py
- fix checks for page migration operation names
* Update tests/page-migration/validate.py
- fix get_allocated_pages
* Update scratch memory and page migration validations
* Fix include/rocprofiler-sdk/cxx installation
* Rework include/rocprofiler-sdk/cxx
- Improve name_info to support const char*, string_view, string
* Update samples/api_{buffered,callback}_tracing
* External correlation ID request sample
- includes correlation ID retirement demo
* Update samples/api_buffered_tracing/README.md
* Update lib/rocprofiler-sdk/hsa/queue.cpp
- generate correlation ID for kernel launch if one doesn't exist
* Remove priority check from tool libraries (samples/tests)
- if(priority > 0) return nullptr check in rocprofiler_configure has proliferated beyond its intended use
* Apply suggestions from code review
[ROCm/rocprofiler-sdk commit: de13d2ac5d ]
2024-04-25 20:09:11 -05:00
Jonathan R. Madsen
9b747eb63c
Correct timestamp skew adjustments for kernel and async copy tracing ( #827 )
...
[ROCm/rocprofiler-sdk commit: e2bce49655 ]
2024-04-25 14:36:11 -05:00
Vladimir Indic
d0016ef728
Restructure code object source code ( #826 )
...
* public codeobj info
* Restructure code object source code file layout
* Update get_unloaded_code_objects + add iterate_loaded_code_objects
* Remove get_unloaded_code_objects from visible internal API
- iterate_loaded_code_objects + functor which filters on the hsa_executable_t effectively reproduces this behavior
* Whitespace removal
---------
Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com >
[ROCm/rocprofiler-sdk commit: 733aa8e438 ]
2024-04-25 14:03:04 -05:00
Jonathan R. Madsen
399f2cc660
Remove -Wno-missing-field-initializers from build flags ( #810 )
...
* Remove -Wno-missing-field-initializers
- Compiler errors if missing field initializers
* Update lib/rocprofiler-sdk/counters/evaluate_ast.cpp
- copy over dispatch ID in perform_reduction/evaluate
[ROCm/rocprofiler-sdk commit: 48273d6a65 ]
2024-04-22 22:26:01 -05:00
Vladimir Indic
843398eb3c
Introducing PcSamplingExtTable ( #735 )
...
* pcs: updating the PCS table
* Fixing Clang Tidy errors
* pcs: reverting old table version
* testint wrong table size
* new size
* testing step
* reverting old steps
* hsa_amd_queue_get_info introduced
* pcs: testing table version
* formatting
* removing redundand declarations
* removing unnecessary files
* Apply suggestions from code review
* Apply suggestions from code review
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update source/lib/rocprofiler-sdk/hsa/pc_sampling.cpp
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Enable function pointer offset check in hsa::pc_sampling::copy_table
- add offset() to HSA_API_META_DEFINITION
- check if offset() >= size of struct
* Support build without PC sampling API table
* ids for ROCr's PC sampling public functions
---------
Co-authored-by: Ammar ELWazir <aelwazir@hpe6u-21.amd.com >
Co-authored-by: Jonathan R. Madsen <jrmadsen@users.noreply.github.com >
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com >
[ROCm/rocprofiler-sdk commit: deabd869b5 ]
2024-04-22 20:07:28 -05:00
Benjamin Welton
261e4da484
Add default values for kernel struct ( #798 )
...
* Add default values for kernel struct
* Update hsa-queue-dependency app
- default initializers
- check HSA_AMD_MEMORY_POOL_INFO_RUNTIME_ALLOC_ALLOWED for memory pools
- clang-tidy fixes (member -> static, etc.)
* Update run-ci.py
- add --progress --output-on-failure -V if no other options regarding verbosity are passed
- improve the ability to control the stages
---------
Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com >
[ROCm/rocprofiler-sdk commit: 29bc84ec0c ]
2024-04-18 21:07:20 -05:00
Benjamin Welton
a81a453940
clang-18 warning fixes (part 1) ( #785 )
...
* clang-18 warning fixes (part 1)
* format fixes
* More format fixes
* More format fixes
[ROCm/rocprofiler-sdk commit: c668028781 ]
2024-04-18 18:28:32 -05:00
Jonathan R. Madsen
acfc8a9999
Improve testing stability ( #796 )
...
- Update tests/bin/reproducible-runtime
- tweak algorithm for sleeping
- Update lib/rocprofiler-sdk/hsa/async_copy
- handle egregious skews for async copy times
- Update kernel tracing
- handle egregious skews for kernel dispatch times
- Update lib/rocprofiler-sdk/hsa/code_object
- use static object wrappers for code object info
- Update lib/rocprofiler-sdk-tool/config.cpp
- fix data race in output_keys / get_local_datetime
[ROCm/rocprofiler-sdk commit: b953774580 ]
2024-04-18 11:42:51 -05:00
Giovanni Lenzi Baraldi
37fa6d25d3
Removed duplicated code ( #784 )
...
* Removed duplicated code
* Clang format
* Removing union from pc_sampling API
* Clang format
[ROCm/rocprofiler-sdk commit: b6c0b50d3e ]
2024-04-18 07:42:26 -03:00
Jonathan R. Madsen
1514f05887
Async memory copy callback tracing + memory copy size ( #791 )
...
* Async memory copy tracing update
- rocprofiler_buffer_tracing_memory_copy_record_t: thread_id and bytes
- support ROCPROFILER_CALLBACK_TRACING_MEMORY_COPY
- init_public_api_struct can fully construct
* Testing for callback async copy tracing
[ROCm/rocprofiler-sdk commit: 12c836f95f ]
2024-04-18 04:31:59 -05:00
Jonathan R. Madsen
b8ecfee16d
Fix kernel dispatch tracing operation names ( #787 )
...
- "ENQUEUE" -> "KERNEL_DISPATCH_ENQUEUE"
- "COMPLETE" -> "KERNEL_DISPATCH_COMPLETE"
[ROCm/rocprofiler-sdk commit: 93136ec042 ]
2024-04-18 01:06:39 -05:00
Jonathan R. Madsen
39550c1167
Update lib/rocprofiler-sdk/hsa/queue.cpp ( #788 )
...
- fix heap-use-after-free
[ROCm/rocprofiler-sdk commit: b7b2c294e0 ]
2024-04-18 00:05:55 -05:00
Benjamin Welton
3f9dc16864
Remove duplicate entries from derived counters ( #782 )
...
[ROCm/rocprofiler-sdk commit: 81afb310ff ]
2024-04-17 13:47:02 -07:00
Jonathan R. Madsen
6d14616fbd
Enable HSA packet write interception for callback kernel tracing ( #780 )
...
[ROCm/rocprofiler-sdk commit: 8cc28ae51d ]
2024-04-17 14:55:04 -05:00
Benjamin Welton
b7ed11552b
Small error printout on test ( #781 )
...
[ROCm/rocprofiler-sdk commit: d173dd5c04 ]
2024-04-17 08:54:56 -07:00
Vladimir Indic
98b62efd12
pcs: API updated ( #770 )
...
[ROCm/rocprofiler-sdk commit: 200da0f274 ]
2024-04-16 22:51:16 -05:00
Giovanni Lenzi Baraldi
5b77c8335e
Removed unused field ( #774 )
...
* Removed unused field
* Formatting
[ROCm/rocprofiler-sdk commit: fed296daed ]
2024-04-16 23:34:47 -03:00
Ammar ELWazir
098bd37968
Adding Keyword search pattern ( #768 )
...
* Update continuous_integration.yml
* Update continuous_integration.yml
* Update continuous_integration.yml
* Update continuous_integration.yml
* Update continuous_integration.yml
* Update continuous_integration.yml
* Update continuous_integration.yml
* Update continuous_integration.yml
* Update continuous_integration.yml
* Update continuous_integration.yml
* Update continuous_integration.yml
* Update continuous_integration.yml
* Update continuous_integration.yml
* Update continuous_integration.yml
* Update continuous_integration.yml
* Adding the scan as a script
* clean up
* Update continuous_integration.yml
[ROCm/rocprofiler-sdk commit: 87d549c8a9 ]
2024-04-16 21:08:32 -05:00
Benjamin Welton
a0ce5887d8
fix cmake formatting issue
...
[ROCm/rocprofiler-sdk commit: 7bb9ea39d6 ]
2024-04-16 23:51:11 +00:00
Benjamin Welton
1af410623d
Remove unnecessary unknown gfx
...
[ROCm/rocprofiler-sdk commit: 95c25acfee ]
2024-04-16 23:43:59 +00:00
Jonathan R. Madsen
5ee0fad20f
Fix drm include for OpenSUSE ( #767 )
...
* Fix drm include for OpenSUSE
- uses libdrm/drm.h instead of drm/drm.h
* Fix "List Files" step in CI workflows
* Fix "List Files" step in CI workflows
[ROCm/rocprofiler-sdk commit: 2d5523b420 ]
2024-04-16 23:16:26 +00:00
Ammar ELWazir
1bdf62348e
Fixing Markdown and Docs ( #759 )
...
* Update README.md
* Update index.md
* Update installation.md
* Update rocprofv3.md
* Update tool_library_overview.md
* Update CMakeLists.txt
* Update upload-image-to-github.py
* Update upload-image-to-github.py
---------
Co-authored-by: Gopesh Bhardwaj <gopesh.bhardwaj@amd.com >
[ROCm/rocprofiler-sdk commit: 3ec628e004 ]
2024-04-14 14:35:00 -05:00
Benjamin Welton
6f0c1958da
Removal of HSA from counter collection ( #697 )
...
* Minor fix
Removal of HSA from counter collection
Tests for AQL
Updated counter collection client to build profiles in tool init
* Rebased
* Debug printing
* Formatting
* More format
* fix shadowing
---------
Co-authored-by: Jonathan R. Madsen <jrmadsen@users.noreply.github.com >
[ROCm/rocprofiler-sdk commit: c2f659ab5c ]
2024-04-12 18:46:10 -07:00
Jonathan R. Madsen
2aef3c3d15
rocprofiler_kernel_dispatch_info_t + header record for buffered counter collection (#758 )
...
* Update include/rocprofiler-sdk
- defines.h
- ROCPROFILER_VERSION_10_0 -> ROCPROFILER_SDK_VERSION_0_0
- fwd.h
- rocprofiler_counter_record_kind_t
- rocprofiler_kernel_dispatch_info_t
- rocprofiler_record_counter_t
- has dispatch id instead of correlation id
- rocprofiler_counter_info_v0_t
- added rocprofiler_counter_id_t field
- added is_constant field
- reordered better packing
- dispatch_profile.h
- added rocprofiler_profile_counting_dispatch_record_t for use as a header record for rocprofiler_profile_counting_dispatch_data_t
- callback_tracing.h
- rocprofiler_callback_tracing_kernel_dispatch_data_t uses rocprofiler_kernel_dispatch_info_t
- buffer_tracing.h
- rocprofiler_buffer_tracing_kernel_dispatch_record_t uses rocprofiler_kernel_dispatch_info_t
* Update lib/rocprofiler-sdk/*
- transition to rocprofiler_kernel_dispatch_info_t
- set id and is_constant values for rocprofiler_counter_info_v0_t in rocprofiler_query_counter_info
* Update lib/rocprofiler-sdk-tool
- transition to rocprofiler_kernel_dispatch_info_t
* Update lib/rocprofiler-sdk/counters/tests/core.cpp
- transition to rocprofiler_kernel_dispatch_info_t
* Update samples
- transition to rocprofiler_kernel_dispatch_info_t
- transition to rocprofiler_counter_record_kind_t
* Update tests
- transition to rocprofiler_kernel_dispatch_info_t
- transition to rocprofiler_counter_record_kind_t
- improve integration test validation for counter-collection
- update serialization for new/additional types
* Fix tests/counter-collection/validate.py
- loosen restrictions on the length of counter description
* Update include/rocprofiler-sdk/buffer_tracing.h
- remove accidental packed attribute
* Update lib/rocprofiler-sdk/counters/xml/derived_counters.xml
- Add description for TCC_TAG_STALL_sum (reference: https://rocm.docs.amd.com/en/develop/conceptual/gpu-arch/mi300-mi200-performance-counters.html )
* Update tests/page-migration/validate.py
[ROCm/rocprofiler-sdk commit: 07537b6231 ]
2024-04-12 17:30:34 -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
Jonathan R. Madsen
b0fd633c2f
Minor fixes + correlation id files + compute_runtime_sizeof ( #757 )
...
* Update lib/rocprofiler-sdk/context/*
- create correlation_id.{hpp,cpp} and moved implementation into these files instead of in context.{hpp,cpp}
* Update lib/rocprofiler-sdk/thread_trace/att_core.hpp
- fixed header includes
* Update lib/common/utility.hpp (runtime sizeof)
- added compute_runtime_sizeof<T>() function to set the "size" field to be the offset of the "reserved_padding" field if one exists
* Fix to compute_runtime_sizeof
[ROCm/rocprofiler-sdk commit: d6bb50cae1 ]
2024-04-12 12:34:00 -05:00
Jonathan R. Madsen
03fb9ace21
CTest Environment Update ( #756 )
...
* Update test/tools/json-tool.cpp
- push/pop ppid as external correlation id instead of pid
* Update environment variables for tests and samples
* Revert to old CDash dashboard in run-ci.py
* Revert to new CDash dashboard in run-ci.py
[ROCm/rocprofiler-sdk commit: 3eaa678054 ]
2024-04-12 08:40:00 -05:00
lancesix
cf1767b3d2
rocprofiler-sdk-codeobj: use pkg-config to find libdw / libelf ( #749 )
...
* rocprofiler-sdk-codeobj: use pkg-config to find libdw / libelf
The current version of source/lib/rocprofiler-sdk-codeobj/CMakeLists.txt
adds -ldw and -lelf to target_link_libraries. However, on a system where
libdw-dev / libelf-dev is missing, the cmake configuration phase will
run properly and a compile time error will eventually be raised.
This patch changes the CMakelists.txt to search for libelf libdw and
configures the target as needed. Systems missing the required support
should report an error when running cmake instead of in the middle of
the compilation.
* Use INTERFACE targets
* Resolve issues with Findlib{dw,elf}
---------
Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com >
[ROCm/rocprofiler-sdk commit: 066e659d6e ]
2024-04-12 03:48:35 -05:00
Jonathan R. Madsen
26b17b6f11
Update lib/rocprofiler-sdk-tool ( #755 )
...
- questionable data race within std::regex in CI
- simplify rocprofiler::tool::format
- set config::tmp_directory to default to output_path
- fs::create_directories for tmp_file
- rework get_file_name(...) and compose_tmp_file_name(...) in tool.cpp
[ROCm/rocprofiler-sdk commit: 87490d0018 ]
2024-04-12 03:48:02 -05:00
Jonathan R. Madsen
5e8a3b4f16
Callback tracing for kernel dispatches + External correlation ID request service ( #682 )
...
* Support ROCPROFILER_CALLBACK_TRACING_KERNEL_DISPATCH
* Fix doxygen
* Update callback tracing
- temporary hacks for kind operation name and iterate kind operations
* Update source/include/rocprofiler-sdk
- introduce sequence id for kernel dispatches
* Update lib/rocprofiler-sdk (seq id)
- support sequence id passing
* Update tests (seq id)
- testing for sequence ids
* Cleanup include/rocprofiler-sdk/fwd.h
* Misc cleanup
* External Correlation ID Request Service (#699 )
* External correlation ID request service
- callback requesting an external correlation ID instead of fetching from top of pushed external correlation ID stack
* Update external correlation id request support
- pass internal correlation ID in callback
- async copy generates a correlation ID if none already exists
- added external correlation ID request support for scratch memory tracing
- updated scratch memory tracing to use tracing:: functions
* Update hsa/queue.hpp
- new line at EOF
* Misc tweaks
- remove unnecessary logging in agent.cpp
- correlation_id::add_ref_count check for retirement
- finalization check in HSA queue AsyncSignalHandler
* Improve assertion failure logging in misc tests
* Update include/rocprofiler-sdk/fwd.h
- remove rocprofiler_record_counter_header_t
* Move lib/rocprofiler-sdk/tracing.hpp into lib/rocprofiler-sdk/tracing/ folder
* Update lib/rocprofiler-sdk/hsa/*
- hsa::get_hsa_status_string
- queue_info_session.hpp header
- rocprofiler_packet.hpp
* Update lib/rocprofiler-sdk/{counters,hip,marker}
- execute_phase_exit_callbacks tweaks
- queue_info_session tweaks
* Move rocprofiler_kernel_dispatch_operation_t to include/rocprofiler-sdk/fwd.h
* Update rocprofiler_buffer_tracing_kernel_dispatch_record_t
- add operation field and thread_id field
* Add lib/rocprofiler-sdk/kernel_dispatch
- enum <-> string mapping for kernel dispatch
- tracing implementations
* Update lib/rocprofiler-sdk/CMakeLists.txt
- tracing and kernel dispatch sub-directories
* Update lib/rocprofiler-sdk/{buffer,callback}_tracing.cpp
- invoke rocprofiler::kernel_tracing functions
* Update tests/common/serialization.hpp
- support operation and thread_id fields for rocprofiler_buffer_tracing_kernel_dispatch_record_t
* Update tests/tools/json-tool.cpp
- use external correlation id request service
* Rename sequence_id to dispatch_id
[ROCm/rocprofiler-sdk commit: 56030018dc ]
2024-04-11 19:49:49 -05:00
Jonathan R. Madsen
95acc01042
Fix code_object_operation_t and memory_copy_operation_t enums ( #751 )
...
- enums for operations should not contain callback/buffer tracing categorization
- e.g. ROCPROFILER_CALLBACK_TRACING_CODE_OBJECT_LOAD should be ROCPROIFLER_CODE_OBJECT_LOAD
[ROCm/rocprofiler-sdk commit: 0f5c575435 ]
2024-04-11 18:52:13 -05:00
Jonathan R. Madsen
beec57376a
Add support for hsa_amd_queue_get_info ( #752 )
...
* Add support for hsa_amd_queue_get_info
- HSA_AMD_EXT_API_TABLE_STEP_VERSION == 0x02
* Suppress unused-but-set-parameter warnings
[ROCm/rocprofiler-sdk commit: 3c005b81b1 ]
2024-04-11 18:29:22 -05:00