HIP: Heterogenous-computing Interface for Portability
Loading...
Searching...
No Matches
grid_launch.hpp
1#pragma once
2
3#include "grid_launch.h"
4#include "hc.hpp"
5
7{
8public:
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
35extern 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
_Float16 __2f16 __attribute__((ext_vector_type(2)))
Definition hip_fp16_math_fwd.h:57
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