J'utilise atom_inc dans l'un de mes noyaux. Plus ou moins comme ceci:erreur cl_out_of_resources dans atom_inc/atomic_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)];
}
}
Mais il me donne une erreur CL_OUT_OF_RESOURCES quand je l'appelle. Remplacer atom_inc (x) avec 0 résout ce problème ... mais rend le noyau inutile.
Des idées sur ce qui peut causer cette erreur?
Edit: J'ai inclus ces extensions dans le programme:
#pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics : enable
#pragma OPENCL EXTENSION cl_khr_global_int32_extended_atomics : enable
Edit2: en fait j'initialiser x avec:
kernel.setArgs(0,0);
Dois-je utiliser un objet de mémoire dans ce lieu?
Cordialement, Florian
Oui, votre noyau s'est brisé (déréférencement NULL) et cette erreur est signalée comme CL_OUT_OF_RESOURCES (Un peu trompeur). –