por
pobrecito hablador
el Jueves, 11 Diciembre de 2008, 21:52h
(#1107504)
Recuerda que no es en tiempo de compilación es en tiempo de ejecución. El compilador no interviene aquí. NADA que ver con openmp en la que es el compilador quien paraleliza. Te recomiendo que leas las especificaciones que se han publicado esta mañana. Vienen incluso con ejemplos.
por
pobrecito hablador
el Jueves, 11 Diciembre de 2008, 22:31h
(#1107519)
Ya he leído las especificaciones. OpenCL es solo otro modelo más. Me da igual que la compilación sea estática o dinámica, eso no hace que se adapte mejor a las capacidades de cada unidad de proceso, solo hace que sea posible hacer ciertas optimizaciones que no influyen para nada en el mapeado que se hace del paralelismo. ¿En qué influye que se compile de forma dinámica para utilizar mejor o peor (o en absoluto) la memoria compartida? ¿En qué influye que se compile de forma dinámica a la hora de vectorizar el código? ¿En qué influye cuando se tiene que buscar la secuencia de shuffle óptima para SSE? Y así, todo lo que quieras. Si todos esos pequeños detalles no fuesen importantes a la hora de hacer eficiente un código en una GPU o donde sea, pues el problema estaría resuelto. Pero cuando eso va a ser la diferencia entre que te vaya bien o no te sirva para nada, lo único que haces es dar vueltas al problema real, al problema que hay debajo.
PD: OpenMP también toma decisiones en tiempo de ejecución (el número de hilos a lanzar, la distribución de los hilos, etc, se puede hacer en tiempo de ejecución).
Re:OpenCL NO es otro GPGPU
(Puntos:0)Re:OpenCL NO es otro GPGPU
(Puntos:1, Informativo)PD: OpenMP también toma decisiones en tiempo de ejecución (el número de hilos a lanzar, la distribución de los hilos, etc, se puede hacer en tiempo de ejecución).