Remove the activity_prof::CallbacksTable. The table was redundant with
the information already stored in the roctracer library. Instead use a
single callback into the roctracer library to query whether the activity
is enabled, and to report it.
Change-Id: I2e05b0881bb4a1953c14361d00ea310d02eb6e0c
[ROCm/clr commit: 52eb28930a]
Profiling should be enabled for any command reporting activities as the
activity record captures the profilingInfo's start and end timestamps.
Since IS_PROFILER_ON is only used to determine whether API tracing is
enabled, there is no need to expose it globally, it should be a property
of the activity_prof::CallbacksTable.
Change-Id: I44a0d19ed2862606cfbc9a98c1a07a336ab7e26c
[ROCm/clr commit: e713b5c7d0]
The activity_ is only instantiated if profiling is enabled.
Remove the HIP private global record ID. Instead, use the correlation ID
stored in the hip_api_data_t by the profiler while the last HIP function
is in scope.
For NDRange and Copy commands, store the kernel name and byte size
(respectively) in the record.
General cleanups to improve the code's readability.
Change-Id: I01907484b0d9611eb9440c3a7c4865479dc42289
[ROCm/clr commit: 4fbae91468]
Remove the api_callbacks_table_t that was holding the API activities and
user callbacks. Instead use a single roctracer callback (TracerCallback)
used to report both API activities and callbacks.
Remove the hipInitActivityCallback that was setting the ROCtracer
callback and memory pool for asynchronous activities as it did not
allow disctinct pools to be used for each activity. Instead, use
hipRegisterTracerCallback to set the single roctracer callback.
Change-Id: I4c10f04f29a6e4cce8caf15db3016c3f72c86b04
[ROCm/clr commit: 82bce811ee]
The CallbacksTable::is_enabled() can simply be implemented by checking
if enabled_api_count is > 0. The ROCclr does not use IS_PROFILER_ON
to report asynchronous activities.
Change-Id: Iab3d034357e51282bf2c453b2ac5c9726786b9eb
[ROCm/clr commit: eeddffc1b1]
Since the hip_api_data and record are only needed at the HIP function's
scope, there is no need to allocate/free them in the ROCtracer activity
callback, they can reside on the HIP function's stack frame.
This solves an issue with the thread local stacks of records the tracer
maintains that are destroyed first (before any global destructor) on
process exit, making it impossible to use HIP functions in global
destructors when the profiler is enabled.
Change-Id: Ib1d70124d009a44dc1f08d41edff95e5f9f84369
[ROCm/clr commit: 85fd969253]
While upgrading packaging in SLES/RHEL, the package to be upgraded is installed first, followed by cleanup of the older one
During upgrade 10-rocm-opencl.conf and icd file is getting removed as part of clean up, since the file name and path is same in different package versions.
Limit the removal of opencl conf file to uninstall/removal of package and not during upgrade.
Used unique name for icd file
Change-Id: Ib34a78ce53e6b7d95adb70ccfd56474a297b64ca
[ROCm/clr commit: 3d350393d8]
- In case of HMM, use blit kernel instead of CPU memcpy for hipMemset
Change-Id: I89bfc96ff01a2375ed8df1b1c6bc05357dea84f7
[ROCm/clr commit: f097cda948]
The fix for SWDEV-329789 moved down the last use of the a
command object pointer in order to prevent a race condition.
However, the previous patch did not move down the release of
that command. By releasing the command early, another thread
could get a command with the same pointer. That second thread
could later submit work to the queue using that new command.
The first thread could then perform a comparison against the
queue's last command using its own now-stale pointer. This
could eventually allow the second thread to skip synchornizing
on the queue. This would result in host synchronizations
completing before their device work was actually complete.
Change-Id: I292b7b369743251ceafe453a4c5cae14a6d01046
[ROCm/clr commit: 6b956f7627]
Using wrapper header file will generate warning message during build time.
Updated the message content to make it more meaningful
Change-Id: I4e0c5e3d845946d9b493d98879ea8e75a92506ee
[ROCm/clr commit: c833a19284]
assert statement were hit silently in Release builds like SWDEV-353548.
Issue only seen in Debug builds
Change-Id: I9f7177806c854d64fcf986e9f6092076d8a05f23
[ROCm/clr commit: 040c416cb1]
HIP_FORCE_QUEUE_PROFILING has been replaced by GPU_FORCE_QUEUE_PROFILING.
Change-Id: Ic32ecdf829a2725ace84e76abab8a81c8790e13f
[ROCm/clr commit: dd49cf0fa0]