AMD RX Vega

En el GDC AMD mostró varias demos de Vega y el potencial impacto del HBCC. El HBCC se aprovecha del hecho que los videojuegos suelen reservar más memoria de la que realmente usan, así pues con el HBCC se puede cachear los datos que se vayan a usar realmente y el resto dejarlos en la memoria principal del PC, evitando transferencias inútiles a través del bus PCIe y ahorrando memoria en la tarjeta aceleradora de gráficos y cómputo.
En la demo del GDC AMD limitó a 2 GiB de VRAM una Vega con 4 GiB mientras ejecutaban el Deus Ex. Dicho juego está pensado para ejecutarse con 4 GiB a ese nivel de detalle y resolución. Con el HBCC activado el juego se mostraba totalmente suave mientras que sin el HBCC iba a trompicones. El framerate mínimo aumentó en 2x con respecto a Deus Ex corriendo con la mitad de VRAM y el HBCC desactivado.

Así es como estaba conectada antes la memoria

Nueva disposición de la jerarquía de memoria en Vega

Antes todo pasaba por el controlador de memoria, y éste iba a la memoria principal de la tarjeta gráfica. En dicha memoria principal la CPU del host (el ordenador), por orden del driver, colocaba previamente lo que hiciera falta para la ejecución de los cálculos en la GPU.
Con la nueva jerarquía, se puede ver como la caché L2 pasa a ser cliente independiente del controlador de memoria y puede acceder directamente a la RAM del sistema sin pasar por la memoria integrada en la GPU (High Bandwidth Cache, pseudónimo de la memoria HBM2 que incorpora Vega). Con el High Bandwidth Controller se puede esocger servir la L2 desde la HBCache o desde algún otro periférico del sistema host. El controlador preferiblemente buscará primero en la HBCache el dato, si no está servirá la petición desde el exterior y cacheará esa información en la HBCache.

Memoria usada por el juego versus memoria reservada


Esto tiene una serie de ventajas: un menor consumo de memoria y poder dedicar el sobrante a otras cosas como cálculos físicos. O crear escenas más complejas con más objetos y/o texturas de mayor resolución. O aplicar efectos de iluminación con mayor consumo de memoria. El driver ya no tiene que reservar X cantidad de memoria por si acaso y transferirlo todo a la GPU para su ejecución. El HBCController se encarga de manejar la VRAM de la tarjeta como si fuera una caché.

AMD no dio todos los detalles del HBCC, así que aún faltan cosas por saber.
Obviamente también hay que contar con las mejoras de la NCU que son desconocidas más allá de tener cálculo mixto (mezclar coma flotante de 8, 16 y 32 bits) y un incremento en IPC máximo de 2x.
Con el cálculo mixto se permite rebajar la precisión de las operaciones de coma flotante de manera que necesitan menos bits. Así pues, se pueden poner más instrucciones en ejecución aunque con menos precisión cada una. Esto es útil en varios ámbitos. En el caso de los gráficos, se pueden representar mallas de elementos con mucha densidad como cabello, cuyo detalle individual no importa, pero sí que importa que el conjunto dé una sensación más realista.

Demo de la GDC mostrando lo que es posible con Rapid Packet Math

Vega incorpora también Tiled Rendering como ya implementó NVIDIA en Maxwell y Pascal.


Esto permite explotar mejor la jerarquía de memoria al dividir en cuadrantes la imagen a mostrar, ya que se renderiza cuadrante a cuadrante lo que va llegando de las etapas anteriores de «geometría» y «eliminación de píxeles que no se verán en pantalla» (polígonos tapando a otros polígonos). Hay reutilización de datos en la caché. De otro modo se envía todo el fotograma memoria principal y luego se vuelve a buscar en memoria principal para hacer el render del tirón.

Otras cosas presentadas por AMD en el GDC incluyen Liquid Sky, el equivalente a GeForce Now. Esto es posible gracias al soporte de virtualización incluido en Vega, permitiendo compartir la GPU entre varias máquinas virtuales.
También se hizo público un acuerdo entre AMD y Bethesda para optimizar los próximos lanzamientos de esta compañía para Vega y Ryzen.

Comentarios