Dont track the status of fence_dirty_ flag on the host, instead clear it
when we submit a barrier on the respective stream.
Change-Id: I4d98dbf20c81379c9c5da9f5b67629a8f9f6dfcd
- Add API table versioning defines to hip_api_trace.hpp
- Add rocprofiler-register implementation in hip_api_trace.cpp
- created ToolInit implementation
- moved some local functions into anonymous namespace
- renamed some function to be overloads
- made most of the initialization code templated (reduced code duplication)
- enforce ABI
- Updated hipamd/src/CMakeLists.txt
- find rocprofiler-register package (enabled by default but not required)
- Address review comments
- simplify size calculation for dispatch table
- remove setting .size field in GetDispatchTableImpl
- Fix windows build
- Do not enforce ABI on Windows
Change-Id: I08766e8a083528a1236996274bf4522e0e8a1b9f
The following builtins from the CUDA spec are implemented:
- __all_sync, __any_sync, __ballot_sync and __activemask
- __match_any_sync and __match_all_sync
- __shfl_sync, __shfl_up_sync, __shfl_down_sync, and __shfl_xor_sync
The following builtins are NOT implemented, pending support in the compiler:
- __reduce_add_sync, __reduce_min_sync, __reduce_max_sync
- __reduce_and_sync, __reduce_or_sync, __reduce_xor_sync
Change-Id: I07dedbbfe5449f4b5c9b040bed59f5603ccec8c3
- Use isFenceDirty() check in hipStreamQuery.
In case if there is a stopEvent for hipExtLaunch* API we avoid system
scope if there are consecutive hipExtLaunch* and replace them with agent
scope, but then if one uses hipStreamQuery it should detect we need a
barrier with system scope.
Change-Id: I539810f659d4e1c49104e3a0da6ff2803c6b3dee
hipIpcOpenMemHandle can be used to open memory handle and fetch
a device pointer on a different device than the actual device
where the memory was allocated. The device Id must be set to
the current device in such cases and not the original device.
Change-Id: Ie1c7eada928d02124a41125876876f96015552e5
Runtime has to release extra memory, held by the pools,
in synchronization points for event, stream or device.
Change-Id: Id533a5e1d137812aa72bdfe101b4b333c6a43d66
When an offset is applied to the source or destination pointers plus the kind is set to
hipMemcpyDefault and the source or destination is allocated with hipMallocManaged
hipMemCpy2D erroneously fails with hipErrorInvalidValue.
Change-Id: I0db4c17514f743652d8f9a2691da6601a2abb2a1
Fix sporatic segment fault in texture test
via retaining image in texture object which
references the image.
The image will be released when the texture
object is destroyed.
Change-Id: Ic3fefa2d5dda6afebd1acd4d41ad310b138af6dd
It cannot be moved to amd_device_functions.h because that causes circular
dependences when trying to use the macro in other files. So we create a new
header and move all assert/abort macros to that common header.
As a side-effect, also fix the macro to correctly expand the entire condition
argument, and also consume the trailing semicolon.
Change-Id: I43688c8e61183503a3a1a039b91321a3779152af
Separating -mllvm from its option can cause, in rare circumstances,
the option to be dropped. Or the mllvm to be dropped. Either of which
can cause a compilation error. This issue was exposed investigating
SWDEV-435276
Change-Id: Ie665d49183b55a57c9b58619cad525e44f3be8a5
If uuid is copied via strncpy it will stop at first null character. We
need to copy all 16 bytes which might have a null on windows.
Change-Id: I8667919cb251133eec3333a23768c356879727e8
Add clang pragma push and pop diagnostics for ignoring "-Weverything"
in the hiprtc builtins header. Otherwise this will ignore even the
geniune errors occurring in the hiprtc kernels.
Change-Id: I8c3dacf902732b2ea495d83e797369f8aebd75d6
- Allow capture to be less rectrictive if we set the global thread
interaction mode for the thread.
Change-Id: I84f65d9418ac26ada0477c85a45a3831c2351ce4