Я использую atom_inc в одном из моих ядер. Более или менее так:
kernel exampleKernel(
global volatile int * x,
global const int maxX,
global const int * buf1,
global const int * buf2
)
{
if(x < maxX)
{
int y = atom_inc(x);
buf2[y] = buf1[get_global_id(0)];
}
}
Но это вызывает ошибку CL_OUT_OF_RESOURCES, когда я ее вызываю.
Замена atom_inc (x) на 0 решает эту проблему ... но делает ядро бесполезным.
Есть идеи, что может вызвать эту ошибку?
Редактировать: я включил в программу следующие расширения:
#pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics : enable
#pragma OPENCL EXTENSION cl_khr_global_int32_extended_atomics : enable
Edit2: на самом деле я инициализирую x с помощью:
kernel.setArgs(0,0);
Должен ли я использовать объект памяти в этом месте?
С уважением,
Florian