Ошибка cl_out_of_resources вatom_inc/atomic_inc
Вопрос
я использую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.Замена атома_inc(x) на 0 решает эту проблему...но делает ядро бесполезным.
Есть идеи, что может вызвать эту ошибку?
Редактировать:я включил эти расширения в программу:
#pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics : enable
#pragma OPENCL EXTENSION cl_khr_global_int32_extended_atomics : enable
Редактировать2:на самом деле я инициализирую x с помощью:
kernel.setArgs(0,0);
Должен ли я использовать объект памяти в этом месте?
С уважением, Флориан
Решение
Ах...хорошо ...похоже, в этом случае вам придется использовать объекты памяти.
Решением здесь было создать одноэлементный буфер OpenCL и установить его в качестве первого аргумента.
Я оставлю этот вопрос и отвечу здесь, чтобы другие не допустили такой же ошибки.
Не связан с StackOverflow