Commit Graph

194 Commits

Author SHA1 Message Date
gobhardw ef31a96b55 updated README for plugins
Change-Id: I8875bf8b624c8e09467bcb30e2794bdf41b31872
2023-03-29 15:55:05 +00:00
Sriraksha Nagaraj f29b968185 SWDEV-379542: Adding to LD_PRELOAD instead of overriding it
Change-Id: Ib6395454ab6d09124baf2f958f26384f8689f64e
2023-03-09 13:21:09 +00:00
Ammar ELWazir ceefad27d0 Solving failed tests for rocprofiler v1
Change-Id: I61ffc4380b077db3a23c9dbb3e680324cf7f1a4a
2023-03-09 13:21:08 +00:00
Giovanni LB 4ec67854e5 SWDEV-384602: Solved issues with multiple users.
Change-Id: Ie40addcbfdfce6ce45ceec8e38fc83d3d72882eb
2023-03-09 13:21:07 +00:00
Ammar ELWazir dc69331379 Fixing rocprofilerv2 naming and CMake issues
Change-Id: Ib6d336349a056731e5c0f35151296d6fea671360
2023-03-09 13:21:01 +00:00
Ammar ELWazir 9b0e58dfdf Fixing Packages installation path
Change-Id: Ide3536b3c6050effcc9337e612375a7e5ddb6522
2023-03-09 13:20:37 +00:00
Konstantin Zhuravlyov e0e5f7336b Explain why kernels are compiled with code object v4
Change-Id: Ib0502f005faa513105cf570a0013517d6c6349c3
2023-02-03 21:54:33 -05:00
Konstantin Zhuravlyov d9c9d39902 Compile kernels with code object v4
Change-Id: I3dc05dff07888cea79ba0a51eaac17ed64f5fec0
2023-02-03 16:17:34 -05:00
Ammar ELWazir bbbd177dd7 Suppressing the hipGraphLaunch issue
hipGraphs acts as a separate activity group as they have their own memory copies and their kernel dispatches and more activities, currently hip api that roctracer depend on doesn't have a way to represent this type, so we are temporarily suppressing the issue up till we have a complete support for the hipGraphs

Change-Id: I5d889be05c9414530672c781e5a712d572ea4104
2022-11-01 23:29:05 -05:00
Ammar ELWazir 7e8df53c44 Fixing merge_traces.sh
merge_traces.sh was depending on tblextr.py, and the location of tblextr.py changed from bin to libexec/rocprofiler

Change-Id: I76f1a0f41ffcff26e6a1119dacfb8b2ebd56d17d
2022-10-28 10:28:36 -05:00
Laurent Morichetti 3b61d6bd8c SWDEV-362165 - Escape argument strings in the JSON file
"a_string\x000" -> \"a_string\\x000\"

Change-Id: I8bf054702b34577f84080080d9538b16abc996fe
2022-10-18 01:47:46 -04:00
Sriraksha Nagaraj 3bb853c56d SWDEV-359118 - fix for misrepresentation for stream ids in Json file
Some trace entries report the stream argument as 'stream=' and some report it as 'hStream='.
Change-Id: I9e7c7af162db72ddadf6f2a3fe4f44a04bf77ed6
2022-10-13 21:48:48 -04:00
Sriraksha Nagaraj c565e2f329 SWDEV-287352 - Changing the description for timestamp option
Change-Id: Ie1d942f7560838efbc38394b21facf04df9bbda5
2022-07-07 15:08:53 -04:00
Sriraksha Nagaraj b0152e0091 SWDEV-323976 - changes in the scripts to display copy activity in the trace output
Change-Id: If8f7df3668c075a8f21508c796220693be9b40d3
2022-07-05 16:24:45 -04:00
Sriraksha Nagaraj c9efa4891e SWDEV-287352: Fixing typos in the rocprof --help description
Change-Id: I39739e53e477c9e621da1b686e248b5d7aff5ad2
2022-06-29 16:26:25 +00:00
Ammar ELWazir 6f97e15d55 Enabling ROCP_STATS_OPT
Enabling the new methodology of ROCP_STATS_OPT of getting HIP activities while the application is running

