HIP: Heterogenous-computing Interface for Portability
grid_launch.h
1 #pragma once
2 
3 #include <stdint.h>
4 
5 #include <hc_defines.h>
6 
7 #define GRID_LAUNCH_VERSION 20
8 
9 // Extern definitions
10 namespace hc{
11 class completion_future;
12 class accelerator_view;
13 }
14 
15 
16 // 3 dim structure for groups and grids.
17 typedef struct gl_dim3
18 {
19  int x,y,z;
20  gl_dim3(uint32_t _x=1, uint32_t _y=1, uint32_t _z=1) : x(_x), y(_y), z(_z) {};
21 } gl_dim3;
22 
23 typedef enum gl_barrier_bit {
24  barrier_bit_queue_default,
25  barrier_bit_none,
26  barrier_bit_wait,
27 } gl_barrier_bit;
28 
29 
30 // grid_launch_parm contains information used to launch the kernel.
31 typedef struct grid_launch_parm
32 {
35 
38 
42 
46  enum gl_barrier_bit barrier_bit;
47 
51  unsigned int launch_fence;
52 
55  hc::accelerator_view *av;
56 
61  hc::completion_future *cf;
62 
63  grid_launch_parm() = default;
65 
66 
67 extern void init_grid_launch(grid_launch_parm *gl);
grid_launch_parm
Definition: grid_launch.h:32
grid_launch_parm::barrier_bit
enum gl_barrier_bit barrier_bit
Definition: grid_launch.h:46
gl_dim3
Definition: grid_launch.h:18
grid_launch_parm::launch_fence
unsigned int launch_fence
Definition: grid_launch.h:51
grid_launch_parm::cf
hc::completion_future * cf
Definition: grid_launch.h:61
grid_launch_parm::group_dim
gl_dim3 group_dim
Group dimensions.
Definition: grid_launch.h:37
grid_launch_parm::dynamic_group_mem_bytes
unsigned int dynamic_group_mem_bytes
Definition: grid_launch.h:41
grid_launch_parm::av
hc::accelerator_view * av
Definition: grid_launch.h:55
grid_launch_parm::grid_dim
gl_dim3 grid_dim
Grid dimensions.
Definition: grid_launch.h:34