Commit gráf

136 Commit-ok

Szerző SHA1 Üzenet Dátum
Laurent Morichetti 5963363484 Fix assertions
Replace EXC_ABORT() checks with assertions.

Rewrite the exception class to use std::runtime_error (as it
already handles the std::string/char* message argument).

Change-Id: I48e31924f3aea1328e6562ab6bb06ec373fd5d5e
2022-04-27 11:24:26 -07:00
Laurent Morichetti 0d7d56eea5 Fix a SEGV when running --roctx-trace
There's a typo in RegisterApiCallback, roctx::cb_table.Get should be
roctx::cb_table.Set.

Change-Id: I47ec8ac666f783ff4e03f35d13e375e645899900
2022-04-27 12:14:32 -04:00
Laurent Morichetti 18f60efe05 Fix typos/spelling errors
Change-Id: Idec1cb8fab91c30f99563bc7dd4db1faeb2db954
2022-04-26 12:39:38 -07:00
Laurent Morichetti 6b06322578 Remove unused proxy utilities
The proxy queue implements packet interception to enable timestamps
collection. As it is, the roctracer is not intercepting packets, and
instead relies on the rocprofiler tool to collect the timestamps for
kernel dispatches.

This is an issue as the roctracer API does not implement HSA_OPS
activities for kernel dispatches. This will be addressed in a future
commit.

Change-Id: Ib6a778a513410bec4579f223a9d9e9fd9b6054df
2022-04-26 15:26:26 -04:00
Laurent Morichetti b352eedac6 Fix the static library build
Building with -DLIBRARY_TYPE=STATIC fails with 3 undefined symbols.
Add weak symbols to satisfy the linker (mirror what is done for the
other Loader symbols).

Change-Id: I8a2878def21d5f500b0764ceacb4e5255e1111c5
2022-04-26 15:26:10 -04:00
Ammar ELWazir e4569c41fe SWDEV-295522: Fixing Performance Issue
Removing DEBUG_TRACES and the unnecessary use of roctracer_op_string, made the MS app reporting 78 to 81 stable samples per second, depending on the type of the trace, while the main app without rocprof reports 100 to 106. More detailed numbers will be posted in the ticket.

Change-Id: Ifbc529278cea54dd23e6086aa9b9ea2df952d5dd
2022-04-22 18:51:49 -04:00
Laurent Morichetti dc8717a6b5 Allow MemoryPool::Write while Flushing
Before this change, when a producer was blocked by a flush operation,
no other producer could write to the memory pool.  This change allows
other producer threads to continue to write by releasing the producer
lock before waiting on the consumer condition variable.

Change-Id: Idc1c07173d2edb18fbe1a61961f10c02e7ca8c20
2022-04-22 11:22:23 -07:00
Laurent Morichetti 121a84b449 Remove HCC_EXC_RAISING and HIP_EXC_RAISING
HCC_EXC_RAISING and HIP_EXC_RAISING don't add much value, so to
simplify, only keep EXC_RAISING and EXC_ABORT.

Change-Id: Ifdc54981bb682fe68b418cdc95ecebe668e3dcf6
2022-04-22 11:22:23 -07:00
Laurent Morichetti 85552ea3a0 Move the HccLoader activities into the HipLoader
The HCC runtime is no longer used, so move all the remaining
activities in the HipApi loader and remove the HccLoader.

Change-Id: I845c04ca275a474526840315bae0ad1a4ce02257
2022-04-22 11:22:07 -07:00
Laurent Morichetti abf1b90017 Use ACTIVITY_DOMAIN_HIP_OPS instead of ACTIVITY_DOMAIN_HCC_OPS
Change-Id: I43fbac3d02011f74bf7b597519148ed0bd68ff98
2022-04-20 22:00:59 -07:00
Laurent Morichetti d3b166cf01 Remove roctracer_hcc.h
roctracer_hip.h now contains the definitions for the HCC_OPS domain.

