Commit graph

78 Commits

Autor SHA1 Nachricht Datum
Laurent Morichetti 87ffbd27f4 Fix hsa_support::timestamp_ns if HSA is not yet initialized
Default to the HSA runtime's hsa_system_get_info if the saved HSA
functions table is not yet initialized.

Change-Id: I3659095a5ad662f7ca8b0d92bd035901c6d66bb0
2022-09-08 21:02:31 -07:00
Laurent Morichetti c2b87b1fd7 Bring the HSA_EVT callbacks back to the roctracer
Change-Id: I26080b264d7989880ba7e9f00502cc680b2256d7
2022-09-06 19:38:12 -07:00
Laurent Morichetti 340c7cb553 SWDEV-351980 - Use the new hipRegister/RemoveAsyncActivityCallback
Remove the hipInitActivityCallback and use the new hipRegister/
RemoveActivityCallback which allows distinct memory pools to be used
for HIP_OPS activities.

Enable the multi_pool_activities test.

Change-Id: I6f6feaedecc9c36285bea975caf24dbf8f5f624b
2022-09-06 19:11:11 -07:00
Laurent Morichetti 88c6e0a700 SWDEV-351980 - Don't allocate hip_api_data and record
The HIP runtime is now allocating the hip_api_data and record on its
stack so we don't need the thread local record_data_pair stack anymore.

Refactor the API callback function to handle both the case where
synchronous user callbacks are requested and the case where asynchronous
records are requested (enable_callback & enable_activity respectively).
If the callback argument (memory pool) is not null, then activity
records are requested.

Remove CorrelationIdRegister and CorrelationIdLookup. These were used
by the HIP runtime to associate a HIP record id to a ROCtracer
correlation id. Instead, the HIP runtime is now using the correlation
ID returned in the hip_api_data_t.

Added a test to check enabling/disabling concurrent callbacks and
activities.

Change-Id: I5850cfead9861eb3602a3e8fcb7b22580d5fc979
2022-09-06 19:11:11 -07:00
Ammar ELWazir c2ecd15197 Temporary: Disabling Roctracer test package
When separate debug info is requested, the test package
generation fails because /usr/bin/objcopy does not understand
the HSA code object format. We need a workaround to get
past this issue.

Change-Id: I9a307fcf532ce8219a9301850aae972303d19990
2022-07-15 09:33:08 -07:00
Laurent Morichetti 3adc56bd9b Add the roctracer-tests package
The roctracer-tests package contains all the roctracer test binaries
and scripts needed to run the testsuite outside of the build directory.

Change-Id: Id11f862fb4bdb2425d68f455074172c38814ec92
2022-07-05 17:03:21 -04:00
Ammar ELWazir 7cbee920b7 Enabling ROCP_STATS_OPT
Enabling the new methodology of ROCP_STATS_OPT of getting HIP activities while the application is running

Change-Id: I94b3311b0740db804643dba0e4f77c1f9de0319b
2022-06-21 14:58:28 -05:00
Ranjith Ramakrishnan 0fa2808779 SWDEV-295886 - Replaced hard coded path /opt/rocm with ROCM_PATH
HIP cmake module path set to actual cmake file location

Change-Id: I7a3e6eec2b51d0e550e68496eecf268a01a2d015
2022-06-16 00:11:35 -07:00
Laurent Morichetti 836bab37d3 Remove EvtStats from the tracer_tool
The same information can be generated from the hcc_ops_trace.txt file,
so in a later commit, will add a stage to the tblextr.py script to
generate the .csv files when ROCP_STATS_OPT=1.

Change-Id: I3d1575e096bedf98c66068d9a4ca141421e5bb9d
2022-06-09 15:20:14 -07:00
Laurent Morichetti ef3b2a8aa8 Add a data region to the memory pool
Some records may need to point to data with the same lifetime as the
records themselves. One solution is to store the data at the end of
the memory pool buffer. Records in the buffer grow up, and the data
grows down. When the buffer is flushed both records and data are
recycled.

Change-Id: I278fa84478236bf895f7c2d152d47d4256987392
2022-06-08 18:34:23 -04:00
Laurent Morichetti bdfa9fb9f7 Fix HIP cmake shared library linker flags
Change-Id: I026cc7a6bcf607e3f49c5ff76bc399cf2d8c8f0c
2022-06-01 18:36:59 -04:00
Tony Tye b63427d694 Disable CMAKE_HIP_ARCHITECTURES
Prevents cmake errors for the HIP targets such as:

  HIP_ARCHITECTURES is empty for target "MatrixTranspose".

Change-Id: I352916f6dccd22576e8b1482a41e2099b6d8a8d9
2022-06-01 11:17:58 -04:00
Laurent Morichetti e9b3b7c9a0 Remove the tracer tool's constructor and destructor functions
Change-Id: I12d88af726074fb15f8159580c85c12888f72172
2022-05-24 21:50:47 -07:00
Laurent Morichetti 8ee9d859ed Remove internal functions from the ROCtracer API
The roctracer_load, roctracer_unload, and roctrace_flush_buf functions
are not part of the ROCtracer API, and should not be exposed in the API
header file, but keep the functions in the library for backward
compatibility.

