libxmp/libxmpf in Omni Compiler  1.3.4
xmp_reflect_acc.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include "xmp_internal.h"
Include dependency graph for xmp_reflect_acc.c:

Functions

void _XMP_reflect_init_gpu (void *acc_addr, _XMP_array_t *array_desc)
 
void _XMP_reflect_do_gpu (_XMP_array_t *array_desc)
 
void _XMP_reflect_init_acc (void *acc_addr, _XMP_array_t *array_desc)
 
void _XMP_reflect_do_acc (_XMP_array_t *array_desc)
 
void _XMP_reflect_acc__ (void *acc_addr, _XMP_array_t *array_desc)
 
void _XMP_set_reflect_acc__ (_XMP_array_t *a, int dim, int lwidth, int uwidth, int is_periodic)
 
void _XMP_init_reflect_sched_acc (_XMP_reflect_sched_t *sched)
 
void _XMP_finalize_reflect_sched_acc (_XMP_reflect_sched_t *sched, _Bool free_buf)
 

Function Documentation

◆ _XMP_finalize_reflect_sched_acc()

void _XMP_finalize_reflect_sched_acc ( _XMP_reflect_sched_t sched,
_Bool  free_buf 
)
84 {
85 #ifdef _XMP_TCA
86  //
87 #else
88  _XMP_finalize_reflect_sched_gpu(sched, free_buf);
89 #endif
90 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ _XMP_init_reflect_sched_acc()

void _XMP_init_reflect_sched_acc ( _XMP_reflect_sched_t sched)
75 {
76 #ifdef _XMP_TCA
77  //
78 #else
80 #endif
81 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ _XMP_reflect_acc__()

void _XMP_reflect_acc__ ( void *  acc_addr,
_XMP_array_t array_desc 
)
55 {
56  if(_XMP_world_size == 1) return;
57 
58 #ifdef _XMP_TCA
59 #else
60  _XMP_reflect_gpu(acc_addr, array_desc);
61 #endif
62 }
Here is the call graph for this function:

◆ _XMP_reflect_do_acc()

void _XMP_reflect_do_acc ( _XMP_array_t array_desc)
40 {
41  if(_XMP_world_size == 1) return;
42 
43 #ifdef _XMP_TCA
44  if (enable_hybrid) {
45  _XMP_reflect_do_hybrid(array_desc);
46  } else {
47  _XMP_reflect_do_tca(array_desc);
48  }
49 #else
50  _XMP_reflect_do_gpu(array_desc);
51 #endif
52 }
Here is the call graph for this function:

◆ _XMP_reflect_do_gpu()

void _XMP_reflect_do_gpu ( _XMP_array_t array_desc)
120  {
122 
123  // _XMP_reflect_start(array_desc, 0);
124  // _XMP_reflect_wait(array_desc);
125  _XMP_reflect_(array_desc, 0);
126 }
Here is the caller graph for this function:

◆ _XMP_reflect_init_acc()

void _XMP_reflect_init_acc ( void *  acc_addr,
_XMP_array_t array_desc 
)
24 {
25  if(_XMP_world_size == 1) return;
26 
27 #ifdef _XMP_TCA
28  set_hybrid_comm();
29  if (enable_hybrid) {
30  _XMP_reflect_init_hybrid(acc_addr, array_desc);
31  } else {
32  _XMP_reflect_init_tca(acc_addr, array_desc);
33  }
34 #else
35  _XMP_reflect_init_gpu(acc_addr, array_desc);
36 #endif
37 }
Here is the call graph for this function:

◆ _XMP_reflect_init_gpu()

void _XMP_reflect_init_gpu ( void *  acc_addr,
_XMP_array_t array_desc 
)
68 {
70 
71  static char isFlagSetted = 0;
72  if(! isFlagSetted ){
73  char *mode_str = getenv("XACC_COMM_MODE");
74  if(mode_str != NULL){
75  int mode = atoi(mode_str);
76  switch(mode){
77  default:
78  case 0:
79  packVector = 1;
80  useHostBuffer = 1;
81  break;
82  case 1:
83  packVector = 1;
84  useHostBuffer = 0;
85  break;
86  case 2:
87  packVector = 0;
88  useHostBuffer = 0;
89  break;
90  }
91  }
92  isFlagSetted = 1;
93  }
94  //printf("reflect mode (%d, %d)\n", packVector, useHostBuffer);
95 
96  if (!a->is_allocated){
97  _xmpf_set_reflect_flag = 0;
98  return;
99  }
100 
101  if (!_xmpf_set_reflect_flag){
102  for (int i = 0; i < a->dim; i++){
103  _XMP_array_info_t *ai = &(a->info[i]);
104  _xmp_lwidth[i] = ai->shadow_size_lo;
105  _xmp_uwidth[i] = ai->shadow_size_hi;
106  _xmp_is_periodic[i] = 0;
107  }
108  }
109 
110  _XMP_reflect_sched(a, _xmp_lwidth, _xmp_uwidth, _xmp_is_periodic, 0, dev_addr);
111 
112  _xmpf_set_reflect_flag = 0;
113  for (int i = 0; i < a->dim; i++){
114  _xmp_lwidth[i] = 0;
115  _xmp_uwidth[i] = 0;
116  _xmp_is_periodic[i] = 0;
117  }
118 }
Here is the caller graph for this function:

◆ _XMP_set_reflect_acc__()

void _XMP_set_reflect_acc__ ( _XMP_array_t a,
int  dim,
int  lwidth,
int  uwidth,
int  is_periodic 
)
65 {
66 #ifdef _XMP_TCA
67  //
68 #else
69  _XMP_set_reflect_gpu(a, dim, lwidth, uwidth, is_periodic);
70 #endif
71 
72 }
Here is the call graph for this function:
_XMP_reflect_init_hybrid
void _XMP_reflect_init_hybrid(void *acc_addr, _XMP_array_t *adesc)
Definition: xmp_reflect_hybrid.c:403
_XMP_array_info_type
Definition: xmp_data_struct.h:194
_XMP_set_reflect_gpu
void _XMP_set_reflect_gpu(_XMP_array_t *a, int dim, int lwidth, int uwidth, int is_periodic)
Definition: xmp_reflect_gpu.c:52
_XMP_reflect_do_tca
void _XMP_reflect_do_tca(_XMP_array_t *adesc)
Definition: xmp_reflect_tca.c:579
_XMP_world_size
int _XMP_world_size
Definition: xmp_world.c:8
_XMP_reflect_gpu
void _XMP_reflect_gpu(void *dev_addr, _XMP_array_t *a)
Definition: xmp_reflect_gpu.c:61
_XMP_reflect_init_tca
void _XMP_reflect_init_tca(void *acc_addr, _XMP_array_t *adesc)
Definition: xmp_reflect_tca.c:369
_XMP_finalize_reflect_sched_gpu
void _XMP_finalize_reflect_sched_gpu(_XMP_reflect_sched_t *sched, _Bool free_buf)
Definition: xmp_reflect_gpu.c:824
_XMP_array_info_type::shadow_size_lo
int shadow_size_lo
Definition: xmp_data_struct.h:249
_XMP_reflect_do_hybrid
void _XMP_reflect_do_hybrid(_XMP_array_t *adesc)
Definition: xmp_reflect_hybrid.c:654
_XMP_init_reflect_sched_gpu
void _XMP_init_reflect_sched_gpu(_XMP_reflect_sched_t *sched)
Definition: xmp_reflect_gpu.c:801
_XMP_reflect_do_gpu
void _XMP_reflect_do_gpu(_XMP_array_t *array_desc)
Definition: xmp_reflect_gpu.c:120
_XMP_array_info_type::shadow_size_hi
int shadow_size_hi
Definition: xmp_data_struct.h:250
_XMP_reflect_init_gpu
void _XMP_reflect_init_gpu(void *acc_addr, _XMP_array_t *array_desc)
Definition: xmp_reflect_gpu.c:67
_XMP_RETURN_IF_SINGLE
#define _XMP_RETURN_IF_SINGLE
Definition: xmp_internal.h:37