Hi, I need to implement a semaphore, I write this code, but gives me error, the code is this:
#pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics : enable
#pragma OPENCL EXTENSION cl_khr_local_int32_base_atomics : enable
#pragma OPENCL EXTENSION cl_khr_global_int32_extended_atomics : enable
#pragma OPENCL EXTENSION cl_khr_local_int32_extended_atomics : enable
__kernel void Name(……){
volatile __global int *mutex;
int id = get_global_id(0);
int begin, end,cont;
if (atomic_cmpxchg(&mutex, 0, 1) == 0)
{
if(id==0)
{
begin=0;
end=4*M;
cont=0;
}
else
{
begin=id*(2*M);
end=begin+(4*M);
if(end>length)
end=length;
cont=id*(4*M);
}
atomic_xchg(&mutex, 0);
}
…….
}
And the error is: CL_BUILD_PROGRAM_FAILURE
Please Help Meeeeeeeeee