first cut on collectives and sync

code is based on the GPUIB implementations of the routines, which seem
however generic enough to work also for the IPC conduit.

Some code is in for broadcast, fcollect, and alltoall.
This commit is contained in:
Edgar Gabriel
2024-08-13 14:09:15 -07:00
parent e2e30b5339
commit 0de3b5e6fc
5 changed files with 268 additions and 18 deletions
-12
View File
@@ -100,18 +100,6 @@ __device__ void *IPCContext::shmem_ptr(const void *dest, int pe) {
return ret;
}
__device__ void IPCContext::barrier_all() {
__syncthreads();
}
__device__ void IPCContext::sync_all() {
__syncthreads();
}
__device__ void IPCContext::sync(roc_shmem_team_t team) {
__syncthreads();
}
__device__ void IPCContext::putmem_wg(void *dest, const void *source,
size_t nelems, int pe) {
// TODO (Avinash) check if PE is available for IPC using (isIpcAvailable)