Add IPC backend

* 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
This commit is contained in:
avinashkethineedi
2024-08-14 22:59:02 -07:00
bovenliggende 24375a949e
commit 49779863c2
20 gewijzigde bestanden met toevoegingen van 1410 en 30 verwijderingen
+13 -6
Bestand weergeven
@@ -39,12 +39,14 @@
#ifdef USE_GPU_IB
#include "gpu_ib/backend_ib.hpp"
#include "gpu_ib/context_ib_tmpl_host.hpp"
#endif
#include "mpi_init_singleton.hpp"
#ifndef USE_GPU_IB
#elif defined(USE_RO)
#include "reverse_offload/backend_ro.hpp"
#include "reverse_offload/context_ro_tmpl_host.hpp"
#else
#include "ipc/backend_ipc.hpp"
#include "ipc/context_ipc_tmpl_host.hpp"
#endif
#include "mpi_init_singleton.hpp"
#include "team.hpp"
#include "templates_host.hpp"
#include "util.hpp"
@@ -82,12 +84,17 @@ roc_shmem_ctx_t ROC_SHMEM_HOST_CTX_DEFAULT;
rocm_init();
#ifndef USE_GPU_IB
#ifdef USE_GPU_IB
CHECK_HIP(hipHostMalloc(&backend, sizeof(GPUIBBackend)));
backend = new (backend) GPUIBBackend(comm);
#elif defined(USE_RO)
printf("RO Backend\n");
CHECK_HIP(hipHostMalloc(&backend, sizeof(ROBackend)));
backend = new (backend) ROBackend(comm);
#else
CHECK_HIP(hipHostMalloc(&backend, sizeof(GPUIBBackend)));
backend = new (backend) GPUIBBackend(comm);
printf("IPC Backend\n");
CHECK_HIP(hipHostMalloc(&backend, sizeof(IPCBackend)));
backend = new (backend) IPCBackend(comm);
#endif
if (!backend) {