bufferkdtree (C sources)
C source code for the Python bufferkdtree implementation
 All Classes Files Functions Variables Typedefs Macros
gpu_opencl.h
Go to the documentation of this file.
1 /*
2  * gpu_opencl.h
3  *
4  * Copyright (C) 2013-2016 Fabian Gieseke <fabian.gieseke@di.ku.dk>
5  * 2013-2016 Cosmin Oancea <cosmin.oancea@di.ku.dk>
6  * 2013 Justin Heinermann <justin.heinermann@uni-oldenburg.de>
7  * License: GPL v2
8  *
9  */
10 
11 #ifndef NEIGHBORS_BUFFER_KD_TREE_GPU_OPENCL_H_
12 #define NEIGHBORS_BUFFER_KD_TREE_GPU_OPENCL_H_
13 
14 #include <stdlib.h>
15 #include <string.h>
16 #include <stdio.h>
17 #include <stdlib.h>
18 #include <CL/cl.h>
19 #include <math.h>
20 
21 #include "base.h"
22 #include "types.h"
23 #include "util.h"
24 
25 #include "../../../include/opencl.h"
26 
35  TREE_PARAMETERS *params);
36 
45  TREE_PARAMETERS *params);
46 
55  TREE_PARAMETERS *params);
56 
65  TREE_PARAMETERS *params);
66 
75  TREE_PARAMETERS *params);
76 
87  TREE_PARAMETERS *params);
88 
99  TREE_PARAMETERS *params,
100  INT_TYPE all_brute);
101 
113  TREE_PARAMETERS *params,
114  INT_TYPE all_brute,
115  INT_TYPE *tindices_removed,
116  INT_TYPE *fr_indices,
117  INT_TYPE *to_indices);
118 
132  TREE_PARAMETERS *params,
133  INT_TYPE all_brute,
134  INT_TYPE *tindices_removed,
135  INT_TYPE n_tindices_removed,
136  INT_TYPE *fr_indices,
137  INT_TYPE *to_indices);
138 
156  INT_TYPE n_test_indices,
157  INT_TYPE *fr_indices,
158  INT_TYPE *to_indices,
160  TREE_PARAMETERS *params,
161  INT_TYPE n_device_train_patterns,
162  cl_mem device_train_patterns,
163  INT_TYPE chunk_offset,
164  INT_TYPE all_brute,
165  INT_TYPE current_chunk);
166 
184  INT_TYPE n_test_indices,
185  INT_TYPE *fr_indices,
186  INT_TYPE *to_indices,
188  TREE_PARAMETERS *params,
189  INT_TYPE n_device_train_patterns,
190  cl_mem device_train_patterns,
191  INT_TYPE chunk_offset,
192  INT_TYPE all_brute,
193  INT_TYPE current_chunk);
194 
205 void find_leaf_idx_batch_gpu(INT_TYPE *all_next_indices,
206  INT_TYPE num_all_next_indices,
207  INT_TYPE *ret_vals,
209  TREE_PARAMETERS *params);
210 
220  TREE_PARAMETERS *params);
221 
231  TREE_PARAMETERS *params);
232 
242  TREE_PARAMETERS *params,
243  INT_TYPE chunk,
244  INT_TYPE n_indices);
245 
255  TREE_PARAMETERS *params,
256  INT_TYPE chunk,
257  INT_TYPE start_idx,
258  INT_TYPE end_idx);
259 
268  TREE_PARAMETERS *params,
269  INT_TYPE chunk);
270 
279  TREE_PARAMETERS *params);
280 
281 #endif /* NEIGHBORS_BUFFER_KD_TREE_GPU_OPENCL_H_ */
void get_distances_and_indices_gpu(TREE_RECORD *tree_record, TREE_PARAMETERS *params)
Definition: gpu_opencl.c:1016
void free_query_buffers_gpu(TREE_RECORD *tree_record, TREE_PARAMETERS *params)
Definition: gpu_opencl.c:198
void write_sorted_training_patterns_gpu(TREE_RECORD *tree_record, TREE_PARAMETERS *params)
Definition: gpu_opencl.c:1071
void do_brute_force_all_leaves_FIRST_gpu(INT_TYPE *test_indices, INT_TYPE n_test_indices, INT_TYPE *fr_indices, INT_TYPE *to_indices, TREE_RECORD *tree_record, TREE_PARAMETERS *params, INT_TYPE n_device_train_patterns, cl_mem device_train_patterns, INT_TYPE chunk_offset, INT_TYPE all_brute, INT_TYPE current_chunk)
Definition: gpu_opencl.c:670
void init_opencl_devices(TREE_RECORD *tree_record, TREE_PARAMETERS *params)
Definition: gpu_opencl.c:20
Definition: types.h:89
void init_train_patterns_buffers(TREE_RECORD *tree_record, TREE_PARAMETERS *params, INT_TYPE chunk, INT_TYPE n_indices)
Definition: gpu_opencl.c:1095
void copy_train_patterns_to_device(TREE_RECORD *tree_record, TREE_PARAMETERS *params, INT_TYPE chunk, INT_TYPE start_idx, INT_TYPE end_idx)
Definition: gpu_opencl.c:1131
#define INT_TYPE
Definition: global.h:11
void allocate_memory_opencl_devices(TREE_RECORD *tree_record, TREE_PARAMETERS *params)
Definition: gpu_opencl.c:244
int training_chunks_inactive(TREE_RECORD *tree_record, TREE_PARAMETERS *params)
Definition: gpu_opencl.c:1217
void process_all_buffers_gpu(TREE_RECORD *tree_record, TREE_PARAMETERS *params)
Definition: gpu_opencl.c:392
void free_train_patterns_device(TREE_RECORD *tree_record, TREE_PARAMETERS *params, INT_TYPE chunk)
Definition: gpu_opencl.c:1191
Definition: types.h:112
void process_buffers_brute_force_gpu(TREE_RECORD *tree_record, TREE_PARAMETERS *params, INT_TYPE all_brute)
Definition: gpu_opencl.c:429
void do_brute_force_all_leaves_SECOND_gpu(INT_TYPE *test_indices, INT_TYPE n_test_indices, INT_TYPE *fr_indices, INT_TYPE *to_indices, TREE_RECORD *tree_record, TREE_PARAMETERS *params, INT_TYPE n_device_train_patterns, cl_mem device_train_patterns, INT_TYPE chunk_offset, INT_TYPE all_brute, INT_TYPE current_chunk)
Definition: gpu_opencl.c:862
void free_opencl_devices(TREE_RECORD *tree_record, TREE_PARAMETERS *params)
Definition: gpu_opencl.c:128
void free_train_buffers_gpu(TREE_RECORD *tree_record, TREE_PARAMETERS *params)
Definition: gpu_opencl.c:182
void find_leaf_idx_batch_gpu(INT_TYPE *all_next_indices, INT_TYPE num_all_next_indices, INT_TYPE *ret_vals, TREE_RECORD *tree_record, TREE_PARAMETERS *params)
Definition: gpu_opencl.c:948
void process_buffers_brute_force_in_chunks_gpu(TREE_RECORD *tree_record, TREE_PARAMETERS *params, INT_TYPE all_brute, INT_TYPE *tindices_removed, INT_TYPE n_tindices_removed, INT_TYPE *fr_indices, INT_TYPE *to_indices)
Definition: gpu_opencl.c:536
INT_TYPE retrieve_indices_from_buffers_gpu(TREE_RECORD *tree_record, TREE_PARAMETERS *params, INT_TYPE all_brute, INT_TYPE *tindices_removed, INT_TYPE *fr_indices, INT_TYPE *to_indices)
Definition: gpu_opencl.c:480