Change-Id: I132c993110254050aaa68828f3ca80f368ad24bc
2022-04-20 22:00:59 -07:00
Laurent Morichetti c009df3327 Remove hip_act_cb_tracker.h
It only defines one class (hip_act_cb_tracker_t) that is only used
by roctracer.cpp.

Change-Id: I375a25bd363770d70a7b3b713223484a498cc3d1
2022-04-20 19:48:24 -07:00
Laurent Morichetti 9d728f74a1 Simplify memory_pool.h
Use the standard concurrent support library (std::thread, std::mutex,
st::condition_variable) instead of pthread.

Fix a mismatched memory allocation/deallocation when a custom allocator
is provided. The MemoryPool destructor was always using the default
allocator (using malloc/realloc/free) even if the pool memory was
allocated with the custom allocator.

Fix various thread safety issues and inefficiencies (spin loops).

Change-Id: I97592caa947f63463041bf43e00af9ebb5ff5886
2022-04-20 19:48:24 -07:00
Laurent Morichetti cd62d841fa Make roctracer_cb_table.h a private header
Move roctracer_cb_table.h to the src/core directory, as it should not
be exposed as a public header, and rename it callback_table.h

Change-Id: Ib448cbd32a275df0268d53bd8d1da0bdc9201470
2022-04-20 19:47:43 -07:00
Laurent Morichetti dc22139977 Address review comments from previous commit
Change-Id: I6629dd911de0d7fd08d7a863c172ec73f35fa3d1
2022-04-20 22:46:15 -04:00
Laurent Morichetti 15ab5d9cda Run clang-format on all source files
Change-Id: Ifb52ca306286b6b2d473821bed9db28e9f616d50
2022-04-20 22:45:54 -04:00
Laurent Morichetti 89f6880371 Simplify journal.h
Simplify implementation of journal.h.

Change-Id: I9e2e93fd3cd3391fdf182249f5c4c5ef3debae03
2022-04-20 19:43:16 -07:00
Laurent Morichetti 06a3da7c63 Fix copyright headers
Change-Id: I380d867fa5fb04e68b5b332e9abf33fbeb1e9418
2022-04-19 09:30:45 -07:00
Ammar Elwazir 57add1a6fa Revert "SWDEV-295522: Fixing Performance Issue"
This reverts commit e7327aaac7.

Reason for revert: Merged by mistake

Change-Id: I8c39c823d92cc20a238ca6120dde4b2fa9121e85
2022-04-07 06:55:34 -04:00
Ammar ELWazir e7327aaac7 SWDEV-295522: Fixing Performance Issue
Removing DEBUG_TRACES and the unnecessary use of roctracer_op_string, made the MS app reporting 78 to 81 stable samples per second, depending on the type of the trace, while the main app without rocprof reports 100 to 106. More detailed numbers will be posted in the ticket.

Change-Id: Ida25d3bfc72047afaa27326d697be76d97564334
2022-04-07 00:07:24 +00:00
Ammar ELWazir 43a36f8dd5 SWDEV-328300: supporting centos-9 for roctracer
Changing pthread_yield() to sched_yield() as pthread_yield() is deprecated in CentOS 9

Change-Id: I2961b61374e36995d0835f0e65b26c35f5eb8715
2022-03-18 01:26:39 +00:00
Ammar ELWazir 513460bd41 SWDEV-294248 (Fixing Race Conditions):
Fixing race conditions that happened when enabling trace-period feature on the following code:
#include <hip/hip_runtime.h>
__global__ void
kernel ()
{
}
int
main (int argc, char **argv)
{
  for (size_t i = 0; i < 10000; ++i) {
    hipLaunchKernelGGL (kernel, 1, 1, 0, 0);
    hipDeviceSynchronize ();
  }
  return 0;
}

