- hipDeviceGet/SetGraphMemAttr
- hipDeviceGraphMemTrim
- there is no memory pool for graphs currently
Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: I11db76ea7ea1c7732175fc93264448052357e8dc
Update HIP's unsafeAtomicAdd to:
- Compile properly even when not compiling for gfx90a
- Fall back to safe atomic add on non-gfx90a architectures
- use flat atomic add for FP64 on gfx90a, instead of dynamically
checking memory spaces.
In addition, when the compiler is passed -munsafe-fp-atomics, it
will define __AMDGCN_UNSAFE_FP_ATOMICS__. When this happens, the
compiler is requesting that the HIP headers force all HIP
atomicAdd() calls on floats or doubles to use their unsafe versions.
This patch thus causes unsafeAtomicAdd() calls when that define
is seen. This call to unsafeAtomicAdd() is also done for atomicSub(),
since that calls atomicAdd underneath. This is not done for
system-scope atomicAdd because, on gfx90a, system-scope atomic FP
add instructions would need to target fine-grained memory, which is
always unsafe.
This patch also creates safeAtomicAdd() functions for float and double.
These functions will create a standalone safe atomic, even when the
application is compiled with -munsafe-fp-atomics.
Finally, this patch adds wrappers in the Nvidia path of HIP so that
these HIP functions call through to atomicAdd there as well.
Change-Id: I8af0621d3d28ea30c9278bfeea7393d03bbdac6d
HIP_MEM_POOL_SUPPORT controls memory pool support in runtime.
Currently it's disabled by default. The initial change doesn't
include: IPC, MGPU, virtual memory alloc, suballoc, defragmentation,
internal dependencies.
Change-Id: Ibed8528ebec698b045ebb247e49c0ecd6e587ed7
align with CUDA to support surf1DLayeredread/write,
surf2DLayeredread/write, surfCubemapread/write functions.
Change-Id: Ie3f6ca75e23accd97cb35cdc8362d88a1e5dbd54
Add mapFrom() to map "float __attribute__((ext_vector_type(4)))"
of output of low-level device function to right vector.
Change-Id: Ifed915c87273b784780b2180320ccb746845dafb
Clang builtins doesnt yet support max/min atomics with float/double
parameters, Hence modify atomicMax/Min to use compare and swap
implementation
Change-Id: Ia351f9b136129fe25f0eddcbbb17549553247182
If the target device doesn't support image,
compiler will send out unavailable error if device texture apis
are called; and host texture apis will return hipErrorNotSupported.
Remove useless include/hip/amd_detail/texture_functions.h.
Add hipDeviceAttributeImageSupport attribute to check image
support in runtime.
Add __HIP_NO_IMAGE_SUPPORT(=1) macro in device code to indicate
texture apis not supported.
Change-Id: Ia891493e681a61980a2444859a90e046a9ebea39
Add typedefs for int32 and int64. Add templates provided in
system headers such as type_traits used in our HIP header
amd_hip_vector_types.h. Make replacements for clang builtin,
__is_convertible_to.
Change-Id: I4129b3f4f37238e2dda5b64d55e5cffe4d4480c6
This change addresses the rocprofiler and HIP backward compatibility
issues. Before this patch, each time the hip_prof_str.h header was
generated, the ordering of the callbacks IDs changed, causing
incompatibilities between tools compiled with the old header and
runtimes compiled with the new headers (or vice versa).
To make the API callback IDs stable, the previous version of the header
is read to extract the enum values so that the same values can be
assigned in the new header.
Also, to make diffing different versions of the hip_prof_str.h easier
to read, all other sections (types, macros, helper functions) are now
alphabetically ordered.
If an update to the checked-in hip_prof_str.h file is required, the
cmake build is aborted and a message printed on stderr. The build will
not be successful until the checked-in hip_prof_str.h and the generated
hip_prof_str.h match.
Change-Id: I38b920e601185f7365a76a6584df91a7e8a11798