Grafik Komit

37726 Melakukan

Penulis SHA1 Pesan Tanggal
Jonathan R. Madsen 82a089ac0a Add kernel profiling time info to counter collection records (#1000)
* Add kernel profiling time info to counter collection records

- lib/rocprofiler-sdk/kernel_dispatch
  - added profiling_time.{hpp,cpp}
  - restructured tracing.cpp
- updated queue.cpp AsyncSignalHandler
  - gets kernel dispatch profiling time and passes to dispatch_complete and signal callbacks
- structured some header includes to reduce cyclic include probability
  - originally, including kernel_dispatch/tracing.hpp in hsa/queue.hpp created a lot of cyclic includes

* Fix kernel_dispatch.cpp includes

* Fix kernel_dispatch.cpp

- include <cstring>
- replace use of ROCPROFILER_HSA_AMD_EXT_API_ID_NONE with ROCPROFILER_KERNEL_DISPATCH_LAST

[ROCm/rocprofiler-sdk commit: b15e498945]
2024-08-19 20:05:04 -05:00
Jonathan R. Madsen b15e498945 Add kernel profiling time info to counter collection records (#1000)
* Add kernel profiling time info to counter collection records

- lib/rocprofiler-sdk/kernel_dispatch
  - added profiling_time.{hpp,cpp}
  - restructured tracing.cpp
- updated queue.cpp AsyncSignalHandler
  - gets kernel dispatch profiling time and passes to dispatch_complete and signal callbacks
- structured some header includes to reduce cyclic include probability
  - originally, including kernel_dispatch/tracing.hpp in hsa/queue.hpp created a lot of cyclic includes

* Fix kernel_dispatch.cpp includes

* Fix kernel_dispatch.cpp

- include <cstring>
- replace use of ROCPROFILER_HSA_AMD_EXT_API_ID_NONE with ROCPROFILER_KERNEL_DISPATCH_LAST
2024-08-19 20:05:04 -05:00
David Yat Sin 88eaa834d0 Separate AsyncEventsLoop into two separate threads
This fixes an issue for missing HW events when out of HW events.

We cannot determine whether a HW event has occurred unless we call the
underlying drivers with hsaKmtWaitOnMultipleEvents_Ext. Previous logic
in Signal::WaitAny would switch to ACTIVE_WAIT state if we run out of
hardware events (signal->EopEvent() == NULL) and this would cause the
hsaKmtWaitOnMultipleEvents_Ext call to be skipped. But also, when we
have some signals without hardware events, calling
hsaKmtWaitOnMultipleEvents_Ext with a timeout of 0 so that we can poll
for remaining signals adds overhead with an IOCTL call and may cause
extra delay. Separating AsyncEventLoop into two separate threads so
that:

1. We can have a new Signal::WaitAnyExceptions to wait for HW events
This function can be simpler as it does not have to perform all the
timer calculations because it is expected to be always waiting on
hsaKmtWaitOnMultipleEvents_Ext through the lifetime of a process.

2. Signal::WaitAny does not need to have extra code to check for HW
exceptions as it only needs to handle HSA_EVENTTYPE_SIGNAL events. It
can also skip the calls to hsaKmtWaitOnMultipleEvents_Ext if needed.

Change-Id: I52ba99fd6e483e0cb477b7931a0dcc03520aa523
Signed-off-by: David Yat Sin <David.YatSin@amd.com>
2024-08-19 17:54:11 -04:00
Ioannis Assiouras e73376be0b SWDEV-470372 - Un-deprecate hipHostAlloc, comply with cuda and introduce hipHostAlloc flags
Change-Id: Ic7cdb10ebd3f736fe87c643bce90a28a1190f7c8
2024-08-19 17:37:00 -04:00
David Yat Sin 56ba584a22 rocr: Delete internal CP queues in GPU agent destructor
Delete queues used internally in agent destructor to make sure any
memory allocated by the queue objects are freed before the agent memory
regions are destroyed.

Change-Id: I4768c9cf66f77ac00a5a355f373f7f22dc266e47
2024-08-19 17:16:46 -04:00
David Yat Sin 4ffa325c08 libhsakmt: Add two symbols to global symbols
For users still using non-static hsakmt

Change-Id: I12b1c25f0d952ed9178529cadc518c57c1aeb06d
2024-08-19 14:56:00 -04:00
David Yat Sin 921471bd94 Raise system error when memory free is denied
If user application tries to free memory that is currently being used by
the underlying HW device, the hsaKmtFreeMemory function call will fail.

This would be caused by an incorrect call by the user application. A
system memory error is raised and the user application is expected to
abort when this happens.

Note: This leaves the allocation_map_ table in an inconsistent state as
this address entry is removed from it while the pointer is not actually
free'd. But re-organising the FreeMemory() function would require the
memory_lock_ to be held for much longer and may affect performance.
Since this is a very unlikely and invalid use case, we prefer to leave
the FreeMemory() function as is.

Change-Id: I24279eb98620c32d34f4c5ad1b7a0a30cb65835d
Signed-off-by: David Yat Sin <David.YatSin@amd.com>
2024-08-19 14:03:12 -04:00
David Yat Sin aae4dab88e Do not generate coredump on VM fault signal event
Skip coredump generation when receiving HSA_STATUS_ERROR_MEMORY_FAULT.
We also receive a system error of type HSA_EVENTTYPE_MEMORY and generate
the coredump there. Trying to generate coredump from 2 places sometimes
causes unnecessary error message because both places try to create a
coredump file with the same name.

Change-Id: If3f03bab2c24ad71dfeff39ab411bb9ac08b337e
Signed-off-by: David Yat Sin <David.YatSin@amd.com>
2024-08-19 13:21:26 -04:00
David Yat Sin 5f943dc44e Fix compile warnings
Removing unused variables

Change-Id: I3a9811e40c9bc735d13a0330b2015576ed112026
Signed-off-by: David Yat Sin <David.YatSin@amd.com>
2024-08-19 13:21:08 -04:00
Shweta.Khatri fda2a395a3 PC-Sampling - gfx94x Hosttrap method support
Supports PC-Sampling on gfx94x in both CPX and SPX mode

Change-Id: Ife1e50ab08155678ea4aa2b80475b9974812c40e
2024-08-19 13:20:42 -04:00
Lancelot Six 3646064a0e coredump: Print diagnostic in stderr when errors are detected
This patch adds output (to stderr) to indicate step in the core dump
creation failed to improve debuggability.

Change-Id: I349692e278c2d744136d7fba7f7c2e5a7ada0c06
Signed-off-by: David Yat Sin <David.YatSin@amd.com>
2024-08-19 13:20:20 -04:00
kjayapra-amd e72d5a4443 SWDEV-439234 - set access for vmm memory on graph/mempool path.
Change-Id: Idfb740dcfe6c7fe0f18231de3074a81d06e6886e
2024-08-19 13:16:30 -04:00
Lancelot Six 3e0d3d6d61 coredump: Improve error handling when reading VRAM
It is possible for the runtime to receive an interrupt while trying to
access VRAM data using /proc/self/mem.  In such case, pread(2) would
return -1 and set errno to -EINTR.  This is not an error case, the
pread(2) call just need to be restarted, however current implementation
would tread it as an error.

This patch changes the the implementation to correctly retry on EINTR.
While at it, this patch also handles cases where pread(2) reads less
data than originally requested.

Change-Id: I6a72fc5eda4afd90319f0d24b35c9eac6d1ff41c
Signed-off-by: David Yat Sin <David.YatSin@amd.com>
2024-08-19 12:20:22 -04:00
David Yat Sin 1d1d402dcc Do not allow default mem_flags
Force mem_flags to be explicit passed in then calling Queue constructor
to avoid ambiguity with calls to Queue constructor trying to only pass
the agent_node_id.

Change-Id: Ib6fedcb9e52d6c9f35f9051dfa989343456ca368
Signed-off-by: David Yat Sin <David.YatSin@amd.com>
2024-08-19 12:19:32 -04:00
Swati Rawat 4cb5c509f9 Tagging APIs from hsa_ext_amd.h for Doxygen
Change-Id: I2ab2358985442647cedbd99eca5b1140cb0b0680
Signed-off-by: David Yat Sin <David.YatSin@amd.com>
2024-08-19 12:17:20 -04:00
Shweta.Khatri 8176a8830f Adjusted indentation with tabs
No functional change

Change-Id: Ibe97b03f62c4affcb60d3469312c8a0b6eb11391
Signed-off-by: David Yat Sin <David.YatSin@amd.com>
2024-08-19 12:16:58 -04:00
Chris Freehill 08693587d6 Add CONTRIBUTING.md file
Change-Id: I8f31240d485aa1cfc259e5882de5d73d55c95409
2024-08-19 16:12:31 +00:00
Ranjith Ramakrishnan 63ff6a4b30 Removed kmod dependency from rocminfo
kmod dependency is not at all required for rocminfo. Removing the same from the package dependency list

Change-Id: I58f9c4305585c5dd770ea3c6a6298c30c89c31b5
2024-08-19 16:12:31 +00:00
James Xu a621bca303 Fix compile errors with musl>=1.2.3
Patch submitted on behalf of user AngryLoki:

The fix repeats common pattern, used for musl, 
e.g: https://github.com/void-linux/void-packages/blob/5ccf1c66a1df2d644e1a0db0a68fca321469c57e/srcpkgs/MangoHud/patches/0001-elfhacks-d_un.d_ptr-is-relative-on-non-glibc-systems.patch#L90.

Quoting:
d_un.d_ptr is relative on non glibc systems

elf(5) documents it this way, glibc diverts from this documentation

Change-Id: I815f88f127ef00c88ae827a8ad48df0d33c92467
2024-08-19 11:02:29 -04:00
Julia Jiang 0facebc71d SWDEV-478511 - Create deprecated memory management section for related APIs
Change-Id: I6d802f61fe787a423e2ef65e645c6395e715fd55
2024-08-16 16:45:38 -04:00
Julia Jiang 9f1d4625d2 SWDEV-436608 - Un-deprecate hipHostAlloc()
Change-Id: Iad319e8acb13a293911bbd9242fc9ba52ebe7fbb
2024-08-16 16:37:44 -04:00
kjayapra-amd 8ddb023512 SWDEV-465509 - Save the handle type during import function.
Change-Id: If069abb6cd474a7b071617757041402b53575414
2024-08-16 10:55:36 -04:00
Ioannis Assiouras 335bb33f1b SWDEV-470372 - Un-deprecate hipHostAlloc, comply with cuda and introduce hipHostAlloc flags
Change-Id: I0c6910306ff98d97e9f8a6ccf467be6189e1ca86
2024-08-16 06:33:28 -04:00
Ioannis Assiouras 1e4c60f286 SWDEV-470372 - Un-deprecate hipHostAlloc, comply with cuda and introduce hipHostAlloc flags
Change-Id: I8165342825dfe07b6e9edc492d0166d0a03be62d
2024-08-15 18:25:22 -04:00
Joseph Macaranas 6222fa632d SWDEV-458516 - External CI: Pipeline case sensitivity fix
Change-Id: I6501cce7847b4f8bfaa435b143369362d2b8c249
2024-08-15 17:25:21 -04:00
Ioannis Assiouras e45cbdfaa1 SWDEV-478295 - Link with hiprtc-builtins for sample 23_cmake_hiprtc in static build
Change-Id: I9ccc1310ea2f38d8624103e198b6fc1077712345
2024-08-15 16:37:38 -04:00
Giovanni Lenzi Baraldi 11526c0f7c ATT Agent fixes and improvements (#1011)
* Tidying ATT dispatch API. ATT Agent to be initialized with rest of profiler. Removing read_index-based wait.

* Formatting

* Adding some input validation

* Add perf test for agent

* Removing async

[ROCm/rocprofiler-sdk commit: fa1b9e67ab]
2024-08-15 13:57:13 -03:00
Giovanni Lenzi Baraldi fa1b9e67ab ATT Agent fixes and improvements (#1011)
* Tidying ATT dispatch API. ATT Agent to be initialized with rest of profiler. Removing read_index-based wait.

* Formatting

* Adding some input validation

* Add perf test for agent

* Removing async
2024-08-15 13:57:13 -03:00
Chris Freehill 1c6a4a55f1 rocrtst: change const arg to non-const
In rocrtst helper_funcs.h, a function argument that gets
written to was previously incorrectly marked as const.

Change-Id: If8cc6555ebfa974b9665d9d5b93de01bb45fde2c
2024-08-14 08:18:11 -05:00
Rahul Manocha 6cf941c830 SWDEV-454315 - Disable test section that segfaults on windows
Change-Id: Idaac99c433120d98646417318258bfb375d2f367
2024-08-14 07:53:29 -04:00
Ioannis Assiouras 7a1e818c82 SWDEV-449052 - Fix hipMemcpyParam2D when source or destination pitch is set to zero
When source or destination pitch is set to zero in hip_Memcpy2D struct
it should default to WidthInBytes + [src/dst]XInBytes

Change-Id: Id57b53cab40ba72ced231258da9356554c4868c3
2024-08-14 04:46:41 -04:00
Julia Jiang ffa2f0634f SWDEV-447806 - fix for HIP RTC example re-uses kernel variable
Change-Id: I9a1d18868098225012d01515c60b7bcdbe7bc533
2024-08-13 14:52:21 -04:00
Gopesh Bhardwaj ecdc81553c gobhardw/swdev 479013 (#1014)
* test pr for ROCm sdk tests

* SWDEV-479013 doc updates

[ROCm/rocprofiler-sdk commit: 5bec9f66b6]
2024-08-13 23:35:12 +05:30
Gopesh Bhardwaj 5bec9f66b6 gobhardw/swdev 479013 (#1014)
* test pr for ROCm sdk tests

* SWDEV-479013 doc updates
2024-08-13 23:35:12 +05:30
Vladana Stojiljkovic 7b46a48be3 SWDEV-477711 - Add mappings for hipTexRefSetMaxAnisotropy and hipTexRefGetMaxAnisotropy
Change-Id: Ifab9ec542edf97c314d1fb47cd14461089902db4
2024-08-13 12:41:46 -04:00
Vladana Stojiljkovic 58ec72277f SWDEV-477711 - Add mapping for hipTexRefGetFlags
Change-Id: I008ab15256bde3786d59f2bda4b34a3336dc5edf
2024-08-13 12:41:00 -04:00
amd-jmacaran a44a75a56d Enable external CI pipeline triggers
Change-Id: Ifcde2c489e5057b6bc37b02156b6232c299e4808
2024-08-13 11:48:48 -04:00
amd-jmacaran cd4ed0916b SWDEV-458516 - External CI: Align with branch naming convention.
Change-Id: Ie1d874742b804f02ceda68064fa54f5d59c092b7
2024-08-13 11:47:11 -04:00
amd-jmacaran c75ed97b6b SWDEV-458516 - External CI: Align with branch naming convention.
Change-Id: I3f1fb1e2c2d32a22a144c5f85d1e34a7c95b29a6
2024-08-13 11:04:47 -04:00
Satyanvesh Dittakavi d69cc35750 SWDEV-473942 - SWDEV-431367 - Correct atomicMax(_system) and atomicMin(_system)
- Fixes -0.0 and +0.0 comparison. For atomicMax if the value on
address is -0.0 and on val is +0.0, gfx90a's unsafe atomics will swap
them. This behavior should be consistent with cas loop as well.

- _system variants of atomicMax and atomicMin are resulting in
incorrect output. Updated these to use the similar implementation as
atomicMax and atomicMin.

Change-Id: I20df36ee29ae0434a6b564f2ba71193fe41cfa59
2024-08-13 10:38:50 -04:00
Rakesh Roy 9ec381b401 SWDEV-472723 - Correct file format
- Change line ending from CRLF to LF

Change-Id: Ie75e4bd3c7d58532bc986ec61476ee6f9c5f1f95
2024-08-13 13:39:48 +05:30
gobhardw 865e64753a Github issue#52 fix
Change-Id: I35b56980a918bf2582fc4c283b9f60f8512a39d0
2024-08-13 10:00:59 +05:30
gobhardw 7a807b3f63 Github issue#52 fix
Change-Id: I35b56980a918bf2582fc4c283b9f60f8512a39d0


[ROCm/rocprofiler commit: 865e64753a]
2024-08-13 10:00:59 +05:30
Galantsev, Dmitrii c015f0fcaa INSTALL - Fix rdc groups and lock file check
This fixes issues like:

1.

  /run/lock/rdcd.lock: Bad file descriptor
  Failed to determine owner of lock file.: Numerical result out of range

2.

  rdc.service: Failed to determine group credentials: No such process
  rdc.service: Failed at step GROUP spawning rdcd: No such process

Change-Id: I0ef5eb6ab72d036a3ea8dcb81f7a9108d279f7d6
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2024-08-12 18:54:43 -05:00
Galantsev, Dmitrii 06a1bba81a INSTALL - Fix rdc groups and lock file check
This fixes issues like:

1.

  /run/lock/rdcd.lock: Bad file descriptor
  Failed to determine owner of lock file.: Numerical result out of range

2.

  rdc.service: Failed to determine group credentials: No such process
  rdc.service: Failed at step GROUP spawning rdcd: No such process

Change-Id: I0ef5eb6ab72d036a3ea8dcb81f7a9108d279f7d6
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>


[ROCm/rdc commit: c015f0fcaa]
2024-08-12 18:54:43 -05:00
Galantsev, Dmitrii c22a737ce7 INSTALL - Add rdci binary
Change-Id: I2b7047989b650d6a3998d7a5b37fad7ade876b17
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2024-08-12 16:58:35 -05:00
Galantsev, Dmitrii ef73a46c6c INSTALL - Add rdci binary
Change-Id: I2b7047989b650d6a3998d7a5b37fad7ade876b17
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>


[ROCm/rdc commit: c22a737ce7]
2024-08-12 16:58:35 -05:00
Galantsev, Dmitrii 4ebc34095c INSTALL - Always add video group to rdc user
Previously we relied on "render" to be enough and only used "video" as a
fallback. On some systems like SLES this might not be sufficient.

One issue happened when starting rocprofiler as part of RDC
initialization:
  what():  hsa error code: 4104 HSA_STATUS_ERROR_OUT_OF_RESOURCES
The issue only happened when RDC was started with systemd.
Turns out "rdc" user (under which systemctl starts RDC) only had render
but not video group. Adding video group solved the issue.

Change-Id: Idf6a9521ae72a0b28a428869aa7ab1edde3ae259
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2024-08-12 16:58:35 -05:00
Galantsev, Dmitrii d541941b4c INSTALL - Always add video group to rdc user
Previously we relied on "render" to be enough and only used "video" as a
fallback. On some systems like SLES this might not be sufficient.

One issue happened when starting rocprofiler as part of RDC
initialization:
  what():  hsa error code: 4104 HSA_STATUS_ERROR_OUT_OF_RESOURCES
The issue only happened when RDC was started with systemd.
Turns out "rdc" user (under which systemctl starts RDC) only had render
but not video group. Adding video group solved the issue.

Change-Id: Idf6a9521ae72a0b28a428869aa7ab1edde3ae259
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>


[ROCm/rdc commit: 4ebc34095c]
2024-08-12 16:58:35 -05:00
SrirakshaNag 02ba6d0cdc fix range iteration test (#999)
* fix range iteration test

* misc fix

* fixing test fail

* fixing test

* fix yaml test

* add newline

---------

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

[ROCm/rocprofiler-sdk commit: 0e0b37501c]
2024-08-12 14:30:08 -05:00