por
pobrecito hablador
el Jueves, 11 Diciembre de 2008, 21:16h
(#1107486)
Lo que comentas de las peculiaridades de cada arquitectura lo resuelve la librería en tiempo de ejecución, igual que hacen las gráficas con los shaders.
Vamos a ver. Los shaders se programan para ejecutar en GPUs, y aunque se compilen bajo demanda no se compilan en tiempo de ejecución. Es más, que se compile en tiempo de ejecución (Just In Time, me refiero) no hace que el código sea el óptimo cuando se trata de mapear un paralelismo, que el modelo hace explícito, en una arquitectura concreta. Ese es un problema que no está resuelto. Y por ahí es por donde va a caer OopenCL.
Para hacer el paralelismo explícito, ya disponemos de herramientas mucho más sencillas y más extendidas como OpenMP, que hace explícito el mismo tipo de paralelismo que OpenCL. Pero sigue teniendo el mismo problema, no hay compiladores que mapeen ni medio bien ese paralelismo en una arquitectura tan específica como una GPU o Cell.
Re:Opinión a primera vista
(Puntos:0)Vamos a ver. Los shaders se programan para ejecutar en GPUs, y aunque se compilen bajo demanda no se compilan en tiempo de ejecución. Es más, que se compile en tiempo de ejecución (Just In Time, me refiero) no hace que el código sea el óptimo cuando se trata de mapear un paralelismo, que el modelo hace explícito, en una arquitectura concreta. Ese es un problema que no está resuelto. Y por ahí es por donde va a caer OopenCL.
Para hacer el paralelismo explícito, ya disponemos de herramientas mucho más sencillas y más extendidas como OpenMP, que hace explícito el mismo tipo de paralelismo que OpenCL. Pero sigue teniendo el mismo problema, no hay compiladores que mapeen ni medio bien ese paralelismo en una arquitectura tan específica como una GPU o Cell.