Desmontando el argumento de la latencia.

Comentario original:

Gracias por el post, magnifico.

Ahora un pensamiento desde mi total ignorancia y sinceramente pasando de este pique insano que es saber o intentar saber quien la tiene mas larga.

Si Microsoft ha hecho con Xbox One una tecnologia continuista con su antigua arquitectura de 360 y en esta el esquema era relativamente parecido al nuevo, no seria logico que ellos que tenian acceso a herramientas de monitorizacion supieran en que puntos su sisterma demandara mas anchos de banda, mas puentes de comunicacion y menores latencias hallan implementado todo esto en Xbox One y que esta tenga menos potencia bruta y en cambio mas potencia eficaz que la que en principio de le supone con los numeros en la mano.

Algo asi como un sistema mas orientado a un rendimiento mas constante que a picos de potencia bruta.

Por ejemplo y pensando en eSRAM se puede pensar que el tamaño es pequeño, pero tambien la latencia y que esta puede proporcionar efectos de post-procesados con un impacto en el rendimiento bastante bajo.

El problema de toda argumentación técnica alrededor de la consola de Microsoft es que continuamente muchos sacan el tema de la latencia por aquí, la latencia por allá… es una idea tóxica que se ha ido repitiendo de forma continuada por el hecho que no tiene ningún sustento en la realidad. En primer lugar, Microsoft jamás ha hablado de forma oficial del tema latencia. De En la entrevista que los arquitectos de la consola otorgaron hace unos meses dijeron lo siguiente:

Las GPUs son menos sensibles a la latencia. Nosotros realmente no hemos hecho ninguna declaración sobre la latencia.

El motivo por el cual mucha gente comenta el tema de la latencia y lo relaciona con la ESRAM es por el simple hecho que desconocen como funciona una GPU, la explicación que pondré a continuación es del libro Real Time Rendering ;), se aplica a todas la GPUs independientemente de su arquitectura y es la demostración teórica por el cual cuando la gente empieza a hablar de latencia en relación a la ESRAM de Xbox One no tiene ni idea de lo que esta hablando y ha acabado por contaminar las idea de los demás.

Para ahorrar ancho de banda, muchas arquitectural colocan caches en varias de las etapas, para ocultar la latencia se utiliza a menudo una técnica llamada prefetching. El caching se implementa en un pequeño chip de memoria (unos pocos KB) donde el resultado de las recientes lecturas a textura se almacenan, y son accesidos de forma muy rápida. Dicha memoria  es compartida entre todas las texturas que se encuentrán concurrentemente en uso. Sí los pixeles vecinos necesitan acceder a ese pixel o los cercanos, lo más seguro es que los encuentren en la cache. Esto también se realiza en las CPUs estándar. Sin embargo, colocar los pixeles en la cache toma tiempo y muchas veces se leen bloques de cache enteros al mismo tiempo.ç

Así que, si un pixel no esta en la cache toma un tiempo enorme antes de ser encontrado. Una de las soluciones empleadas por las GPUs hoy en día es ocultar la latencia manteniendo varios fragmentos al vuelo al mismo tiempo. Digamos que el programa shader quiere realizar una instrucción determinada. Si solo mantenemos un fragmento al vuelo, necesitaremos esperar a que el resto se encuentren en la cache de texturas y esto mantendrá todo el pipeline completamente parado. Sin embargo, asumid que podemos mantener 100 fragmentos al vuelo al mismo tiempo. Primero el fragmento 0 pedirá el acceso a la textura. Sin embargo, desde que tomará varios ciclos de reloj antes de que los datos que se han pedido estén en la cache, la GPU ejecuta la misma instrucción para el fragmento 1 y así hasta hacerlo con los 100 fragmentos. Cuando dicha instrucción se ha realizado en esas 100 texturas volvemos otra vez al fragmento 0… por ese tiempo, lo más seguro es que los datos que se habían pedido con anterioridad estarán en la cache y el procesamiento podrá continuar

El resto del comentario ya lo responderé más adelante, ya que he creído importante desmontar este argumento en una entrada pensada para ello.

Saludos.

Anuncios