¿Cuáles son / son las alternativas memset () más rápidas para OpenCL?
Estoy usando OpenCL, y necesitomemset()
alguna matriz en la memoria global del dispositivo. CUDA tiene unmemset()
-como función API, pero OpenCL no lo hace. Yo leoesta, donde encontré dos posibles alternativas:
memset()
en el host con un buffer de cero, entoncesclEnqueueWriteBuffer()
para copiar eso al búfer en el dispositivo.Poniendo en cola (sp?) El siguiente kernel:
__kernel void memset_uint4 (__ global uint4 * mem, __ private uint4 val) {mem [get_global_id (0)] = val; }
¿Cual es mejor? O más bien, ¿en qué circunstancias / para qué plataformas es una mejor que la otra?
Nota: Si el caso especial de cero memoria merece un tratamiento especial, sería bueno saberlo también.