bufferkdtree (C sources)
C source code for the Python bufferkdtree implementation
 All Classes Files Functions Variables Typedefs Macros
global.h
Go to the documentation of this file.
1 /*
2  * global.h
3  *
4  * Copyright (C) 2013-2016 Fabian Gieseke <fabian.gieseke@di.ku.dk>
5  * License: GPL v2
6  *
7  */
8 #ifndef BRUTE_INCLUDE_GLOBAL_H_
9 #define BRUTE_INCLUDE_GLOBAL_H_
10 
11 #define INT_TYPE int
12 #define UINT_TYPE unsigned int
13 
14 #include "../../../include/opencl.h"
15 #include "../../../include/timing.h"
16 #include "../../../include/float.h"
17 
18 #ifndef USE_GPU
19 #define USE_GPU 0
20 #endif
21 
22 // use simple float if not specified otherwise
23 #ifndef USE_DOUBLE
24 #define USE_DOUBLE 0
25 #endif
26 
27 // floating point precision (single/double)
28 #if USE_DOUBLE > 0
29 #define FLOAT_TYPE double
30 #define MAX_FLOAT_TYPE 1.7976931348623158e+308
31 #define MIN_FLOAT_TYPE -1.7976931348623158e+308
32 #define TRANSPOSE_ARRAY transpose_array_double
33 #else
34 #define FLOAT_TYPE float
35 #define MAX_FLOAT_TYPE 3.402823466e+38
36 #define MIN_FLOAT_TYPE -3.402823466e+38
37 #define TRANSPOSE_ARRAY transpose_array_float
38 #endif
39 
40 // CPU and GPU functions are mapped via the following macros
41 #if USE_GPU > 0
42 #define INIT init_gpu
43 #define FIT fit_gpu
44 #define NEIGHBORS neighbors_gpu
45 #define FREE_RESOURCES free_resources_gpu
46 #else
47 #define INIT init_cpu
48 #define FIT fit_cpu
49 #define NEIGHBORS neighbors_cpu
50 #define FREE_RESOURCES free_resources_cpu
51 #endif
52 
53 // struct for input parameters
54 typedef struct brute_parameters {
55 
62 
64 
65 
66 // record struct for patterns and CL stuff
67 typedef struct brute_record {
68 
69  // training patterns
71 
72  // dimension of patterns
74 
75  // number of training patters
77 
78  // test patterns
80 
81  // number of test patterns
83 
86 
87  // OpenCL stuff
88  cl_platform_id gpu_platform;
89  cl_device_id gpu_device;
90  cl_context gpu_context;
91  cl_command_queue gpu_command_queue;
92 
93  // OpenCL kernels
96 
97  // OpenCL buffers
101 
102 
103 } BRUTE_RECORD;
104 
105 #endif /* BRUTE_INCLUDE_GLOBAL_H_ */
cl_command_queue gpu_command_queue
Definition: global.h:91
Definition: global.h:67
FLOAT_TYPE * Xtrain
Definition: global.h:70
UINT_TYPE nXtest
Definition: global.h:82
#define UINT_TYPE
Definition: global.h:12
struct brute_parameters BRUTE_PARAMETERS
cl_kernel gpu_brute_nearest_neighbors_kernel
Definition: global.h:94
#define FLOAT_TYPE
Definition: global.h:34
INT_TYPE nXtrain
Definition: global.h:76
cl_context gpu_context
Definition: global.h:90
INT_TYPE dXtrain
Definition: global.h:73
INT_TYPE verbosity_level
Definition: global.h:59
cl_kernel gpu_brute_transpose_kernel
Definition: global.h:95
INT_TYPE platform_id
Definition: global.h:60
INT_TYPE device_id
Definition: global.h:61
TIMER timers[25]
Definition: global.h:84
char * kernels_source_directory
Definition: global.h:58
#define INT_TYPE
Definition: global.h:11
cl_device_id gpu_device
Definition: global.h:89
Definition: timing.h:31
FLOAT_TYPE * Xtest
Definition: global.h:79
cl_mem gpu_device_idx_mins_trans
Definition: global.h:100
struct brute_record BRUTE_RECORD
cl_mem gpu_device_d_mins_trans
Definition: global.h:99
INT_TYPE num_threads
Definition: global.h:57
INT_TYPE n_neighbors
Definition: global.h:56
Definition: global.h:54
INT_TYPE counters[10]
Definition: global.h:85
cl_mem gpu_device_Xtrain
Definition: global.h:98
cl_platform_id gpu_platform
Definition: global.h:88