OpenGL Multihilo

Comentario original:

Gracias por tu artículo.

Me he leído entero también el de Brad Wardell, excelente y fácil de entender. Me ha dejado en ascuas el último párrafo jeje:

“Pay very very close attention to GDC this year. Even if you’re an OpenGL fan. NVidia, AMD, Microsoft, Intel and Sony have a unified goal. Something is about to happen. Something wonderful.”

¿Alguna idea de a qué se refiere?

Se refiere al uso de múltiples núcleos para generar. los búfers de comandos. El modelo clásico de OpenGL es el siguiente:

Dado que los comandos son generados por un solo núcleo a través de un lista FIFO y no sobre la memoria el resto de núcleos de la CPU en una que sea multinúcleo el resto de núcleos no pueden leer ni escribir sobre el mismo espacio de memoria al mismo tiempo tiempo. ¿Como se soluciona esto? Una de las innovaciones recientes en el campo de las GPUs es el hecho que tanto CPU como GPU comparten ahora mismo el mismo espacio de memoria, esto significa que la CPU puede leer y escribir en el area de la GPU y viceversa.

huma_02

¿Que ventajas tiene esto?

En el nuevo modelo los núcleos de la CPU generan el búfer de comandos directamente sobre la memoria para que la GPU pueda leerlo, por lo que se pueden crear multiples listas de comandos al mismo tiempo a las que la GPU puede acceder. Esto es lo que hace posible el uso de varios núcleos para escribir el búfer de imagen y reducir el tiempo en que se escribe el búfer de comandos para que la GPU lo pueda leer. El AMD Mantle toma ventaja de esta idea, DirectX 12 también tomara ventaja de ello. En el fondo no es más que una aplicación de la división del trabajo.

Anuncios