Граф коммитов

429 Коммитов

Автор SHA1 Сообщение Дата
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 5693e1a140 replace the set of CMAKE_SHARED_LINKER_FLAGS with add_link_options.
Change-Id: Iaf8fc1d7680196662d610f34979ded07c6287df9
2022-02-03 12:31:45 -05:00
Ammar ELWazir c19cfbfffd SWDEV-318551: Adding License file for profiler
Making the new License file, Adding support in the CMakeLists.txt

Change-Id: I785035a780fbfc59951fc27d45f9c1869ffb4fb3
2022-01-26 13:38:42 -05:00
Icarus Sparry 6676d60516 Allow owner write permission
If we are packaging debug information then we need to edit the created
libraries and executables to extract the debug information. Due to a
bug in the tooling this requires write access to the created files.

Allow generation of only rpm and only deb files is specified on the
command line.

Signed-off-by: Icarus Sparry <icarus.sparry@amd.com>
Change-Id: I9a9df81102770ba681b1e7e0b5f704990f5435bb
2021-11-24 20:59:34 +00:00
Icarus Sparry 39a11d7dc4 Merge "Allow creation of just deb or rpm" into amd-staging 2021-11-15 23:03:57 -05:00
Icarus Sparry f4c7309592 Allow creation of just deb or rpm
Remove hard code of generating both deb and rpm, allow the user to
specify what is desired and cache that choice.

Create executable with owner write permission to work around binutils
bug.

Change-Id: I67655e5d351b227d1a8db4645228300d2bb83f9a
Signed-off-by: Icarus Sparry <icarus.sparry@amd.com>
2021-11-16 00:14:14 +00: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
Laurent Morichetti 63d20312ae Install merge_traces.sh in $prefix/bin
Change-Id: I6cea078e5b64a68d7bd269dc3aab976a7ab7b5c7
2021-10-05 21:29:53 -07:00
Chun Yang a8b5d6cf33 SWDEV-283942 SWDEV-292075
Fixed exception thrown when ROCP_HSA_INTERCEPT not set or set to 0;
Fixed ROCM hsa_init() failed with error 4096 when trying to read hardware performance counters;
Fixed LD_LIBRARY_PATH to include necessary library;

Change-Id: Idcb7ff807a79f4267374c34041d3bca33d85f532
2021-10-05 10:44:26 -04:00
Chun Yang 2519d00c17 Fixed corrupted multithread map handling
Change-Id: Ib7d33a4b7f3306b7195ff89c28b021fb1fa6bc88
2021-10-04 20:06:32 -04:00
Chun Yang 6820a07d1a Merge "Changed function param passing from ref to value" into amd-staging 2021-09-30 12:03:32 -04:00
Chun Yang d024c48c56 Changed function param passing from ref to value
Change-Id: I4e5feec09705e4e4bab5f9dcf320fc25a59c0762
2021-09-29 18:46:42 -07: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 acb246f788 Get ROCr and ROCt dependencies using cmake targets
Instead of detecting files (header/library), use cmake's find_package to
locate the required dependencies (hsa-runtime64 and hsakmt).

Adding hsa-runtime64::hsa-runtime64 and hsakmt::hsakmt to the
target_link_libraries also takes care of adding the interfaces include
directories to the search path.

Change-Id: I64eb77c97dac7982ac96d3158ad57df776cc0b53
2021-09-14 14:49:32 -07:00
Chun Yang 4409957364 Merge "SWDEV-301543 SWDEV-276146 : Fix profile output buff allocation" into amd-staging 2021-09-08 13:27:01 -04:00
Chun Yang 2b79931631 SWDEV-301543 SWDEV-276146 : Fix profile output buff allocation
L2 flush is triggered by explicit cache flush PM4 packet in aqlprofile
packets to GPU. This cache flush is used to sync up CPU and GPU to make
sure perfomance counters copied to profile output buffer is visible to
CPU. To get rid of this cache flush the followings are done:
  1. This explicit cache flush packet is removed from aqlprofile code
     (another commit to aqlprofile code).
  2. This commit which changed profile output buffer to use kernarg
     memory since it is uncached for GPU.
After these changes profile counter values when copied by GPU to output
buffer they are guaranteed to be visible to CPU.

