Commit Graph

37726 Commits

Author SHA1 Message Date
Chen Gong 251fcbe49d rocprofiler: add valu utilization
SWDEV-475242

For the description of "FP32 Engine Activity" and "FP64 Engine Activity" in dcgm,
It seems that we do not have an equivalent to these pipe-utilizations on our hardware.

In rocprofiler, I think VALU Utilization is the closest to what we want.

Change-Id: Ibce8835ef4757084cdfd73258de6fc1606ca0158
Signed-off-by: Chen Gong <curry.gong@amd.com>
2024-11-21 15:24:01 +08:00
Chen Gong a8086b484d rocprofiler: add valu utilization
SWDEV-475242

For the description of "FP32 Engine Activity" and "FP64 Engine Activity" in dcgm,
It seems that we do not have an equivalent to these pipe-utilizations on our hardware.

In rocprofiler, I think VALU Utilization is the closest to what we want.

Change-Id: Ibce8835ef4757084cdfd73258de6fc1606ca0158
Signed-off-by: Chen Gong <curry.gong@amd.com>


[ROCm/rdc commit: 251fcbe49d]
2024-11-21 15:24:01 +08:00
Maneesh Gupta ec6f83b544 Revert "SWDEV-475482 - hipTexObjectCreate align with cuda"
This reverts commit efce2f77c4.

Reason for revert: Even though this change is valid, this would break backward compatibility.