Change-Id: I4eb88a4a71efbad0f6483e7fb6e8e0c6a662860b
2021-08-11 22:48:55 -04:00
Ammar Elwazir 53fa06ad66 Merge "Fixing correlation_id_map" into amd-staging 2021-08-11 21:44:59 -04:00
Ammar Elwazir 682ebba1c2 Merge "Cosmetic change" into amd-staging 2021-08-11 20:47:53 -04:00
Ammar ELWazir b02586c587 Cosmetic change
Fixing variable names and removing un-needed references

Change-Id: I3ed2cee89e7dc599caf1726fe1eab1a913e5a93d
2021-08-09 14:13:57 -04:00
Ammar ELWazir 1e3ed06a9a Fixing correlation_id_map
Changing correlation_id_map to static instance instead of being a pointer and fixing the corresponding references

Change-Id: Id8a481a90b46831f91985a7e0523fd2869991aeb
2021-08-09 14:05:52 -04:00
Christophe Paquot e5e1258ef8 SWDEV-295205 - Remove KFD domain from roctracer
Change-Id: I2771cf43aa115bb466531bf887f7cc75e187f2ef
2021-07-22 10:12:45 -07:00
Christophe Paquot b04dfd5fdf SWDEV-281658 - Preserve the callback IDs enum ordering
Use HIP_API_ID_NONE to detect unsupported API instead of
HIP_API_ID_NUMBER which can grow with a new version of the API.
This HIP_API_ID_NONE enum has a fixed value of 0 so the
HIP_API_IDs really start at FIRST.

Change-Id: I760aa50ddf6fa6d46bf20555ad7d429335a53f97
2021-06-30 09:52:20 -04:00
Laurent Morichetti 297b613604 Fix random bugs discovered while reading the code
In HsaTimer::correlated_pair_ns, the time ID should be used to
select the clock ID passed to clock_gettime.

In MemoryPool::allocator_default, pass the correct value to realloc.

Change-Id: I5d10c0994c07fdeadd99c81deba4e71a4f579523
2021-05-20 21:22:16 -04:00
Laurent Morichetti 8fb3cdb30b Make HIP_VDI the default
As this snippet shows, HCC is no longer supported by roctracer:

#if HIP_VDI
...
#else
#error HCC support dropped
#endif

Removed HIP_VDI from the CMakeLists.txt, and the source code.

Change-Id: Ib273da2a5af6d67fa1b021a7eca3ff785c8b9c73
2021-05-20 21:20:27 -04:00
Evgeny 912cfd4cf8 SWDEV-251491 : fixing tracing on exit
Change-Id: I1bf2a6093331e7a08179b9f64394c5c49206ef0e
2020-12-25 01:49:44 -05:00
Rachida Kebichi 2d31848c44 SWDEV-259683 HIP API records filtering
Change-Id: I43ca5e022d2c055b6a9bc2c09b4276b490a4b986
2020-12-16 16:29:36 -05:00
Evgeny b83ffeeab8 SWDEV-258731 : cleanup
Change-Id: Iabcc81576eb8b6c0484eae820c3e25a896da6c5b
2020-12-02 13:52:57 -06:00
Evgeny cb3643da05 SWDEV-254329 : extending debug trace with timestamps, cmake option '-DCMAKE_DEBUG_TRACE=1'
Change-Id: Id16c01a6c00f6384c37fa9b5a9709a5e98e1fb57
2020-10-14 00:07:12 -04:00
Evgeny 29c63c5281 SWDEV-213367 : codeobj event implementation
Change-Id: Ibcaca6869ce96d8802c5fa8ba241f43834d6f2a7

update - codeobj event implementation

Change-Id: I4c12f26a19f2b31d9ac2211c3426a0e587a332b3

update2 - codeobj event implementation

Change-Id: Ic877549a83542ae00352503471d881e847ebac9c

test - codeobj event implementation

Change-Id: I0618d3a93de94c3d7467372ba4a3d4ea5520bfc7

