Remove thread_data_init. The C++ standard guarantees that the thread
local variable is initialized before its first odr-use and destructed
when the thread exits. Use a global initializer to set the reference
from the message stack instance in the map.
Remove roctracer_error_string. This does not belong to this library.
ROCTX does not expose errors to the application. The only functions
returning errors are returning -1 (Push/Pop).
Remove memory leaks due to strdup on the ranges messages. The memory
for the messages is guaranteed to be valid for the duration of the
callback, and it is the application's responsibility to strdup the
strings if it needs to extend the message's lifetime.
Add a lock to the RegisterApiCallback implementation. Iterating the
message stack map must be synchronized as a new thread could be adding
a new value to the map.
Change-Id: Iaf5b07ebc9efe4061cb01327d4c7034888727816
[ROCm/roctracer commit: 713db1fce5]
ROC-tracer
-
ROC-tracer library: Runtimes Generic Callback/Activity APIs
The goal of the implementation is to provide a generic independent from specific runtime profiler to trace API and asynchronous activity.
The API provides functionality for registering the runtimes API callbacks and asynchronous activity records pool support.
-
ROC-TX library: Code Annotation Events API
Includes API for:
roctxMarkroctxRangePushroctxRangePop
Usage
rocTracer API
To use the rocTracer API you need the API header and to link your application with roctracer .so library:
-
/opt/rocm/roctracer/include/roctracer.hAPI header.
-
/opt/rocm/lib/libroctracer64.so.so library.
rocTX API
To use the rocTX API you need the API header and to link your application with roctx .so library:
-
/opt/rocm/roctracer/include/roctx.hAPI header.
-
/opt/rocm/lib/libroctx64.so.so library.
Library source tree
-
docDocumentation.
-
incInclude header files.
-
roctracer.hrocTacerlibrary public API header. -
roctx.hrocTXlibrary public API header.
-
-
srcLibrary sources.
-
corerocTracerlibrary API sources. -
roctxrocTXlibrary API sources. -
utilLibrary utils sources.
-
-
testTest suit.
-
MatrixTransposeTest based on HIP MatrixTranspose sample.
-
Documentation
- API description:
- Code examples:
Build and run tests
-
ROCm is required
-
Python modules requirements:
CppHeaderParser,argparse.To install:
pip3 install CppHeaderParser argparse -
Clone development branch of
roctracer:git clone -b amd-master https://github.com/ROCm-Developer-Tools/roctracer -
To build
roctracerlibrary:cd <your path>/roctracer mkdir build && cd build cmake -DCMAKE_PREFIX_PATH=/opt/rocm -DCMAKE_INSTALL_PREFIX=/opt/rocm .. make -
To build and run test:
make mytest run.sh
Installation
Install by:
make install
or:
make package && dpkg -i *.deb