Commit Graph

160 Commits

Author SHA1 Message Date
gobhardw 40bfdcade0 SWDEV-388249: Memory leak fix
Change-Id: I68c62ee42e6d37fb85a1a8aa0d7a2cbda6431a8b
2023-04-25 12:12:43 +05:30
Giovanni LB c07eff437f SWDEV-388249: WIP - Fixed few memory leaks
Change-Id: I97eb348c7715ac166f48cee3fd3d1b702d355948
2023-04-24 17:58:46 -03:00
Giovanni LB 579d59698a SWDEV-393614: Zero-ed record struct on allocation.
Change-Id: I0c1fa995e336e21d66851ac621114b8e88786c94
2023-04-21 11:37:38 -04:00
Ammar ELWazir 1322e527a6 Fixing Kernel Names
The lifetime of the kernel descriptor handle is unknown, so we currently uses the record id to identify the kernel name

Change-Id: I8802ce245bb021bcb43dd97cd6334bc88de0faf4
2023-04-21 03:17:33 -04:00
Ammar ELWazir 29b25a3ef5 Adding Async output for API Tracing
If rocprofiler_set_api_trace_sync_callback is not called by the API client then it will be automatically saved in the buffer and it will be in async to the user to see the API trace data, sample for async api tracing is added to samples/tracer

Change-Id: I01266a12b0eec172fdcffd7f04c89c2fe96174bb
2023-04-21 03:17:27 -04:00
Ammar ELWazir 4a33787c01 Fixing Performance Issue with API Tracing V2
Records right now will report basic raw data, no pre-processing in API anymore, and it will be left to the tool to process data from the output of synchronous callbacks of the API tracing records output

Change-Id: I8e5845e49e1228cb2fb60ca188ee748745b6a1af
2023-04-21 03:17:17 -04:00
Ammar ELWazir 7621626559 Handling Corrupted kernel names
Change-Id: I660cefa1d6fadfd6cf59fe57b70b718c5e17aa75
2023-04-18 19:28:22 +00:00
Sriraksha Nagaraj d410ba3864 SWDEV-391217:Adding a fix to display kernel properties values
Change-Id: Icde93e81f7024e699bebec32e3b3315c8ae811fa
2023-04-11 03:56:46 +00:00
Ammar ELWazir da570693e3 Fixing Dispatch numbers
Change-Id: I2c8fb4aedfde68acaeb36cbb2e3263a0317011a7
2023-03-09 13:21:08 +00:00
Ammar ELWazir 118dcab102 Solving merge issues between v1 and v2
Change-Id: Ic7fcf7dfb55e893ebc78abb5b33ed79873ea73da
2023-03-09 13:21:08 +00:00
Giovanni LB cb07947ad4 SWDEV-385374: Fixed next record iteration.
Change-Id: I69e86f2c27ea9a8b02cb48d876534b1dd0f6dc4f
2023-03-09 13:21:07 +00:00
gobhardw 34e62464ee SWDEV-297569: Support for xgmi counters
Change-Id: If14c0f63821b721fe719d3b76915afc2f2333d5c
2023-03-09 13:21:07 +00:00
Saurabh Verma 3a639543e7 SWDEV-297574: Support for pcie counters
Change-Id: I4a662c43a9d0cf883f336574baa09fc33b78b9af
2023-03-09 13:21:06 +00:00
Ammar ELWazir dc69331379 Fixing rocprofilerv2 naming and CMake issues
Change-Id: Ib6d336349a056731e5c0f35151296d6fea671360
2023-03-09 13:21:01 +00:00
Sriraksha Nagaraj 1d0703b21e SWDEV-382125: Adding a description when counter is not supported on a hardware
Change-Id: Ic835f59029aa1a95d32b80bf79375978e8ea9635
2023-03-09 13:20:37 +00:00
gobhardw 03c305dbd4 Making ATT work with Profilerv2
Change-Id: Ic9334aa80e40faaaf5c1a79ba37dbe52e8d31253
2023-03-09 13:20:35 +00:00
Ammar ELWazir 8032adb64f Adding rocprofilerv2
Change-Id: Ic0cc280ba207d2b8f6ccae1cd4ac3184152fc1ad
2023-03-09 13:20:33 +00:00
Kiumars Sabeti b53fd84ade SWDEV-302380: [ROCm QA][Mainline][Navi21] 6 tests are failing in rocprofiler-stg2
This is an attempt to support basic and derived counters for navi21.  This code will not work correctly unless we add navi counters to metrics.xml and gfx_metrics.xml

