Para un Kernel dado, ¿por qué los work_groups tienen siempre el mismo tamaño? Leí en alguna parte (para el caso en el que no especificamos el tamaño de trabajo local) que openCL crea 3 grupos de trabajo (de 217 elementos de trabajo cada uno) para kernel con 651 elementos de trabajo (divisibles por 3) mientras crea 653 grupos de trabajo de 1 elemento de trabajo cada uno, ya que 653 es un número primo.Tamaños de grupo de trabajo
Supongamos que especificamos el tamaño_trabajo_local (es decir, el n. ° de elementos de trabajo en un grupo de trabajo), digamos, 5. Y hemos asignado el total de elementos de trabajo (global_work_size) como 9. ¿Cómo se crearán los grupos de trabajo? ¿Es por esto que global_work_size tiene que ser un múltiplo de local_work_size? Si los datos solo requieren 9 elementos de trabajo, ¿cómo puedo aumentarlos a 10 (múltiplo de tamaño_trabajo_local, 5)?
¿Por qué el host no puede asignar la memoria para la matriz de resultados si no sabe cuántos grupos de trabajo ejecutarán el kernel?
Por favor ayuda. He leído todo esto en esto: http://www.openclblog.com/2011/09/work-group-sizes.html
Gracias Tim !! Gracias por responder. :) Entonces, ¿el tamaño de GWG no tiene que ser un múltiplo del tamaño de LWG? – Remy
Para aclarar sí, el tamaño del LWG debe ser un mukltiple o un nulo. De las páginas de Man http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/ –
Muchas gracias :) – Remy