aboutsummaryrefslogtreecommitdiff
path: root/handcoded-opencl/sql6.cl.works
blob: 4cf5c33cd7460e6fc0c7c4cf02332742ddccb633 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
__kernel void x1_search_kernel(int totalRows,
							   int stride,
							   __global float *data,
							   __global float *resultArray,
							   __global int *roffsetResult) {

	int i = get_global_id(0);
	int workingSet = totalRows/16;
	int startRow = i * workingSet;
	int endRow = (startRow + workingSet) *stride;
	size_t offset = startRow * stride;
	size_t roffset = startRow * stride;

	if (i == 15)
		endRow = totalRows*stride;
	for(;offset < endRow; offset+=stride) {
		if ((data[offset+6]+40.0f) > (data[offset+4]-10.0f)) {
			resultArray[roffset]=data[offset];
			resultArray[roffset+1]=data[offset+4];
			resultArray[roffset+2]=data[offset+6];
			roffset+=3; 
		} 
	}

	roffsetResult[i] = (roffset-(startRow*stride))/3; 
}