* Rework cmakery:
* detect rocm/hip/rocshmem better, make sure that ROCM_PATH and
ROCM_ROOT don't conflict and are taken by default
* add /opt/rocm as a fallback when nothing else found
* obtain hipcc in a sanitized way (ensure we use the same logic we
use to later find_package hip)
* factorize redundancies
* export GPU_TARGETS as part of the cmake target for librocshmem,
this helps with a clean error when an application tries to link
with the wrong offload-target flag (rather than a cryptic link error)
* phased out ROCSHMEM_HOME, in favor of rocshmem_ROOT (the cmake
blessed way)
* Remove references to ROCSHMEM_HOME, we prefer ROCSHMEM_ROOT
* Pick CMAKE_PREFIX_PATH method for consistent finding hip/rocm
* Undo this pr using LANGUAGE HIP, maybe later
* Use only rocmcmakebuildtools as recommended from 6.4 onward
* Use FineGrained allocator for heap by default, consolidate all types of
allocators under saner cmake controls
Co-authored-by: Yiltan <ytemucin@amd.com>
* Uncached may not be only for debug
Need to include the rocshmem config otherwise produce an inconsistent
build with different allocators used in different files
* Undo this pr adding presumably useless hip_host_allocator_noncoherent
* Rename HEAP_IS_COHERENT/USE_COHERENT_HEAP to USE_HDP_FLUSH as the former
was misleading
* Remove unused __roc_inv()
---------
Co-authored-by: Yiltan <ytemucin@amd.com>
* add backend_ipc.{cpp & hpp}
* rename context_ipc.{cpp & hpp} to context_ipc_device.{cpp & hpp}
* add host interface to IPC backend
* add context_ipc_host.{cpp & hpp} to support host interface
* add USE_RO compile flag to enable support for single backend interface at a time
* add ipc_single script to build rocSHMEM with IPC backend