Add src/roctracer/backward_compat.cpp to implement retired functions.

Add test/app/backward_compat_test.cpp to test that the retired functions
are still accessible in the latest roctracer library.

Change-Id: I4c94310a7bfccfeae9384dac5db18fc79b4c5b17
2022-05-24 15:52:29 -07:00
Laurent Morichetti 1e7783af58 Add a ROCTX test
Change-Id: I90dab2f349ade6cbfc86f0399c8b9ca905de23b3
2022-05-23 23:10:26 -04:00
Laurent Morichetti 7ebae10571 Document the ROCTX API
Change-Id: I63a04139d1640ea5d52f6143cf2e9bfc0614a894
2022-05-23 23:10:02 -04:00
Laurent Morichetti 13fe79ab09 Fix CMakeLists.txt conventions
Fix indentation, quoting, and white spaces.

Change-Id: I5e5e95b961e83e5957bdd137ef9893615396bb53
2022-05-20 12:31:25 -07:00
Laurent Morichetti c66fc25741 Replace the HSA standalone test
Change-Id: I89e6826eef412890185ec600cd806c7b516e62a9
2022-05-20 10:36:38 -07:00
Laurent Morichetti b34e9c2ee4 File reorganization
Move the tracer_tool from the 'test' directory to the 'src' directory.

Change-Id: I13768b9610cd359f78a66147f0255ab1e4c657e9
2022-05-20 10:36:38 -07:00
Laurent Morichetti 0377c5a191 Add symbol versioning
Add symbol versioning to the roctracer64 and roctx64 library, and only
expose the OnLoad and OnUnload tracer_tool symbols.

Change-Id: I7f160fc3e568567fd1146ff5b9c0aef3bdcccf53
2022-05-20 10:36:38 -07:00
Laurent Morichetti d42d7e7543 Enable the trace buffer directed test
Change-Id: Icddecf488f99c99434c7c690a9cb47d2d0ccbee6
2022-05-20 10:36:38 -07:00
Laurent Morichetti 3773384af8 CMakeLists.txt cleanup
Add custom_commands to generate the HSA code objects
Remove the configure time file generation and add custom commands to
generate them at build time.

Change-Id: I167dd9befc6c73f32224935eaab74510922b26f4
2022-05-20 10:36:38 -07:00
Laurent Morichetti 2b3dc8f20b Remove CMAKE_VERBOSE_MAKEFILE
This should be enabled at the command line during the cmake configure
step (-DCMAKE_VERBOSE_MAKEFILE=True).

Verbose output can also be enabled during the build by setting the
VERBOSE=1 GNU make variable, or using the -v Ninja option.

Change-Id: Ie842c900c83c8f9f1c3ab4119e3bbc7931d371f5
2022-05-18 16:13:14 -07:00
Ammar ELWazir 2f5313a0c7 Fixing cmake_modules
Removing unused definitions and compile options
Using cmake variables to set the options needed
Changing the visibility to make it specific for the targets

Change-Id: I80cf0997cd28897d5a06a58c7225ba40dfc51e2d
2022-05-11 19:25:43 -04:00
Laurent Morichetti 046df32729 Fix race conditions in TraceBuffer
1) The Entry's state was published after making the record avaiable,
   so a thread flushing the records could see an unitialized record.
2) data_ and write_pointer_ could become out of sync. write_pointer_
   could be indexing into another buffer than what data_ was pointing
   to.
3) GetEntry could get a nullptr free_buffer_ because multiple threads
   could acquire the work_mutex_ before the work_thread_ could wake up,
   or between allocate_worker's loop iterations.

Change-Id: I6f0a015557888eeeaa75a8bce7fde8de276d11dd
2022-05-03 21:56:46 -04:00
Laurent Morichetti 06a3da7c63 Fix copyright headers
Change-Id: I380d867fa5fb04e68b5b332e9abf33fbeb1e9418
2022-04-19 09:30:45 -07:00
Ammar ELWazir 7ee4f87b73 SWDEV-307394: Fixing Download HSA-Class Issue
Exchanging the git clone of the hsa-class to a local downloaded version pushed to the roctracer repo

Change-Id: Id45a38b2d355102c2e0dee1e4bfde50398369047
2022-03-29 22:27:25 +00:00
Ranjith Ramakrishnan bc19ae71eb File reorganization with backward compatibility
Package installed /opt/rocm
Soft links and wrapper header files installed /opt/rocm/roctracer for backward compatibility
tracer_tool library renamed to roctracer_tool and installed in /opt/rocm/lib/roctracer

