OpenCLTutorial/collatz-kernel.cl

22 lines
429 B
Common Lisp
Raw Permalink Normal View History

2019-03-18 19:30:42 -07:00
#pragma OPENCL EXTENSION cl_khr_byte_addressable_store : enable
__kernel void collatz(__global unsigned int* inputNums,
__global unsigned int* triesArr) {
int N = get_global_id(1) * get_global_size(0) + get_global_id(0);
int val = N + 1;
int tries = 0;
inputNums[N] = val;
while(val != 1) {
if(val % 2 == 0) {
val = val / 2;
} else {
val = 3 * val + 1;
}
tries++;
}
triesArr[N] = tries;
}