Change-Id: Ied06a81345a6fbb02fa0fde1889d94bbe64e9a03
2022-08-05 17:31:37 -04:00
Ranjith Ramakrishnan e7eb195924 SWDEV-345870 - Correct include paths for new directory layout
Use hsa header files from /opt/rocm-ver/include rather than using wrapper files from /opt/rocm-ver/hsa/include/hsa

Change-Id: Id7a9bde19447cd2a0fd6e03b11c08471f09c2a46
2022-07-14 16:08:41 -07:00
Mark Laws a11ac0a632 SWDEV-283957 : Emit correct group name for rocprof split metrics
Change-Id: Id096edd03bb5be9c8082296fdb659845f2b9c7a6
2022-03-01 11:16:00 -06: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 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
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
Chun Yang 55fdd451f3 Change obj_map_ from pointer to object
Change-Id: Ibc2fb8812c34b44d7b59275f2850bb127b9def7c
2021-07-28 11:52:44 -07: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
Chun Yang 6da2b19562 SWDEV-283942 : Fixed false error report from rocprofiler
Change-Id: Ifc6eb0cb26f60a5596e1b626a578135ae9080f26
2021-05-17 14:16:50 -07:00
Rachida Kebichi a2d89f22a7 Fixed order of code obj and symbols processing
Change-Id: Icb3341e54f3e0c7cf3da06811712f001e213d83d
2021-04-22 20:27:26 -04:00
Evgeny c4828a9de0 concurrent: enable PmcStopper to end perf counting.
Change-Id: I89785277678141e29349e162df10203787050643
2021-04-09 08:06:42 +00:00
Evgeny e2c9d13e5b SWDEV-274821 SPM initialization fix
Change-Id: I5e27928a60083eff328bab3e79937ce11bce11bd
2021-03-22 09:18:36 +00:00
Evgeny fb82ddee81 adding GPU command functions module
Change-Id: Id2c2d82ea6fee42695309ad3bb296effa77a2f33
2021-02-03 04:45:59 -05:00
Evgeny 96ff7582ce porting of AQL packet submit to new atomic HSA queue API
Change-Id: I654448a7a8627978395d426118a5cb3ba2a92058
2020-10-12 09:26:27 -05:00
Evgeny 97caab40da SWDEV-255459 : to get rid of c++ libatomic
Change-Id: I311db0e456dd6e6c87692898640574dc8f669086
2020-10-09 07:39:43 -04:00
Evgeny 169e36f379 SWDEV-252747 : testing using v3 object
Change-Id: I427df765d1be55bd2851ce441238b3eaa46cca4f
2020-10-09 06:38:46 -04:00
Evgeny 0d164ba672 enable contexts wait
Change-Id: Ie2adf04662fddc8051fb5418904c9c659e264d78
2020-09-21 21:06:03 -04:00
Evgeny 8850e46071 kernel objects dumping
Change-Id: I5a16e05b7df438efa903948701b65a9ced99e5f3

initial codeobj event implementation

Change-Id: Ia7fac3c2b9897a004cfe88c4de82ba8c18284196

update - codeobj event implementation

Change-Id: I2b91b6e689875af03f0086f5a0872a97a629fd83

update2 - codeobj event implementation

Change-Id: Icff75f14fd21963e40db95373fa74880957a9e32

fix - codeobj event implementation

