26 #if defined(BATCH_SIZE) && defined(DATA_TYPE) && defined(WIDTH_IN) && defined(HEIGHT_IN)
60 __kernel
void space_to_batch_nchw(
72 const int pad_left_x = *((__global
int *)
offset(&pad, 0, 0));
73 const int pad_right_x = *((__global
int *)
offset(&pad, 1, 0));
74 const int pad_left_y = *((__global
int *)
offset(&pad, 0, 1));
75 const int pad_right_y = *((__global
int *)
offset(&pad, 1, 1));
80 const int out_x = get_global_id(0);
81 const int out_y = get_global_id(1);
82 const int z = get_global_id(2);
84 const int pos_x = out_x * block_x + ((batch_id / BATCH_IN) % block_x);
85 const int pos_y = out_y * block_y + ((batch_id / BATCH_IN) / block_x);
87 if(((pos_y >= pad_left_y) && (pos_y < pad_left_y + HEIGHT_IN) && (pos_x >= pad_left_x) && (pos_x < pad_left_x + WIDTH_IN)))
89 const int w = batch_id % BATCH_IN;
90 const int in_x = pos_x - pad_left_x;
91 const int in_y = pos_y - pad_left_y;
93 *((__global DATA_TYPE *)out.
ptr) = *((__global DATA_TYPE *)
tensor4D_offset(&in, in_x, in_y, z,
w));
97 #endif // defined(BATCH_SIZE) && defined(DATA_TYPE) && defined(WIDTH_IN) && defined(HEIGHT_IN)
99 #if defined(BATCH_SIZE) && defined(DATA_TYPE) && defined(BLOCK_SHAPE_X) && defined(BLOCK_SHAPE_Y) && defined(PAD_LEFT_X) && defined(PAD_RIGHT_X) && defined(PAD_LEFT_Y) && defined(PAD_RIGHT_Y) && defined(WIDTH_IN) && defined(HEIGHT_IN)
129 __kernel
void space_to_batch_static_nchw(
137 int block_x = BLOCK_SHAPE_X;
138 int block_y = BLOCK_SHAPE_Y;
140 const int out_x = get_global_id(0);
141 const int out_y = get_global_id(1);
142 const int z = get_global_id(2);
144 const int pos_x = out_x * block_x + ((batch_id / BATCH_IN) % block_x);
145 const int pos_y = out_y * block_y + ((batch_id / BATCH_IN) / block_x);
147 if(pos_y >= PAD_LEFT_Y && pos_y < PAD_LEFT_Y + HEIGHT_IN && pos_x >= PAD_LEFT_X && pos_x < PAD_LEFT_X + WIDTH_IN)
149 const int w = batch_id % BATCH_IN;
150 const int in_x = pos_x - PAD_LEFT_X;
151 const int in_y = pos_y - PAD_LEFT_Y;
153 *((__global DATA_TYPE *)out.
ptr) = *((__global DATA_TYPE *)
tensor4D_offset(&in, in_x, in_y, z,
w));
156 #endif // defined(BATCH_SIZE) && defined(DATA_TYPE) && defined(BLOCK_SHAPE_X) && defined(BLOCK_SHAPE_Y) && defined(PAD_LEFT_X) && defined(PAD_RIGHT_X) && defined(PAD_LEFT_Y) && defined(PAD_RIGHT_Y) && defined(WIDTH_IN) && defined(HEIGHT_IN)