version 0.1
[LbmBenchmarkKernelsPublic.git] / src / KernelFunctions.h
1 // --------------------------------------------------------------------------
2 //
3 // Copyright
4 //   Markus Wittmann, 2016-2017
5 //   RRZE, University of Erlangen-Nuremberg, Germany
6 //   markus.wittmann -at- fau.de or hpc -at- rrze.fau.de
7 //
8 //   Viktor Haag, 2016
9 //   LSS, University of Erlangen-Nuremberg, Germany
10 //
11 //  This file is part of the Lattice Boltzmann Benchmark Kernels (LbmBenchKernels).
12 //
13 //  LbmBenchKernels is free software: you can redistribute it and/or modify
14 //  it under the terms of the GNU General Public License as published by
15 //  the Free Software Foundation, either version 3 of the License, or
16 //  (at your option) any later version.
17 //
18 //  LbmBenchKernels is distributed in the hope that it will be useful,
19 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
20 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 //  GNU General Public License for more details.
22 //
23 //  You should have received a copy of the GNU General Public License
24 //  along with LbmBenchKernels.  If not, see <http://www.gnu.org/licenses/>.
25 //
26 // --------------------------------------------------------------------------
27 #ifndef __KERNEL_FUNCTIONS_H__
28 #define __KERNEL_FUNCTIONS_H__
29
30 #include "BenchKernelD3Q19.h"
31 #include "BenchKernelD3Q19List.h"
32 #include "BenchKernelD3Q19ListAa.h"
33 #include "BenchKernelD3Q19ListAaRia.h"
34 #include "BenchKernelD3Q19ListAaPv.h"
35 #include "BenchKernelD3Q19ListPullSplitNt.h"
36
37 typedef struct KernelFunctions_
38 {
39         char Name[128];
40         void (* Init)(LatticeDesc * ld, KernelData ** kernelData, Parameters * params);
41         void (* Deinit)(LatticeDesc * ld, KernelData ** kernelData);
42 } KernelFunctions;
43
44 KernelFunctions g_kernels[] =
45 {
46         {
47                 .Name   = "list-aa-pv-soa",
48                 .Init   = D3Q19ListAaPvInit_PushSoA,
49                 .Deinit = D3Q19ListAaPvDeinit_PushSoA
50         },
51         {
52                 .Name   = "list-aa-ria-soa",
53                 .Init   = D3Q19ListAaRiaInit_PushSoA,
54                 .Deinit = D3Q19ListAaRiaDeinit_PushSoA
55         },
56         {
57                 .Name   = "list-aa-soa",
58                 .Init   = D3Q19ListAaInit_PushSoA,
59                 .Deinit = D3Q19ListAaDeinit_PushSoA
60         },
61         {
62                 .Name   = "list-aa-aos",
63                 .Init   = D3Q19ListAaInit_PushAoS,
64                 .Deinit = D3Q19ListAaDeinit_PushAoS
65         },
66         {
67                 .Name   = "list-pull-split-nt-1s-soa",
68                 .Init   = D3Q19ListPullSplitNt1SInit_PullSoA,
69                 .Deinit = D3Q19ListPullSplitNtDeinit_PullSoA
70         },
71         {
72                 .Name   = "list-pull-split-nt-2s-soa",
73                 .Init   = D3Q19ListPullSplitNt2SInit_PullSoA,
74                 .Deinit = D3Q19ListPullSplitNtDeinit_PullSoA
75         },
76         {
77                 .Name   = "list-push-soa",
78                 .Init   = D3Q19ListInit_PushSoA,
79                 .Deinit = D3Q19ListDeinit_PushSoA
80         },
81         {
82                 .Name   = "list-push-aos",
83                 .Init   = D3Q19ListInit_PushAoS,
84                 .Deinit = D3Q19ListDeinit_PushAoS
85         },
86         {
87                 .Name   = "list-pull-soa",
88                 .Init   = D3Q19ListInit_PullSoA,
89                 .Deinit = D3Q19ListDeinit_PullSoA
90         },
91         {
92                 .Name = "list-pull-aos",
93                 .Init = D3Q19ListInit_PullAoS,
94                 .Deinit = D3Q19ListDeinit_PullAoS
95         },
96         {
97                 .Name   = "push-soa",
98                 .Init   = D3Q19Init_PushSoA,
99                 .Deinit = D3Q19Deinit_PushSoA
100         },
101         {
102                 .Name   = "push-aos",
103                 .Init   = D3Q19Init_PushAoS,
104                 .Deinit = D3Q19Deinit_PushAoS
105         },
106         {
107                 .Name   = "pull-soa",
108                 .Init   = D3Q19Init_PullSoA,
109                 .Deinit = D3Q19Deinit_PullSoA
110         },
111         {
112                 .Name   = "pull-aos",
113                 .Init   = D3Q19Init_PullAoS,
114                 .Deinit = D3Q19Deinit_PullAoS
115         },
116         {
117                 .Name   = "blk-push-soa",
118                 .Init   = D3Q19BlkInit_PushSoA,
119                 .Deinit = D3Q19BlkDeinit_PushSoA
120         },
121         {
122                 .Name   = "blk-push-aos",
123                 .Init   = D3Q19BlkInit_PushAoS,
124                 .Deinit = D3Q19BlkDeinit_PushAoS
125         },
126         {
127                 .Name   = "blk-pull-soa",
128                 .Init   = D3Q19BlkInit_PullSoA,
129                 .Deinit = D3Q19BlkDeinit_PullSoA
130         },
131         {
132                 .Name   = "blk-pull-aos",
133                 .Init   = D3Q19BlkInit_PullAoS,
134                 .Deinit = D3Q19BlkDeinit_PullAoS
135         },
136 };
137
138 #endif // __KERNEL_FUNCTIONS_H__
This page took 0.056498 seconds and 4 git commands to generate.