URI reference test - codeobj event implementation

Change-Id: I6cf7e8a648cf012cb0708058b118a75e58f992b9

adding test/app - codeobj event implementation

Change-Id: Idf4c197c7b9116ccde5ec50ff47a26a858bfab32

uri test fix - codeobj event implementation

Change-Id: I7c385f82f516d9d8f2cd726366f00be3664006e3

uri test cleanup - codeobj event implementation

Change-Id: I542d5baf88c048c8b4717af843b803cd93e8f3bc

URI buffer fix - codeobj event implementation

Change-Id: Iac65e04c03a0939935c10f53c6b580a2e33878f5

HSA events tests trace-check disabled

Change-Id: I0f4d13aeeceb1d1a6e2191673eacbf9c7ae2ae52
2020-10-09 08:36:12 -04:00
Evgeny Shcherbakov 02fcb90a4b Merge "hip library loader check" into amd-staging 2020-10-07 19:01:55 -04:00
Evgeny 9061c4ea41 hip library loader check
Change-Id: I34957db88932e1ed725a0a0d8ca9a66fecc92e38
2020-10-07 17:53:51 -04:00
Evgeny ef61a39603 SWDEV-249924 : hip correlation id explicite propogation; tracer debug instrumentation;
Change-Id: Ibbc411541f5610ce739f3fc1efa1ab7f605220f5

initial commmit

Change-Id: I34b360be62c2083819dc5c3acc8268bd69f2f58a
2020-10-06 13:25:51 -04:00
Evgeny 156d9327cc flush-rate option fixed
Change-Id: I74ff83ebf2a0a4ba414d30b7cb193522f44660ce
2020-08-20 15:11:38 -05:00
Evgeny ddcb68d0a8 optimized tool stats
Change-Id: Ia9c06879f6e2e195e589c53299c2cafe96a4bfe5
2020-08-20 15:11:21 -05:00
Evgeny f027cf1e22 trace buffer initializatino fix
Change-Id: Ibb4b3e939d74b776dbdd7ae0c2af02535974abd8
2020-08-06 03:08:33 -05:00
Evgeny a9048f33a8 roctracer static linking
Change-Id: I4df98c6d9991a3a58e2f646fc0c8fe8f104a105d
2020-08-05 02:26:40 -05:00
Evgeny 9bb4b0d311 fixed recursive mutex
Change-Id: Id63d022b8fd9e900f40b1f991ecb413419d527ad
2020-07-16 05:53:20 -05:00
Rachida Kebichi 64ee8f29ef support for hip multi kernels
Change-Id: Idc8945f924ceb35081e153921181b96ee5f653b6
2020-06-11 15:13:33 -04:00
Evgeny 07479cf881 adding tracer flush/unload stage unloading
Change-Id: Id84774b2ce20b261a9a84d2ad802b76093a748d4
2020-06-02 05:10:02 -05:00
Evgeny 511f659a8e hipLaunchKernel kernel name fix
Change-Id: I59c63ec34f77fe39ed1edc8b6395db3871004e40
2020-05-29 13:16:14 -04:00
Evgeny 3d4f6b3002 buffer wrap-thread startup fix
Change-Id: I857cff63d28dcc068eddbd3ae2bc0193c428ec41
2020-05-07 06:45:29 -05:00
Evgeny 463869d556 optimize HIP API tracing
Change-Id: I43df8d8c4d2165d6ad63665b8bd1d86f99c5dffc
2020-05-05 04:08:13 -05:00
Evgeny 5531a38d02 loader verbose prints
Change-Id: I99fcdcb0f06b58071a0ff13fbe468c23f7698410
2020-04-22 23:10:05 -05:00
Evgeny 95d05100a7 HIP libraries static definition
Change-Id: I7cd45b491f35d5890246f8d4b1ce358f62b4c682
2020-04-20 12:38:02 -05:00