Change-Id: I19d09e2f2abe16e6528240bf55d6048645aaa09f
2022-06-21 19:30:38 -05:00
Ammar ELWazir 93a79eb99a Google-Chrome Tracer parser attaching flow events to the wrong time slice
This issue happens when we have slices that have overlapping
timestamp values (i.e. start_ts + dur = start_ts of next slice)
and the flow event references that shared timestamp value.
The google chrome parser sorts all the events
and just taking the most recent one.
Rocprof is outputting flow attachment points as start+dur;
the end ts of the slice that can overlap with the next slice
if no gap between them.

Solution proposal by Michael Steffen (Michael.Steffen@amd.com)

Change-Id: Ifcde142144033c9012b01a78c95f047384f972dd
2022-06-13 14:53:14 -04:00
Ammar ELWazir 0be6306cae SWDEV-338186: Fixing Roctracer tool name, path
Using libroctracer_tool.so instead of libtracer_tool.so and fixing the paths for the tracer tool

Change-Id: I9b3ca885f3ca5385b106d5376894b1b4054f9c1d
2022-05-20 05:26:33 -04:00
Laurent Morichetti 0123aa61fa Register the tracer API as a tool library
In a future change, the tracer API library (libroctracer64.so) will be
automatically registered as a tool library. Until then, explicitly
register it by adding it to the HSA_TOOLS_LIB environment variable.

Change-Id: I44d78ac38608e6da5edf04b498a73485f5609d06
2022-05-04 19:19:34 -07:00
Kiumars Sabeti 4d99f8d8e5 SWDEV-320429: wrapping the comma-containing names in the .csv in double quotes at the time the .csv is generated
Change-Id: I62f94a1cf8895eb324080f8aacac3f13c02d7050
2022-04-27 20:45:51 -04:00
Ammar ELWazir 1f925b3f16 SWDEV-332635: Fixing the effect of roctx-rename feature
HIP/HSA traces were asked to access range_data list, however, it was not initialized because roctx tracing was not enabled, moved lists initialization before roctx check

Change-Id: I9942876445cb1b2f69c6bb0d8986d6d9234f1441
2022-04-13 12:58:31 +00:00
Laurent Morichetti 1078a088e9 SWDEV-318682: Using roctx to rename long kernel names to shorter ones.
To enable this feature use the --roctx-rename rocprof option. This
implementation records all messages received in roctxPush calls and
use them to replace corresponding kernel names.

Tested with the following HIP program:

\#include <hip/hip_runtime.h>
\#include <roctracer/roctx.h>

__global__ void
ThisIsALongKernelName ()
{
}

int
main (int argc, char* argv[])
{
  hipSetDevice (0);

  // Not in a roctx range.
  ThisIsALongKernelName<<<1, 1>>> ();

  roctxRangePush ("A");
  // In a simple first level roctx range.
  ThisIsALongKernelName<<<1, 1>>> ();
  roctxRangePop ();

  roctxRangePush ("B");
  roctxRangePush ("C");
  // In a nested roctx range.
  ThisIsALongKernelName<<<1, 1>>> ();
  roctxRangePop ();
  roctxRangePop ();

  roctxRangePush ("D");
  roctxRangePush ("E");
  roctxRangePop ();
  // In a first level roctx range, but after a nested range.
  ThisIsALongKernelName<<<1, 1>>> ();
  roctxRangePop ();

  hipDeviceSynchronize ();
  return 0;
}

Change-Id: I629312234468daff8b017caa5cb0773707d98cce
2022-04-07 18:03:03 -07:00
Ammar ELWazir 46c4e5045a SWDEV-329270: fixed the multiline input.txt issue
In a previous change the key for the var_table in tblextr.py script has been changed from one value to a tuple without changing the usage of the var_table in the rest of the script

Change-Id: I38964f61afad5323d1ca9b64d538cec426298842
2022-03-25 05:09:52 +00:00
Ammar ELWazir fd4767d954 SWDEV-329261: Fix for Post-Processing HSA Memcopy Async Activities
The Post-Processing script was depending HSA API call for async mem copies to correlate it with the HSA Async Memcpy Activity, now if user decided to include input file with filtering HSA Api calls without adding HSA Memcpy, then all the correlation data will be dropped and the Async activity will be reported with the information given from the HSA async activity result file

