spla
Loading...
Searching...
No Matches
auto_common_def.hpp
Go to the documentation of this file.
1
2// Copyright (c) 2021 - 2023 SparseLinearAlgebra
3// Autogenerated file, do not modify
5
6#pragma once
7
8static 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
32struct float2 {
33 float x;
34};
35struct float3 {
36 float x, y, z;
37};
38struct float4 {
39 float x, y, z, w;
40};
41
42#define uint unsigned int
43#define ulong unsigned long int
44
45enum cl_mem_fence_flags {
46 CLK_LOCAL_MEM_FENCE,
47 CLK_GLOBAL_MEM_FENCE
48};
49
50void barrier(cl_mem_fence_flags flags);
51
52size_t get_global_size(uint dimindx);
53size_t get_global_id(uint dimindx);
54size_t get_local_size(uint dimindx);
55size_t get_local_id(uint dimindx);
56size_t get_num_groups(uint dimindx);
57size_t get_group_id(uint dimindx);
58size_t get_global_offset(uint dimindx);
59uint 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)";