spla
auto_common_def.hpp
Go to the documentation of this file.
1 // Copyright (c) 2021 - 2023 SparseLinearAlgebra
3 // Autogenerated file, do not modify
5 
6 #pragma once
7 
8 static const char source_common_def[] = R"(
9 
10 #pragma once
11 
12 #define TYPE int
13 #define BLOCK_SIZE 32
14 #define LM_NUM_MEM_BANKS 32
15 #define BLOCK_COUNT 1
16 #define WARP_SIZE 32
17 #define OP_SELECT(a) a
18 #define OP_UNARY(a) a
19 #define OP_BINARY(a, b) a + b
20 #define OP_BINARY1(a, b) a + b
21 #define OP_BINARY2(a, b) a + b
22 
23 #define __kernel
24 #define __global
25 #define __local
26 #define __constant
27 #define __private
28 #define restrict
29 
30 #define half float
31 
32 struct float2 {
33  float x;
34 };
35 struct float3 {
36  float x, y, z;
37 };
38 struct float4 {
39  float x, y, z, w;
40 };
41 
42 #define uint unsigned int
43 #define ulong unsigned long int
44 
45 enum cl_mem_fence_flags {
46  CLK_LOCAL_MEM_FENCE,
47  CLK_GLOBAL_MEM_FENCE
48 };
49 
50 void barrier(cl_mem_fence_flags flags);
51 
52 size_t get_global_size(uint dimindx);
53 size_t get_global_id(uint dimindx);
54 size_t get_local_size(uint dimindx);
55 size_t get_local_id(uint dimindx);
56 size_t get_num_groups(uint dimindx);
57 size_t get_group_id(uint dimindx);
58 size_t get_global_offset(uint dimindx);
59 uint get_work_dim();
60 
61 #define atomic_add(p, val) p[0] += val
62 #define atomic_sub(p, val) p[0] -= val
63 #define atomic_inc(p) (p)[0]
64 #define atomic_dec(p) (p)[0]
65 #define atomic_cmpxchg(p, cmp, val) ((p)[0] == cmp ? val : (p)[0])
66 
67 #define min(x, y) (x < y ? x : y)
68 #define max(x, y) (x > y ? x : y)
69 #define sin(x) x
70 #define cos(x) x
71 #define fract(x, ptr) x
72 )";