22 lines
429 B
Common Lisp
22 lines
429 B
Common Lisp
|
#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;
|
||
|
}
|