Brick Library 0.1
Performance-portable stencil datalayout & codegen
brick-opencl.h
Go to the documentation of this file.
1
6#ifndef BRICK_BRICK_OPENCL_H
7#define BRICK_BRICK_OPENCL_H
8
9#include "vecscatter.h"
10#include "dev_shl.h"
11
12// Only support OpenCL on Intel graphics which only support single precision
13
14#define OCL_VSVEC "OPENCL"
15#define OCL_SUBGROUP 16
16#define OCL_VFOLD 2,8
17// C compatible and dumbed down version of all data structures for OpenCL+Codegen to use
18
19#ifdef __OPENCL_VERSION__
20// Device only code
21
22#define reqsg32 __attribute__((intel_reqd_sub_group_size(16)))
23
24struct oclbrick {
25 __global bElem *dat;
26 __global const unsigned *adj;
27 unsigned step;
28};
29
30#else
31
32struct syclbrick {
34 unsigned *adj;
35 unsigned step;
36};
37
38#endif
39
40#endif //BRICK_BRICK_OPENCL_H
Implementation for various shuffle implementations.
Definition: brick-sycl.h:12
unsigned * adj
Definition: brick-sycl.h:14
unsigned step
Definition: brick-sycl.h:15
bElem * dat
Definition: brick-sycl.h:13
Definition: brick-opencl.h:32
bElem * dat
Definition: brick-opencl.h:33
unsigned * adj
Definition: brick-opencl.h:34
unsigned step
Definition: brick-opencl.h:35
Interface to code generator.
#define bElem
Basic datatype for all brick elements.
Definition: vecscatter.h:13