Hace unos meses, AMD hizo una preview del AMD Vega hablando de que la arquitectura tiene un nuevo rasterizador.

tilevega

Hice una entrada en su día acerca de lo que es el rasterizado. ¿Y que tiene de especial esto? Pues se trata de la adopción por parte de AMD de un rasterizador que ordena la escena en el proceso. Lo cual es ideal para descartar la geometria sobrante por un lado y por el otro poder realizar Tile Rendering… ¿La otra mitad? La comunicación de los RBEs/ROPS con la Cache L2 del sistema.

l2vega

Esto es algo que ya se encontraba en las Nvidia Maxwell (en adelante) y que permite el Tile Rendering de manera «manual». En PC no tiene mucha utilidad realmente pero en consolas si, obviamente dado que no es soportado ni en PS4 Pro ni Xbox One X la utilidad es cero… Ya que si se utilizará y estuviera implementado la compatibilidad hacía atrás con Xbox One y PS4 Pro se rompería.

En el caso concreto de Switch, al ser la GPU de arquitectura Maxwell lo tiene implementado de serie.

tiledcaching1tiledcaching2tiledcaching3

La idea de renderizar por Tiles es la de poder aliviar la carga del Bc y el Bz sobre el ancho de banda de la memoria externa haciendo que estos sean calculados en la Cache L2.

Una vez realizada esta explicación situemonos al día de hoy, momento en que las primeras RX Vega están en manos de los medios y hay algo que ha llamado poderosamente la atención. Ahora bien… Para saber si una GPU rasteriza por tiles o por el método tradicional la gente de Real World Tech invento una herramienta que sirve para comprobar como rasteriza la escena la GPU.¿Cual ha sido la sorpresa? Pues que la RX Vega al contrario de lo que dijeron hace unos meses no rasteriza de la misma manera que las Maxwell en adelante por lo que no implementan el nuevo rasterizador.

VegaFailure.PNG

Lo mejor es lo siguiente, puro control de daños:

El draw-stream binning rasterizer no será siempre el metodo de rasterizado que la GPU Vega utilizará. En vez de ello, esta para complementar los planteamientos posibles en als Radeon de hoy en día. AMD dice que el DSBR es «altamente dinámico y depende del estado» y que la carácteristica es otro camino que se puede tomar a través del hardware que se puede utilizar para mejorar el rendimiento del renderizado…. AMD piensa que este rasterizador ayudará en situaciones donde el rendimiento de la memoria gráfica  se convierta en un vuello de botalla, Tiene también la capacidad de ahorrar energia incluso cuando el camino a la memoria no esta saturado.

Es decir, si estuviese implementado no haría falta una memoria de… 483 GB/s en forma de una ultracara memoria HBM2. El Rasterizador es parte esencial del pipeline gráfico por lo que no puede estar fuera, eso si… La explicación es que hace un bypass y utiliza el rasterizador antiguo. Nvidia ha sido capaz a partir de Maxwell de cambiar el rasterizador pero AMD no ha podido hacerlo. ¿O es que pretenden justificar la memoria HBM2 de alguna manera? Si es así… Entonces… Se explica el motivo de que el Binning Rasterizer este desactivado o no funcione.

Sin el Binning Rasterizer entonces el concepto de poder renderizar desde la Cache L2 desaparece y no tiene sentido ya que se necesita que la escena este ordenada en medio del renderizado y no a finales. Este era el cambio más importante en el AMD Vega respecto a lo que ya teníamos previamente, siendo el otro cambio las nCUs, pero al final lo que tenemos es una Polaris vitaminada… Aunque tampoco es importante desde el momento en que para AMD «Vega» que es GCN5 lo que requiere es que hayan nCUs en la GPU… Del Binning Rasterizer no se dice nada.

¿Y como es que es importante? Pues por el hecho que este es el motivo por el cual Nvidia esta por encima de AMD o uno de los motivos pero en todo caso es de los gordos. Es también la clave por la cual Nvidia gano la licencia de esto…

switch-portable-handheld

El motivo de ello es el ancho de banda, el hecho de tener un Binning Rasterizer y un acceso de los ROPS a la cache L2 hace posible el Tile Rendering por los motivos que he comentado antes. Pero claro, esto en PC donde se puede colocar memoria cara no se nota y AMD no tiene interés en que su arquitectura se utilice en chips de bajo consumo. Precisamente este affair me ha aclarado el motivo por el cual Nintendo ha pasado de AMD a Nvidia. Bueno, en realidad ya lo sabía pero es especialmente significativo porque es el motivo por el cual no estamos viendo una Radeon «Vega» de consumo, por el simple hecho que la arquitectura GCN necesita para funcionar correctamente un enorme ancho de banda (como toda arquitectura de GPU) y el hecho de no tener algo equivalente al Rasterizador que tenía Nvidia colocaba a AMD en una enorme desventaja.