Change-Id: I5123a5acab9b35a4c25793e7953fdfb74929c999
2022-03-24 10:22:52 -04:00
Ranjith Ramakrishnan d891915a16 Merge "File Reorganization with backward compatibility" into amd-staging 2022-03-08 14:09:13 -05:00
Ranjith Ramakrishnan 015697db74 File Reorganization with backward compatibility
Package files installed in /opt/rocm
Wrapper header files and library soft links installed in/opt/rocm/rocprofiler
Test tools library and binaries renamed
Internal binaries installed in /opt/rocm/libexec/rocprofiler
run.sh updated with file reorg changes

Change-Id: I927d1a0dcd814764ebf0f473d0a64883906d5457
2022-03-05 14:49:41 -08:00
Ammar ELWazir 7a9692766d SWDEV-326120: Fix for Staging
'merge_traces script from rocprof fails to include GPU / HSA / ROCTX activity in merged trace' change was missing tuple addition to the second for loop causing issues on gfx908 and gfx906 | change NO: 628475

Change-Id: Ic0b6140d4372eb109fdf7bdc8d58c0d84239196d
2022-03-04 12:22:37 -05:00
Saurabh Verma 7a7c73b7d8 SWDEV-299902: merge_traces script from rocprof fails to include GPU / HSA / ROCTX activity in merged trace
Change-Id: I29cfd6cfaf34bfa588bd90774db6d8ac501e8aa8
2022-02-18 16:11:08 -06:00
kiumars 7a8f5b5e90 SWDEV-303820: [LLNLA-63]rocprof does not check input arguments at start
Change-Id: I820a2b6df10b799f776518a98519e9c8ca40ec53
2021-11-11 17:31:56 -05:00
Chun Yang ff43ca1542 SWDEV-296922 : Incorrect rounding due to integer division in rocprofiler metrics
Changed var_pattern in tblextr.py to include pattern like "name[0]"

Change-Id: Ibe1c512595cfbdcaca8fa5bddceb3f6a570caf43
2021-09-29 09:15:11 -07:00
Chun Yang f9017cbdc5 SWDEV-296922 : Incorrect rounding due to integer division in rocprofiler metrics
Changed derived metrics to double from int64.
Fixed standalone test due to int64 to float change
Fixed intercept test due to int64 to float change.

Change-Id: I49631c187406ae9dd94a869b3bb13772012e8cdf
2021-09-23 14:52:35 -07:00
Saurabh Verma ca059e1aa9 SWDEV-296100: hipStreamWaitValue64 and hipStreamWriteValue64 break rocprof
Change-Id: I5b31affa6df4359a02014b87b825554ac5519c1a
2021-09-15 12:07:40 -04:00
Laurent Morichetti d926d09134 Merge "Merge roctx_trace.txt" into amd-staging 2021-09-02 12:31:29 -04:00
rachida 6f31192501 SWDEV-295878 Fix for seg fault when using --trace-start off
Change-Id: I94d95dd4fb49aace5f1ee006c47b94573f997b85
2021-08-31 16:49:48 -04:00
Laurent Morichetti 6fe4a5db51 Move spmltgen.py to amd-npi
Change-Id: I63e67193453e2c5479a03a8c9c97f94eced04268
2021-08-20 10:45:39 -07:00
rachida f1c0faa601 SWDEV-294331 Fix for memcopy Incorrect number of bindings error
Change-Id: I6dabca411bab567b27db8ef801006b393b22788e
2021-08-13 15:53:22 -07:00
Ammar Elwazir a3700a9243 Merge "SWDEV-294319 & SWDEV-294321 Added support for missing functions" into amd-staging 2021-08-11 21:52:31 -04:00
Ammar ELWazir 14b62557d0 SWDEV-296331: Fixed libhsakmt.so.1
Removed the old code for trying to locate libhsakmt.so.1 as it is replaced by libhsakmt.a static library