Change-Id: Ica7518c5ef2e591715121cbc942b69dff29233d3
2022-03-04 04:03:51 -08:00
Ranjith Ramakrishnan ebda880c4a SWDEV-291455: Prefer rocm include path to hip include path
Change-Id: I1fa96e72169fac689a3a2ed38e988d7f5d18bf04
2022-02-14 14:21:32 -08:00
Icarus Sparry 8ea268b3f4 Forcibly disable parallelism
The manually written Makefiles in the test directory are not safe to
use by more than one job. For example we see things like
	all: clean $(EXECUTABLE)
which says that the 'all' target depends on the 'clean' and
'$(EXECUTABLE)' targets. If make is invoked with -j2 then the clean
and '${EXECUTABLE}' can be built in parallel, so the clean can delete
things whilst they are being built!

Change-Id: I9c56db4c629081b8d812dad45dfd4afde10e481f
Signed-off-by: Icarus Sparry <icarus.sparry@amd.com>
2021-10-31 15:19:36 -07:00
Ammar ELWazir 99e2f37c81 SWDEV-298155: Fixing HSA-CLASS REV
Adding the latest commit to pull from the hsa-class git repo that includes the fix for SWDEV-298155
"Fixing the typo in evt_stats.h" https://github.com/ROCmSoftwarePlatform/hsa-class/commit/e6456a6d93cc6d8bcc59bd6ea24f27146f86ff4c

Change-Id: I9984de8ec9204a6cf47a25ce4ac42852473c56c9
2021-09-29 12:27:15 -04:00
Freddy Paul 1cc934204f roctracer:All libraries need to be installed with LIBRARY TAG
Cmake will do the post processing required for RPATH or any other
needed for the libraries only if installed as libraries not as
regular files

FIX: SWDEV-287893
Change-Id: I9cf478fcd23b9f2e8b3bdd81aa566cad3ec2a5e3
2021-05-26 12:15:25 -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
Kent Russell 5c9329aec8 roctracer: Support static thunk
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: I5de63e0a56a8946132ccbb7140a19a82a70b951d
2021-04-27 12:56:56 -04:00
Evgeny 4baffc8e53 SWDEV-264282 : fixing tracer_tool linking
Change-Id: I0fd78c01595bbd506f42cf9dfb45f62b2124f704
2020-12-09 22:18:22 -05:00
Evgeny 7d8fd0606d Adding dumping of HSA handles
Change-Id: I18e2cfdf2574110bffa09d30c7ac1d3941252939
2020-12-01 16:45:33 -05: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 bada601e64 testing using v3 object
Change-Id: Ifca31d632726ab83f4c672b46cd9b97f817e757d
2020-09-16 20:34:42 -04:00
Evgeny ed1f1b66ac build normalizing - generating under build directory
Change-Id: Id9203aec7800024bd749059a415fb29b8051005a
2020-09-07 15:24:58 -05:00
Evgeny ddcb68d0a8 optimized tool stats
Change-Id: Ia9c06879f6e2e195e589c53299c2cafe96a4bfe5
2020-08-20 15:11:21 -05:00
Aaron Enye Shi ee3ed37335 Update to use new bitcode library structure
Also, continue support for old bitcode library layout
for backwards compatibility.
Requires PR: https://github.com/ROCmSoftwarePlatform/hsa-class/pull/3

Change-Id: I55b4fdb4c11442a4920eb721d178861b18912417
2020-07-14 15:34:43 -04:00
Evgeny d1ad7a56e1 tests standalone build
Change-Id: I556cbc48c169764beaf9e50684edfb0e9075074c
2020-06-15 23:49:58 -05:00
Evgeny d2135ad2c8 CI run script version
Change-Id: I0e806854eb7db12656f7f1770642f20247fa6734
2020-06-04 17:31:18 -05:00
Evgeny 1e7650074a fixin build: check script residing in build area
Change-Id: I1a3d794b24c7506d5e24c341c61fe45b31238002
2020-05-29 16:09:13 -05:00
Evgeny 7c5cfafa30 fising mytest environment
Change-Id: Ic48c95e711758c3e448c317bc78c1bceeb22362c
2020-05-20 00:44:58 -05:00
Evgeny c956bb9c6b fix hsa_path
Change-Id: I07c6a504ec1892f314fcbb207656baaf0e356864
2020-05-19 17:20:25 -05:00
Evgeny 173c83c6d4 fixing rocm root
Change-Id: I79ff754775565d4500254e4566b8c994c237ba34
2020-05-18 22:35:30 -05:00
Evgeny 074306d997 SWDEV-236864 : packaging of generated headers
Change-Id: Ifda69eecf3697f6b69c978b3c4c2ffe9835edeb8
2020-05-18 18:08:06 -05:00
Evgeny 3b62c5c6b9 roctracer test with disabled hip api activity
Change-Id: I6d2139a67810cafb9ccb94bf57f55e85e1ab0982
2020-05-06 00:02:24 -05:00
Evgeny d46e357aba changing hsa class rev
Change-Id: Ibd86f519c71edaca60fdc4f9cb7d9a230f5f3c6e
2020-04-20 14:32:28 -05:00