El AMD Vega es un colosal fracaso, estamos hablando de un chip que tiene un tamaño que es el doble que el de un GP104 y consume lo mismo y saca el mismo rendimiento. AMD esta gastando demasiados recursos en el hardware a resolver los problemas generales de la planificación con tal de que las burbujas que se producen en el pipeline de las Compute Units queden cubiertos. Es decir, con Vega han gastado una cantidad enorme de recursos en elementos que no hacen que los gráficos se vean mejores sino en intentar sacar el máximo jugo posible a una arquitectura de la que no le puede sacar más jugo. En vez de hacer borrón y cuenta nueva con una nueva arquitectura gráfica que reemplace a la GCN después de.. ¡5 años! Nos encontramos que la gran alternativa a Nvidia es un chip con el doble de tamaño y consumo que la GP104… Esto es un fracaso colosal pero es aún más colosal si tenemos en cuenta que el Binning Rasterizer no lo han conseguido hacer funcionar. ¿Que tenemos? ¿Espacio desaprovechando en el chip?

¿La memoria HBM2? No es ninguna ventaja desde el momento en que Nvidia la esta utilizando en la gama de computación con los Tesla P100 y los Tesla V100… Los cuales para la computación cientifíca son mucho más adecuados que la GPUs de AMD… ¿El motivo? Nvidia tiene dos arquitectura gráficas diferenciadas para cada mercado. Por ejemplo de la gama Pascal la P100 que es de los Tesla tiene la siguiente unidad SM (equivalente a una Compute Unit)

gp100_sm_diagram-624x452

En cambio en la gama de consumo dicha unidad es diferente:

nvidiasm

AMD no tiene una gama de computación de alto rendimiento. Pero de repente nos intentan vender que esta Radeon Pro Vega no es una gama de consumo sino una gama profesional que blablabla… No señores no, el chip es un fracaso absoluto que ha dejado a AMD muy tocada y no me extrañaría que la gama de consumo doméstica de AMD se recortase aún más de lo que esta e incluso se recortase a la mitad. AMD no tiene absolutamente nada para competir contra Nvidia, nada… El AMD Vega es un fracaso con mayusculas y todo por el hecho que AMD no ha querido crear una nueva arquitectura desde cero.

¿El otro problema? Los drivers, el motivo por el cual muchos fabricantes no quieren ensamblar nada con AMD es por los jodidos drivers que son pésimos. Pero AMD no quiere hacer nada en ese caso y es un problema que tienen desde hace eones. En Xbox One y PS4 esto no afecta porque tanto Sony como Microsoft han hecho sus propias modificaciones en el procesador de comandos y se han encargado de… Bueno, de controlar todo el software de sus consolas pero… ¿En PC? En PC el tema de los drivers con AMD es de risa en comparación con el de Nvidia, hay una falta de profesionalidad increible.

¿Cual es esa falta de profesionalidad? Cuando una empresa no quiere hacer su trabajo es cuando de repente aparece en su marketing el termino «Abierto» que es una forma de decir… «No queremos repararlo nosotros sino que lo tiene que hacer la comunidad» y lo peor es que el engaño funciona porque muchos imbéciles neuronales han acabado asumiendo la mentira de que si algo es «abierto» entonces es bueno. La pregunta es… ¿Cuanta gente tiene la capacidad de hacer controladores de calidad para algo tan complejo como una GPU? Pero no os preocupéis, AMD esta aquí creando procesadores de comandos «inteligentes» con tal de no tener que crear drivers de calidad y lo venden con la excusa de descargar la CPU de su trabajo en crear y gestionar las listas de comandos.

En Polaris se inventaron una pieza llamada Hardware Scheduler, una especie de controlador de la gráfica por hardware que no esta utilizando nadie por el pésimo resultado que da en comparación a tener un controlador de calidad.

AMD-Radeon-RX-480-Polaris-10_Hardware-Scheduler-HWS

En PS4 Pro y Xbox One X esta pieza esta inaccesible, no por el hecho que rompa la compatibildiad sino por el hecho que el rendimiento gráfico baja en picado de mala manera cuando se utiliza. De ahí a que e utilice el pipeline convencional… ¿Y que han hecho con Vega? Ir más allá.

amdvega1

El HWS y el IWD son piezas que ocupan un enorme espacio en el total del chip… ¿Para que? Pues para que Nvidia no tenga que realizar drivers de calidad. Precisamente la otra GPU con unos 64 CUs en el mercado es la ya veterana AMD Fiji/Fury que bajo un proceso de 28nm tenía un tamaño de unos 596mm^2… ¿El tamaño del Vega? No son los 473.4mm^2 que comente ayer… Son unos 564mm^2 y con elementos que ocupan espacio que no sirven para nada:

  • El Binning Rasterizer esta desactivado porque no funciona bien o esta incompleto. Quien sabe, el caso es que esta ahí y no se utiliza.
  • El cableado hacía la Cache L2 pese a seguir estando… Su mayor utilidad era el rasterizado (que no renderizado) por tiles y ya no se puede al no haber el Binning Rasterizer.
  • El HWS (aparecido en Polaris) y el IWD son dos piezas inútiles en el fondo que están ahí porque a AMD no le sale de los cojones invertir en software, en controladores de calidad. Para colmo no hacen bien su trabajo.

¿El resultado? Un chip el doble de grande que la competencia y que consume el doble… Un sinsentido con patas y algo que se recordará durante años como unos de los mayores fiascos en cuanto a hardware que llega en un momento en que puede dejar a AMD muy tocada.