Change-Id: Icc5a0f6ead285e2406e6e83614e536184e3a2663
2021-08-11 12:25:06 -04:00
Laurent Morichetti 4ab94c410a Merge roctx_trace.txt
Add roctx_trace to the list of files that need to be merged when
aggregating results from multiple runs.

Change-Id: I5810be9e9220765ed8e8a84eca854131e97e61b1
2021-08-05 09:04:26 -07:00
Ammar ELWazir 804e063eda SWDEV-294319 & SWDEV-294321 Added support for missing functions
Added Support for launch kernel functions to fill_api_db
Added support for hipMemcpyToSymbol in add_memcpy
Added support for hsa_amd_memory_pool_allocate to be counted as source of allocations

Change-Id: I68806106324b19ca6f09d413df37c27582be2f51
2021-08-02 16:55:33 -04:00
Christophe Paquot 79d477daed SWDEV-295205 - Remove KFD domain from roc profiler
Removed KFD domain and references.

Change-Id: Icd7e1789c77490e57b527be065043eadb6b75c1c
2021-07-14 16:50:20 -07:00
Christophe Paquot 244dadcb85 SWDEV-282961: dependency arrows missing
When building the json data flow, from_us_list has (timestamp, stream_id, thread_id).
stream_id used to be interpreted as from_tid and tid as to_tid. But that's not correct.
stream_id is always a destination and tid is the initiator (source).

Change-Id: I2f5bb86a387b4003b17271c90bdf9de4b59a79bf
2021-06-30 09:49:45 -04:00
rachida b54bfac5bf SWDEV-291267 Script to merge mpi rocprof traces
Change-Id: I3d86276666efb067ccb62730e74a67e0cc7c4d42
2021-06-25 15:12:35 -04:00
Rachida Kebichi afad08b4c5 Merge "SWDEV-282961 Skip barrier events. Process hipMemSet events" into amd-staging 2021-06-16 10:27:39 -04:00
rachida caa5f32300 SWDEV-282961 Skip barrier events. Process hipMemSet events
Marker events inside hcc_ops_trace.txt are from barriers so they are not meant to be stored in ops_patch_data map.
Added support for hipMemset events which are a kind of memory copy.

Change-Id: I213fe959bcd35ff0371613ba5bffd95bc53e06b5
2021-06-10 16:33:39 -04:00
rachida 4ba91a972c SWDEV-284863 Removed accidental override of recordid
recordid  cannot be just a counter. The code removed was doing
just that i.e. incrementing a counter. Recordid has to come
from recvals data structure. That code was left there since
a while when Evgeny and Rachida were trying to prototype this feature.
I am not sure why it was not spotted before.

Change-Id: Ia867066dcfca083fcd4111f2aefc2fec88c26314
2021-06-08 14:21:27 -04:00
Rachida Kebichi 761bd6a86b SWDEV-284863 Fixed several issues preventing memcpy info dump in csv
1st issue was that one of the ostream ops failed to print the
content of the struct.
2nd issue: get_ptr_type was called with args being src/dest
pointers while it should be the agents pointers for src/dest.
3rd issue: memcopies map used (recordid, procid, is_async)
as a key but this is not enough as some copies share same key,
so I added begin/end timestamps as a way to distinguish between them.

Change-Id: I7c6e80e74e30ea572f21612aaf0cf7efec6e91e6
2021-06-04 12:18:35 -04:00
Ashutosh Misra f3c80f645a rocprofiler:using right rocm lib(s) path
Correcting thunklib preload with tested absolute path

SWDEV-285578

Change-Id: I8aa8205a6886d2101cf66016d307ff8a7c86257b
2021-05-25 02:04:51 -04:00
Laurent Morichetti badd1270f6 Use ${BASH_SOURCE[0]} to deduce the install dir
Change-Id: I96b81c4d01a88a1edee05a54a4982e4a93225847
2021-05-20 16:36:57 -07:00
Rachida Kebichi 7a5e408891 Fixed issue with map key in dep_proc map
Change-Id: I5c2deeda2c2dedd9c800af60c0b4748279f8418e
2021-04-23 13:14:40 -04:00