libxmp/libxmpf in Omni Compiler  1.3.4
xmp_reflect_hybrid.c File Reference
#include "xmp_internal.h"
#include "tca-api.h"
#include "xmp.h"
#include "cuda_runtime.h"
Include dependency graph for xmp_reflect_hybrid.c:

Macros

#define _XMP_TCA_DMAC   0
 
#define _XMP_TCA_USE_PACK_SIZE   8
 
#define _XMP_TCA_USE_GPUDIRECT_SIZE   256*1024
 
#define _XMP_TCA_DEBUG(...)
 

Functions

void _XMP_gpu_pack_vector_async (char *restrict dst, char *restrict src, int count, int blocklength, long stride, size_t typesize, void *async_id)
 
void _XMP_gpu_unpack_vector_async (char *restrict dst, char *restrict src, int count, int blocklength, long stride, size_t typesize, void *async_id)
 
void _XMP_reflect_init_hybrid (void *acc_addr, _XMP_array_t *adesc)
 
void _XMP_reflect_do_hybrid (_XMP_array_t *adesc)
 

Macro Definition Documentation

◆ _XMP_TCA_DEBUG

#define _XMP_TCA_DEBUG (   ...)

◆ _XMP_TCA_DMAC

#define _XMP_TCA_DMAC   0

◆ _XMP_TCA_USE_GPUDIRECT_SIZE

#define _XMP_TCA_USE_GPUDIRECT_SIZE   256*1024

◆ _XMP_TCA_USE_PACK_SIZE

#define _XMP_TCA_USE_PACK_SIZE   8

Function Documentation

◆ _XMP_gpu_pack_vector_async()

void _XMP_gpu_pack_vector_async ( char *restrict  dst,
char *restrict  src,
int  count,
int  blocklength,
long  stride,
size_t  typesize,
void *  async_id 
)
Here is the caller graph for this function:

◆ _XMP_gpu_unpack_vector_async()

void _XMP_gpu_unpack_vector_async ( char *restrict  dst,
char *restrict  src,
int  count,
int  blocklength,
long  stride,
size_t  typesize,
void *  async_id 
)
Here is the caller graph for this function:

◆ _XMP_reflect_do_hybrid()

void _XMP_reflect_do_hybrid ( _XMP_array_t adesc)
655 {
656  tcaDesc *tca_reflect_desc = (tcaDesc *)adesc->tca_reflect_desc;
657 
658  _XMP_tca_pack_vector(adesc);
659  if (adesc->set_tca_desc) {
660  TCA_CHECK(tcaDescSet(tca_reflect_desc, _XMP_TCA_DMAC));
661  TCA_CHECK(tcaStartDMADesc(_XMP_TCA_DMAC));
662  }
663  _XMP_reflect_start_mpi(adesc);
664  _XMP_reflect_wait_mpi(adesc);
665  if (adesc->set_tca_desc) {
666  _XMP_reflect_wait_tca(adesc);
667  }
668  _XMP_tca_unpack_vector(adesc);
669  MPI_Barrier(MPI_COMM_WORLD);
670 }
Here is the caller graph for this function:

◆ _XMP_reflect_init_hybrid()

void _XMP_reflect_init_hybrid ( void *  acc_addr,
_XMP_array_t adesc 
)
404 {
405  printf("_XMP_reflect_init_hybrid\n");
406  _XMP_create_TCA_handle(acc_addr, adesc);
407  _XMP_create_TCA_reflect_desc(adesc, acc_addr);
408 }
Here is the caller graph for this function:
_XMP_TCA_DMAC
#define _XMP_TCA_DMAC
Definition: xmp_reflect_hybrid.c:5