rocm-5.6.0
Changelog for ROCprofiler v5.6.0
Full documentation for ROCprofiler is available at
docs.amd.com
As of ROCm 5.5, the ROCm Profiler will not use terminologies like rocmtools
or
rocsight
to describe rocrofiler
as was done in ROCm 5.4. To identify the
separation of the two versions of rocprofiler
, the terms rocprofilerV1
and
rocprofilerV2
will be used. The rocprofilerV2
API is currently considered a
beta release and subject to changes in future releases.
ROCprofiler for rocm 5.4.4
In ROCm 5.4 the naming of the ROCm Profiler related files is:
ROCm 5.4 | rocprofilerv1 | rocmtools |
---|---|---|
Tool script | bin/rocprof |
bin/rocsight |
API include | include/rocprofiler/rocprofiler.h |
include/rocmtools/rocmtools.h |
API library | lib/librocprofiler64.so.1 |
lib/librocmtools.so.1 |
The ROCm Profiler Tool that uses rocprofilerV1
can be invoked using the
following command:
$ rocprof …
To write a custom tool based on the rocprofilerV1
API do the following:
main.c:
#include <rocprofiler/rocprofiler.h> // Use the rocprofilerV1 API
int main() {
// Use the rocprofilerV1 API
return 0;
}
This can be built in the following manner:
$ gcc main.c -I/opt/rocm-5.4.4/include -L/opt/rocm-5.4.4/lib -lrocprofiler64
The resulting a.out
will depend on
/opt/rocm-5.4.4/lib/librocprofiler64.so.1
.
The ROCm Profiler that uses rocprofilerV2
API can be invoked using the
following command:
$ rocsight …
To write a custom tool based on the rocmtools
API do the following:
main.c:
#include <rocmtools/rocmtools.h> // Use the rocmtools API
int main() {
// Use the rocmtools API
return 0;
}
This can be built in the following manner:
$ gcc main.c -I/opt/rocm-5.4.4/include -L/opt/rocm-5.4.4/lib -lrocmtools
The resulting a.out
will depend on /opt/rocm-5.4.4/lib/librocmtools.so.1
.
ROCprofiler for rocm 5.5.0
In ROCm 5.5 the rocprofilerv1
and rocprofilerv2
include and library files
are merged into single files. The rocmtools
available in ROCm 5.4 is also
available in ROCm 5.5 but is deprecated and will be removed in a future release.
ROCm 5.5 | rocprofilerv1 | rocprofilerv2 | rocmtools (deprecated) |
---|---|---|---|
Tool script | bin/rocprof |
bin/rocprofv2 |
bin/rocsight |
API include | include/rocprofiler/rocprofiler.h |
include/rocprofiler/rocprofiler.h |
include/rocmtools/rocmtools.h |
API library | lib/librocprofiler64.so.1 |
lib/librocprofiler64.so.1 |
lib/librocmtools.so.1 |
The ROCm Profiler Tool that uses rocprofilerV1
can be invoked using the
following command:
$ rocprof …
To write a custom tool based on the rocprofilerV1
API it is necessary to
define the macro ROCPROFILER_V1
:
main.c:
#define ROCPROFILER_V1
#include <rocprofiler/rocprofiler.h>
int main() {
// Use the rocprofilerV1 API
return 0;
}
This can be built in the following manner:
$ gcc main.c -I/opt/rocm-5.5.0/include -L/opt/rocm-5.5.0/lib -lrocprofiler64
The resulting a.out
will depend on
/opt/rocm-5.5.0/lib/librocprofiler64.so.1
.
The ROCm Profiler that uses rocprofilerV2
API can be invoked using the
following command:
$ rocprofv2 …
To write a custom tool based on the rocprofilerV2
API do the following:
main.c:
#include <rocprofiler/rocprofiler.h>
int main() {
// Use the rocprofilerV2 API
return 0;
}
This can be built in the following manner:
$ gcc main.c -I/opt/rocm-5.5.0/include -L/opt/rocm-5.5.0/lib -lrocprofiler64
The resulting a.out
will depend on
/opt/rocm-5.5.0/lib/librocprofiler64.so.1
.
ROCprofiler for rocm 5.6.0
In ROCm 5.6 the rocprofilerv1
and rocprofilerv2
include and library files of
ROCm 5.5 are split into separate files. The rocmtools
files that were
deprecated in ROCm 5.5 have been removed.
ROCm 5.6 | rocprofilerv1 | rocprofilerv2 |
---|---|---|
Tool script | bin/rocprof |
bin/rocprofv2 |
API include | include/rocprofiler/rocprofiler.h |
include/rocprofiler/v2/rocprofiler.h |
API library | lib/librocprofiler.so.1 |
lib/librocprofiler.so.2 |
The ROCm Profiler Tool that uses rocprofilerV1
can be invoked using the
following command:
$ rocprof …
To write a custom tool based on the rocprofilerV1
API do the following:
main.c:
#include <rocprofiler/rocprofiler.h> // Use the rocprofilerV1 API
int main() {
// Use the rocprofilerV1 API
return 0;
}
This can be built in the following manner:
$ gcc main.c -I/opt/rocm-5.6.0/include -L/opt/rocm-5.6.0/lib -lrocprofiler64
The resulting a.out
will depend on
/opt/rocm-5.6.0/lib/librocprofiler64.so.1
.
The ROCm Profiler that uses rocprofilerV2
API can be invoked using the
following command:
$ rocprofv2 …
To write a custom tool based on the rocprofilerV2
API do the following:
main.c:
#include <rocprofiler/v2/rocprofiler.h> // Use the rocprofilerV2 API
int main() {
// Use the rocprofilerV2 API
return 0;
}
This can be built in the following manner:
$ gcc main.c -I/opt/rocm-5.6.0/include -L/opt/rocm-5.6.0/lib -lrocprofiler64-v2
The resulting a.out
will depend on
/opt/rocm-5.6.0/lib/librocprofiler64.so.2
.
Optimized
- Improved Test Suite
Added
- 'end_time' need to be disabled in roctx_trace.txt
Fixed
- rocprof in ROcm/5.4.0 gpu selector broken.
- rocprof in ROCm/5.4.1 fails to generate kernel info.
- rocprof clobbers LD_PRELOAD.