HIP: Heterogenous-computing Interface for Portability
grid_launch.hpp
1 #pragma once
2 
3 #include "grid_launch.h"
4 #include "hc.hpp"
5 
7 {
8 public:
9  grid_launch_parm_cxx() = default;
10 
11  // customized serialization: don't need av and cf in kernel
12  __attribute__((annotate("serialize")))
13  void __cxxamp_serialize(Kalmar::Serialize& s) const {
14  s.Append(sizeof(int), &grid_dim.x);
15  s.Append(sizeof(int), &grid_dim.y);
16  s.Append(sizeof(int), &grid_dim.z);
17  s.Append(sizeof(int), &group_dim.x);
18  s.Append(sizeof(int), &group_dim.y);
19  s.Append(sizeof(int), &group_dim.z);
20  }
21 
22  __attribute__((annotate("user_deserialize")))
23  grid_launch_parm_cxx(int grid_dim_x, int grid_dim_y, int grid_dim_z,
24  int group_dim_x, int group_dim_y, int group_dim_z) {
25  grid_dim.x = grid_dim_x;
26  grid_dim.y = grid_dim_y;
27  grid_dim.z = grid_dim_z;
28  group_dim.x = group_dim_x;
29  group_dim.y = group_dim_y;
30  group_dim.z = group_dim_z;
31  }
32 };
33 
34 
35 extern inline void grid_launch_init(grid_launch_parm *lp) {
36  lp->grid_dim.x = lp->grid_dim.y = lp->grid_dim.z = 1;
37 
38  lp->group_dim.x = lp->group_dim.y = lp->group_dim.z = 1;
39 
41 
42  lp->barrier_bit = barrier_bit_queue_default;
43  lp->launch_fence = -1;
44 
45  // TODO - set to NULL?
46  static hc::accelerator_view av = hc::accelerator().get_default_view();
47  lp->av = &av;
48  lp->cf = NULL;
49 }
50 
Definition: grid_launch.h:32
unsigned int dynamic_group_mem_bytes
Definition: grid_launch.h:41
gl_dim3 grid_dim
Grid dimensions.
Definition: grid_launch.h:34
unsigned int launch_fence
Definition: grid_launch.h:51
gl_dim3 group_dim
Group dimensions.
Definition: grid_launch.h:37
hc::accelerator_view * av
Definition: grid_launch.h:55
enum gl_barrier_bit barrier_bit
Definition: grid_launch.h:46
hc::completion_future * cf
Definition: grid_launch.h:61
Definition: grid_launch.hpp:7