Change-Id: I9c7cab83198c8d5c8485b11194099162e3e7a874
2024-11-21 00:55:32 -05:00
Giovanni Lenzi Baraldi a9256ea070 SWDEV-484742+SWDEV-489158: Dynamic record size for counter collection (#1208)
* Rebased optizations for rocprofv3 tool

* Fixing merge conflicts

* Formatting

* Open from within mutex

* Small name changes

* Added operator

[ROCm/rocprofiler-sdk commit: 6ae441f785]
2024-11-20 15:43:11 -06:00
Giovanni Lenzi Baraldi 6ae441f785 SWDEV-484742+SWDEV-489158: Dynamic record size for counter collection (#1208)
* Rebased optizations for rocprofv3 tool

* Fixing merge conflicts

* Formatting

* Open from within mutex

* Small name changes

* Added operator
2024-11-20 15:43:11 -06:00
Giovanni Baraldi a5192bb9b3 Small fix for stitch.py
Change-Id: I8435aaeb4452b54e5563bbdb47b269f9d0a97b3a
2024-11-20 15:28:51 -06:00
Giovanni Baraldi 3979438e90 Small fix for stitch.py
Change-Id: I8435aaeb4452b54e5563bbdb47b269f9d0a97b3a


[ROCm/rocprofiler commit: a5192bb9b3]
2024-11-20 15:28:51 -06:00
Vladimir Indic 42c6ffc0eb Host trap PC sampling uses new record type (#1207)
* Host trap PC sampling uses new record type

* removing redundant field

* formatting

* simplifying templates in the parser - no need for HostTrap boolean

* reviving some parser tests

* hw_id decoding on GFX9

* HW id parser test

* parser CID test

* Parser multigpu test

* removing rocprofiler_pc_sampling_record_t and some fields from hw_id

* simplifying parser context

* keep bench test internally

* initializing gfx9_hw_id_t differently

* anonymous struct first

* avoiding inlining initialization of struct

[ROCm/rocprofiler-sdk commit: bc52c17e64]
2024-11-20 14:02:47 -06:00
Vladimir Indic bc52c17e64 Host trap PC sampling uses new record type (#1207)
* Host trap PC sampling uses new record type

* removing redundant field

* formatting

* simplifying templates in the parser - no need for HostTrap boolean

* reviving some parser tests

* hw_id decoding on GFX9

* HW id parser test

* parser CID test

* Parser multigpu test

* removing rocprofiler_pc_sampling_record_t and some fields from hw_id

* simplifying parser context

* keep bench test internally

* initializing gfx9_hw_id_t differently

* anonymous struct first

* avoiding inlining initialization of struct
2024-11-20 14:02:47 -06:00
Jonathan Kim 0f02ed6ffb kfdtest: exclude negative testing from gfx908
GFX 9.0.8 may not properly support pipe reset capabilities so disable
test for now.

Change-Id: I3061cdad87eb979ba884c194f4229c0cbb144ee2
2024-11-20 12:23:09 -05:00
German Andryeyev 9473f143c2 SWDEV-486602 - Disable sysmem pool
Currently amd::Monitor can work in FILO mode for the active waits
and cause a delay in wakeup of some threads. That may have a problem
with the current sysmem pool design.

Change-Id: I145081478d1e0b282d8838855c5718f09cf54b69
2024-11-20 11:35:28 -05:00
Giovanni Lenzi Baraldi 3291f05e2e Remove check for instance count in aql_tests (#1214)
[ROCm/rocprofiler-sdk commit: 55aea3ef10]
2024-11-20 12:45:30 +01:00
Giovanni Lenzi Baraldi 55aea3ef10 Remove check for instance count in aql_tests (#1214) 2024-11-20 12:45:30 +01:00
Ioannis Assiouras 22e27ec97f SWDEV-490855 - Add test cases to evaluate kernel launch performance with increasing number of idle streams
Change-Id: I466c57190259d4f5995b06974cc7f589580400b0
2024-11-20 04:19:23 -05:00
Rahul Manocha 0c230d3cf0 SWDEV-454316 - Fix for Atomic Min Max Testcases
Change-Id: Ieca965e6e17f4b17769938228340791b9bbe45ab
2024-11-19 23:32:30 -05:00
Rahul Manocha 45ef528bdd SWDEV-488308 - Fix memleak in NoGpuTest_hipMemcpy
Change-Id: Id349f189ffd26763c4624e76d7ea4ba139f9d8bc
2024-11-19 23:31:14 -05:00
Rahul Manocha 1d01cb0b18 SWDEV-488214 - Fix MemLeak in hipIpcMemAccess_Semaphores test
Change-Id: Iaf123e88cf3ab4e50403a26355a9440c414022ae
2024-11-19 23:30:53 -05:00
Rahul Manocha 5dcd005d33 SWDEV-488316 - Fix memleaks in PrintfTests
Change-Id: I53e392ac41023a108874d5c58633b53f7b7b0007
2024-11-19 23:30:35 -05:00
Rahul Manocha 823cc198f9 SWDEV-488304 - Fix memleak in hipIpcEventHandle test
Change-Id: Iaa51c7ba4d1fed52d08ed6f956d807c0fb2cc470
2024-11-19 23:30:16 -05:00
Rahul Manocha 255b4f5e79 SWDEV-488306 - Fix memleak for NoGpuTst_hipHostRegister
Change-Id: I919d7f24c1c9bdc9902c5b5cbd7068e8cd48d5ec
2024-11-19 23:29:50 -05:00
Rahul Manocha dcc3dd7029 SWDEV-486443 - Skip managed memory test for windows
Change-Id: Id2d99c80e73979173ff7558bedafa723a1eec813
2024-11-19 23:29:17 -05:00
Rahul Manocha efce2f77c4 SWDEV-475482 - hipTexObjectCreate align with cuda
Support zero width and height for hipTextObjectCreate to align
with cuda.

Change-Id: I5d4c48625faf5f060ed2a7e634ec65e4ecac9da5
2024-11-19 23:28:55 -05:00
Rahul Manocha ed5b962e62 SWDEV-479575 - Child Graph dependencies fixed
Change-Id: Iaf2d8f0ae86e6a701d10f5867b742036392e5a43
2024-11-19 23:27:30 -05:00
Rahul Manocha 5672b0d380 SWDEV-454895 - Fix for Atomic Memory Order testcase failures
Change-Id: I66f92b57527c364b18a695bc9475f4c3432e742b
2024-11-19 23:26:20 -05:00
Venkateshwar Reddy Kandula 225112b15e changelog
Change-Id: I58a300d338f461a3028081b6abd4d7ee1dae560b
2024-11-19 19:49:39 +00:00
Venkateshwar Reddy Kandula 473af5ebe8 changelog
Change-Id: I58a300d338f461a3028081b6abd4d7ee1dae560b


[ROCm/rocprofiler commit: 225112b15e]
2024-11-19 19:49:39 +00:00
Rahul Manocha a2d8199402 SWDEV-494409 - Fix destructor path for Static and Dynamic CO
1) For Dynamic CO variables, free the device pointer in
   DynCO destructor instead of DeviceVar destructor.
2) For Static CO Remove Fatbinary,
   only call hipFree for valid device Vars instead of all devices.

Change-Id: I84291f5371b2c05d1d0bcdb4f9c6bd122e7c9b21
2024-11-19 13:04:44 -05:00
Jonathan Kim 26d338df12 kfdtest: fix dispatch pointers and event leaks tests
KFDDBGTest and KFDNegative test can eat into memory and event resources
for subsequent test interations if unallocated.

Change-Id: Iea170c20df8d487703441181b6c152b61f02d3db
2024-11-19 11:25:24 -05:00
German Andryeyev e2eeb20c00 SWDEV-494231 - Revert TS optimization
Runtime may use checkGpuTime() for the wait and not just for the GPU time queries. Hence, the call can't be skipped if profiling isn't enabled.
More changes are required for this optimization.

Change-Id: I79e8918312e755d75f0d26685f2fdc604a8ffb18
2024-11-19 10:17:38 -05:00
dependabot[bot] 91f636bc6e Bump rocm-docs-core[api_reference] from 1.8.4 to 1.8.5 in /docs/sphinx
Bumps [rocm-docs-core[api_reference]](https://github.com/ROCm/rocm-docs-core) from 1.8.4 to 1.8.5.
- [Release notes](https://github.com/ROCm/rocm-docs-core/releases)
- [Changelog](https://github.com/ROCm/rocm-docs-core/blob/v1.8.5/CHANGELOG.md)
- [Commits](https://github.com/ROCm/rocm-docs-core/compare/v1.8.4...v1.8.5)

---
updated-dependencies:
- dependency-name: rocm-docs-core[api_reference]
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

[ROCm/rocprofiler-systems commit: 3d17f0b90a]
2024-11-19 09:36:32 -05:00
dependabot[bot] 3d17f0b90a Bump rocm-docs-core[api_reference] from 1.8.4 to 1.8.5 in /docs/sphinx
Bumps [rocm-docs-core[api_reference]](https://github.com/ROCm/rocm-docs-core) from 1.8.4 to 1.8.5.
- [Release notes](https://github.com/ROCm/rocm-docs-core/releases)
- [Changelog](https://github.com/ROCm/rocm-docs-core/blob/v1.8.5/CHANGELOG.md)
- [Commits](https://github.com/ROCm/rocm-docs-core/compare/v1.8.4...v1.8.5)

---
updated-dependencies:
- dependency-name: rocm-docs-core[api_reference]
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-19 09:36:32 -05:00
Ioannis Assiouras ef9558a160 SWDEV-497529 - Link with hip::amdhip64 target in 15_static_library/device_functions
Modified target_link_libraries to link with the hip::amdhip64
target instead of directly linking to the amdhip64 library.
This ensures that all sub-dependent libraries that are necessary
for static build are included.

Change-Id: Idf69477708172604ba9c349735d3230ae765923a
2024-11-19 05:32:14 -05:00
Jaydeep Patel d997f78be4 SWDEV-498077 - Check topoOrder_ before accessing it.
Change-Id: I10e3c24ca8dc1009b8ac8ac27b3e9a6296f9a7ee
2024-11-19 04:50:47 -05:00
Ioannis Assiouras 1a710dabcf SWDEV-496003 - Add support for dynamic functions in hipFuncSetAttribute
Modified hipFuncSetAttribute to handle pointers to dynamic functions
returned by hipModuleGetFunction.

Change-Id: I54b98f9d31a79630dd7edcd363fad81f1d89219b
2024-11-19 04:50:15 -05:00
Saleel Kudchadker e4d29e228d SWDEV-495987 - Use shared mutex for MemObj maps
- Remove binning logic, although useful it doesnt work in current
  scenario as there is no upper limit on the size of allocation. If an
app or framework uses entire VRAM and then creates suballocs, binning
would result in failure.

Change-Id: Icc27c13e433bb4a1f03e82028d8718488b43bfa5
2024-11-19 04:28:20 -05:00
limeng12 853d3b0cc5 Backgroud health check
Add the RdcSmiHealth module, which will call rocm_smi_lib.
It will support following health:
 - XGMI error detected
 - PCIE replay count detected
 - Memory check
 - InfoROM check
 - Power/Thermal check
The grpc client and server side health function is added.
The health module is added to the rdci.

At present, XGMI/PCIE and a part of Memory have been implemented.
Others will be added as soon as possible.

Change-Id: I1bd99290bdc7dea733f21a41a8c4bcefb2138112
2024-11-19 14:00:49 +08:00
limeng12 71e2727a8f Backgroud health check
Add the RdcSmiHealth module, which will call rocm_smi_lib.
It will support following health:
 - XGMI error detected
 - PCIE replay count detected
 - Memory check
 - InfoROM check
 - Power/Thermal check
The grpc client and server side health function is added.
The health module is added to the rdci.

At present, XGMI/PCIE and a part of Memory have been implemented.
Others will be added as soon as possible.

Change-Id: I1bd99290bdc7dea733f21a41a8c4bcefb2138112


[ROCm/rdc commit: 853d3b0cc5]
2024-11-19 14:00:49 +08:00
Gopesh Bhardwaj a71d6dc340 Format rocporfv3 help (#1199)
* Format rocporfv3 help

* python formatter fix

[ROCm/rocprofiler-sdk commit: a976ed0783]
2024-11-18 20:51:02 -06:00
Gopesh Bhardwaj a976ed0783 Format rocporfv3 help (#1199)
* Format rocporfv3 help

* python formatter fix
2024-11-18 20:51:02 -06:00
Jonathan R. Madsen 1ea688c447 Runtime Initialization Tracing (#1105)
* Runtime initialization tracing

- calbacks and buffer entries notifying when a runtime has been initialized

* Minor cleanup to registration.cpp

* JSON tool implementation

* Increase perfetto_reader timeout

* Handle perfetto_reader timeout when attr doesn't exist

* clang-tidy fixes to memory_allocation.cpp

[ROCm/rocprofiler-sdk commit: 249c50fc40]
2024-11-18 20:50:29 -06:00
Jonathan R. Madsen 249c50fc40 Runtime Initialization Tracing (#1105)
* Runtime initialization tracing

- calbacks and buffer entries notifying when a runtime has been initialized

* Minor cleanup to registration.cpp

* JSON tool implementation

* Increase perfetto_reader timeout

* Handle perfetto_reader timeout when attr doesn't exist

* clang-tidy fixes to memory_allocation.cpp
2024-11-18 20:50:29 -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
itrowbri 3bd7773cf7 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
2024-11-18 20:22:14 -06:00
Pran Swarup 4599eda13e Fix GPU resource data of GPU power and temperature is not present on … (#23)
* Fix GPU resource data of GPU power and temperature is not present on MI300A traces

[ROCm/rocprofiler-systems commit: 7b966f7515]
2024-11-18 14:18:21 -05:00
Pran Swarup 7b966f7515 Fix GPU resource data of GPU power and temperature is not present on … (#23)
* Fix GPU resource data of GPU power and temperature is not present on MI300A traces
2024-11-18 14:18:21 -05:00
ajanicijamd 0c579dcc43 Changed libdir for external libraries built with autotools (#24)
[ROCm/rocprofiler-systems commit: 4e34700892]
2024-11-18 14:18:21 -05:00
ajanicijamd 4e34700892 Changed libdir for external libraries built with autotools (#24) 2024-11-18 14:18:21 -05:00
David Galiffi 42580afbb4 Update cmake version installed in dockerfiles (#25)
* Update cmake version installed in dockerfiles
* Standardize the cmake_minimum_required to 3.18.4 across dockerfiles
* Fix link to perl repo in opensuse docker.

---------

Signed-off-by: David Galiffi <David.Galiffi@amd.com>

[ROCm/rocprofiler-systems commit: 7633d86c62]
2024-11-18 14:18:21 -05:00
David Galiffi 7633d86c62 Update cmake version installed in dockerfiles (#25)
* Update cmake version installed in dockerfiles
* Standardize the cmake_minimum_required to 3.18.4 across dockerfiles
* Fix link to perl repo in opensuse docker.

---------

Signed-off-by: David Galiffi <David.Galiffi@amd.com>
2024-11-18 14:18:21 -05:00
David Galiffi d8c98d2d4d OMPT Target Offload Support (#17)
- Porting from https://github.com/ROCm/omnitrace/pull/411
- Improve OMPT support
- Add OpenMP target example to testing
- Update Timemory submodule to use ROCm/Timemory rather than NERSC/Timemory
- Update `actions/upload-artifacts` to v4
- Standardize the `cmake_minimum_required` to 3.18.4 across workflows, project, and examples
- Updated Ubuntu 20.04 workflows

[ROCm/rocprofiler-systems commit: 9da7365471]
2024-11-18 14:18:21 -05:00