Change-Id: Ie953949c85fbee2f4369f1de966bcfb33daec084
2021-09-02 17:30:57 -07: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
Tony Tye 99a5d6e75d Merge "SWDEV-296154 rocprofiler test suite is failing" into amd-staging 2021-08-12 02:29:52 -04: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
rachida 312048b38d SWDEV-296154 rocprofiler test suite is failing
Change-Id: Id2b0ade0a475e38ea54671802e16b25d5beabed8
2021-08-11 10:41:26 -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
Chun Yang 55fdd451f3 Change obj_map_ from pointer to object
Change-Id: Ibc2fb8812c34b44d7b59275f2850bb127b9def7c
2021-07-28 11:52:44 -07:00
Christophe Paquot e2be50634e Merge "SWDEV-295205 - Remove KFD domain from roc profiler" into amd-staging 2021-07-19 17:27:19 -04:00
Ammar ELWazir b1f286b967 SWDEV-294319 & SWDEV-294321:
Reverting the last commit
2021-07-16 16:35:22 -06:00
Ammar ELWazir b6910a9bc6 SWDEV-294319 & SWDEV-294321:
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: I456a242ca1bc0c1bd39ae687a455b02c588de466
2021-07-16 13:29:18 -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
AMD 4df3e0bd9a Add support for gfx90a
Merge gfx90a support from the 'amd-npi' branch.

Change-Id: I9b51711ed4a1d2f1ed42ba9b83cb12136be228b8
2021-06-16 16:35:42 -07: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
Chun Yang 6da2b19562 SWDEV-283942 : Fixed false error report from rocprofiler
Change-Id: Ifc6eb0cb26f60a5596e1b626a578135ae9080f26
2021-05-17 14:16:50 -07:00
Freddy Paul c684d61de8 rocprofiler:update with case-sensitivity email
All packages should have a valid email for contact.

SWDEV-257322

Change-Id: I49107ff44b9aaf13ec6a20319a420146f6443907
2021-05-03 11:48:57 -07:00
Freddy Paul 71ce3fa617 rocprofiler:Add maintainer email in package
All packages should have a valid email for contact.

SWDEV-257328

Change-Id: I03ceefc46cf8da4486e19b1001abd4cd8cbcb3c5
2021-04-30 11:37:33 -07:00
Kent Russell 97c9efce38 Cmake: Support static hsakmt
Add numa lib as this will be required with a static thunk
Look for static thunk of shared thunk cannot be found

Signed-off-by: Kent Russell <kent.russell@amd.com>
Change-Id: Idcaa0c785a0502c9f5fe42e2dfb9e0c1780f9d66
2021-04-27 12:18:02 -04:00
Rachida Kebichi 7a5e408891 Fixed issue with map key in dep_proc map
Change-Id: I5c2deeda2c2dedd9c800af60c0b4748279f8418e
2021-04-23 13:14:40 -04:00
Rachida Kebichi a2d89f22a7 Fixed order of code obj and symbols processing
Change-Id: Icb3341e54f3e0c7cf3da06811712f001e213d83d
2021-04-22 20:27:26 -04:00
Laurent Morichetti 304d3366af Fix a compilation error with gcc-9.3.0
On Ubuntu 20.04, in Release mode, gcc fails with this error:

In file included from /usr/include/string.h:495,
                 from /opt/rocm/include/hsa/hsa_api_trace.h:57,
                 from ../rocprofiler/src/util/hsa_rsrc_factory.h:29,
                 from ../rocprofiler/src/util/hsa_rsrc_factory.cpp:25:
In function ‘char* strncpy(char*, const char*, size_t)’,
    inlined from ‘const util::AgentInfo* util::HsaRsrcFactory::AddAgentInfo(hsa_agent_t)’ at ../rocprofiler/src/util/hsa_rsrc_factory.cpp:323:12:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:34: error: ‘char* __builtin___strncpy_chk(char*, const char*, long unsigned int, long unsigned int)’ specified bound depends on the length of the source argument [-Werror=stringop-overflow=]
  106 |   return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../rocprofiler/src/util/hsa_rsrc_factory.cpp: In member function ‘const util::AgentInfo* util::HsaRsrcFactory::AddAgentInfo(hsa_agent_t)’:
../rocprofiler/src/util/hsa_rsrc_factory.cpp:322:39: note: length computed here
  322 |     const int gfxip_label_len = strlen(agent_info->name) - 2;
      |                                 ~~~~~~^~~~~~~~~~~~~~~~~~

The error is caused by the following 2 lines:

    const int gfxip_label_len = strlen(agent_info->name) - 2;
    strncpy(agent_info->gfxip, agent_info->name, gfxip_label_len);

The size argument to strncpy should not depend on the input string.

Since the terminating character is not considered (the copy is at
most len - 2 bytes), using memcpy is preferable. Also, make sure
the destination does not overflow by clamping the size.

Change-Id: I0c5cf7e0daf4cd6fcf7092efb1d9fd4c02a6c639
2021-04-22 11:12:53 -07:00
Rachida Kebichi 7d99e03caf Merge "SWDEV-263827 Visualize back-dep for wait" into amd-staging 2021-04-12 09:32:28 -04:00