Change-Id: I76c33c875cb429fb12a974bb408b217f187b4536

URI buffer fix - codeobj event implementation

Change-Id: I7ce1a758e021455da3fe5b8a6e4ae3ab46e9760e

HSA events exposing

Change-Id: I3664ab4e5111c4ccedaf068dcb19f48055f0ef9b

HSA events data struct normalizing

Change-Id: I365ef0db45e0a9314bd2a1a4d29dd4eb4e91297d
2020-09-11 10:01:54 -05:00
Xianwei Zhang b445610cd1 concurrent: enable/fix the related settings
Concurrent profiling relies on the aqlprofile read_api
and tracker. This patch set those options to enable
the concurrent profiling.

Change-Id: Ib97d4d8facfbc11f2684d83109397cd13f117d5e
2020-08-26 16:04:57 -04:00
Xianwei Zhang e26210d9d9 concurrent: improve concurrent profiling
This patch adds barrier packets, together with extra signals,
to enforce the completion order of read packets w.r.t dispatch.
And, PmcStopper is added to stop the profiling finally.

Change-Id: I8e8d3a41d86e42be1d9e5afd44c247be876cf1a5
2020-08-05 18:20:14 -04:00
Evgeny 80747de208 optimization mechanism fix: correct tracker handler; kernel name query on completion;
Change-Id: I14da152b4ac3c7d8fd1af2f54e9d71f834071622
2020-08-03 23:34:49 -05:00
Evgeny 8bb860f841 return value fix
Change-Id: Id23dc2cf7f25efbf778a853403e43dd1176d5e33
2020-07-21 01:00:41 -05:00
Xianwei Zhang 61c9df4631 pmc: add support of concurrent kernel profiling
The profiling was only enabled in serial mode, i.e., kernels
are serialized in execution, and counters are reset at each
kernel start and read at kernel completion. This patch adds
the concurrent mode, by issuing the process-level start
packet to reset counters, and then reading twice at kernel
start and end time to obtain the counter value difference.
The new concurrent profiling usage needs the integration
with the corresponding augment at aqlprofile side.

Change-Id: I94b4442eadc8c64b8fba51b1e4916fc8b895ad21
2020-07-16 14:39:46 -05:00
Evgeny 2a7f77b290 counters dumping optimization
Change-Id: I8c694e5380e15179453148dd9ab3a3e51b6db861
2020-07-15 09:57:41 -05:00
Evgeny 9f7e936d70 concurrent sqtt support
Change-Id: I91391fafabc93aefa5d244d870ef82b96a59dc52
2020-06-23 20:00:49 -04:00
Evgeny 30db99e758 setting code-obj tracking by default
Change-Id: Id6a97a7dc77faa3b7eb0e2b81b75c13ca7fc5818
2020-05-28 03:43:12 -05:00
Evgeny Shcherbakov 48c8076e9c Merge "clang10 proting" into amd-master 2020-05-12 22:57:32 -04:00
Evgeny 04aea8c3df clang10 proting
Change-Id: I071833f9d1f46df105f7ef1749c5d17d989bbb05
2020-05-12 18:26:47 -05:00
Evgeny 9950b97567 disabling destruction
Change-Id: I2a7d05a8f597b3bc8bd07bffe7181f9dcace1cbf
2020-05-07 03:34:30 -05:00
Evgeny 3af87a7423 adding pid for kernel results to support multi-process profiling
Change-Id: I283228a4b4145599c5e637dd6faa771b9f4b6345
2020-05-05 05:35:32 -05:00
Evgeny 3ce98d33d4 get_time API: make public; extende with more time id: coarse and raw; added time error return value;
Change-Id: I1641eb2c38915222204617e07fc0bfb388bb8346
2020-04-30 02:38:18 -05:00
Evgeny fe70682184 toll destruction fix
Change-Id: If069c820526e21a0a4b80ac516f9669a81f34cab
2020-04-28 03:16:15 -05:00