viernes, 6 de enero de 2017

Arquitectura AMD VEGA anunciada, conócela al detalle

Toca dar la bienvenida a VEGA, la arquitectura gráfica tope de gama de AMD, la cual ha visto cómo hereda el nombre común de α Lyr, una estrella situada a unos 25 años luz de nuestro Sol, y considerada por la comunidad científica como la “segunda estrella más importante en el cielo después del Sol“. A través de los siglos, los datos de la observación de esta estrella se ha utilizado para hacer grandes descubrimientos en el campo de la astrofísica. También ganó se ganó un lugar entre varias culturas y mitologías.

Es por ello que AMD ha decidido darle dicho nombre a su procesador gráfico de próxima generación comparándolo con este majestuoso cuerpo azul celeste,
pues estamos ante la arquitectura de alto rendimiento más importante desarrollada AMD después de la microarquitectura Zen, que buscará que AMD pueda resurgir cual ave fénix en el mercado de los procesadores.


Con VEGA comienza la 5ª generación de la arquitectura Graphics CoreNext, una nueva iteración de la maquinaria interna de las gráficas de AMD, pero todo ello con un diseño completamente nuevo para la GPU. Las GPUs seguirán empleando unidades de computación GCN, pero las incrementarán con varios componentes nuevos antes vistos. Esto mejorará la eficiencia del chip pese a hacer frente a gráficos complejos y cargas de trabajo generales de procesamiento.

La idea detrás de VEGA es hacer frente a las cargas de trabajo emergentes, y esto se traduce en dejar atrás el estancamiento en resoluciones obsoletas como los 1080p a resoluciones populares como son los 2K y 4K que exigen un aumento proporcional en el rendimiento de la GPU. Además, la carga de trabajo requiere optimización a nivel de silicio, por lo que no requiere e optimizaciones mediante software. Esto significa dar a la GPU la capacidad de aprender la forma en que una aplicación 3D se comporta, y le permite optimizarse a sí misma a la aplicación ejecutada. Para ello AMD ha añadido un segundo set de memoria.


La GPU también necesita capacidades de procesamiento de geometría expandida para hacer frente al cada vez mayor realismo en las escenas 3D fotorrealistas actuales. Para trabajar la tremenda cantidad de cálculos matemáticos que entra en ella, la GPU necesita un nuevo diseño de la unidad de cálculo con un rendimiento adicional. Por último, necesita un motor de píxeles actualizado que lo coloque todo para dibujar la escena en 3D. AMD afirma haber realizado grandes cambios en las cuatro áreas con VEGA.

Gestión de memoria mejorada

Ahora podemos explicar los diagramas filtrados esta mañana. No es un diagrama típico dle die, ni siquiera es el diseño del módulo multi-chip que algunas de las primeras GPUs VEGA serán, sino más bien una arquitectura de memoria completamente renovada, que asegura que los datos se mueven sin problemas dentro y fuera de la GPU y que los valiosos recursos no se pierdan en la búsqueda de datos de la máquina host.

Las GPUs de AMD han sido tradicionalmente dotadas de una gran cantidad de ancho de banda de memoria con amplias anchuras de bus de memoria, sin embargo, AMD cree que hay margen para mejorar la forma en que la GPU hace malabarismos entre el host y su memoria de video local.

AMD considera que existe una disparidad entre la asignación de memoria y el acceso real a la memoria por parte de las aplicaciones. Una aplicación podría cargar recursos que encuentre relevantes para la escena 3D que está procesando, pero no acceder a ella en todo momento. Esta disparidad se alimenta de memoria valiosa, perjudica el ancho de banda de memoria, y desperdicia ciclos del reloj a la hora de intentar mover datos.

Normalmente, el equipo de desarrollo de controladores de gráficos colabora con los desarrolladores de juegos para minimizar este fenómeno y rectificarlo a través de parches de juegos y actualizaciones de controladores. AMD indica que esto se puede corregir a nivel de hardware. AMD llama a esto “movimiento adaptativo de datos de grano fino” (Adaptive fine-grained data movement). Es una pipeline de asignación de memoria comprensiva que detecta la relevancia de los datos, y se mueve de forma preventiva a la memoria física relevante, o difiere el acceso.


Sacar algo así requiere nuevos componentes de hardware que no se encuentran en ninguna GPU AMD vista antes. Comienza con una memoria caché rápida que se encuentra a un nivel por encima de la caché L2 tradicional, pero es suficientemente grande y tiene una latencia extremadamente baja. Este caché es un dado de silicio separado sentado sobre el interposer, el sustrato de silicio que conecta el chip GPU con las los apilamientos de memoria. AMD llama a esto el controladora caché de memoria de alto ancho de banda (High Bandwidth Cache Controller – HBCC). Los controladores de memoria convencionales de la GPU no interactúan con esta memoria caché, pero un controlador dedicado de caché de alto ancho de banda (HBCC), ubicado en la matriz de la GPU, lo maneja. Este caché no tiene nada que ver con la memoria de alto ancho de banda HBM2.


El HBCC tiene acceso directo a la otra memoria a lo largo del pipeline/tubería de memoria, incluida la memoria de vídeo, la memoria del sistema, etc. Tiene su propio espacio de direcciones virtuales de 512 TB que está aislado del espacio de direcciones general de la máquina. La GPU utiliza el HBMC para amortiguar y suavizar el movimiento de datos entre la máquina host y la GPU. Este enfoque garantizaría que la GPU tenga que gastar menos recursos en la obtención de datos irrelevantes y mejora en gran medida la utilización del ancho de banda de memoria.

La razón de un espacio de direcciones virtual tan grande es la misma que encontramos en una CPU. Los directorios se pueden asignar de manera más eficiente con la unidad de gestión de memoria en la GPU, que gestiona la asignación virtual a física y también posibilita mover páginas de memoria entre capas de almacenamiento, similar a cómo funciona el archivo de paginación de Windows.

También, tenemos NVRAM. Esto significa que la GPU tiene la capacidad de interactuar directamente con la memoria NAND Flash o 3D X-Point de un SSD sobre una conexión PCIe localizada, lo que le da un scratchpad rápido, lo que ayuda a trabajar con conjuntos de datos gigantescos. El puerto de “Red” permite que los fabricantes de tarjetas gráficas agreguen PHYs de red directamente a la tarjeta (ayudarían a renderizar granjas). De esta manera, AMD está preparando un silicio común para diversas aplicaciones (gráficos de consumo, gráficos profesionales y granjas de renderizado).

Todo esto contará con el respaldo de la memoria HBM2, que viene con ocho veces la densidad máxima por pila, y el doble del ancho de banda respecto a la memoria HBM1, que debutó con la Radeon R9 Fury X. En teoría, se podrán emplear hasta 32 GB de memoria a través de cuatro pilas, eliminando la limitación de 4 GB por pila de HBM1.

Geometría de Próxima Generación, Cálculo y Pixel Engine

AMD mejoró la maquinaria encargada del procesamiento de la geometría disponible en las generaciones anteriores con VEGA. La tubería/pipeline de geometría programable de nueva generación tiene más de dos veces el rendimiento máximo por reloj. VEGA ahora soporta shaders primitivos (primitive shaders), además del contemporary vertex y geometry shader. AMD también ha mejorado la forma en que distribuye las cargas de trabajo entre la geometría, el cálculo y los motores de píxeles.

Un sombreador primitivo es un nuevo tipo de sombreado de bajo nivel que le da al desarrollador más libertad para especificar todas las etapas de sombreado que desea usar y ejecutarlas a una velocidad mayor porque ahora están desacopladas del modelo tradicional de shader DirectX. AMD también tiene la capacidad de utilizar su conductor de gráficos para predefinir los casos en un juego, en el cual un número de shaders de DirectX pueden ser sustituidos por un solo shader primitivo para un funcionamiento mejorado.


La Unidad de Cálculo (CU) es en esencia una maquinaria de trituración de números fuertemente paralelizada de la GPU. Con VEGA, AMD mejoró la funcionalidad de las CUs, que ahora llama NCUs (unidades de computación de próxima generación – Next Generation Compute Engine), añadiendo soporte para operaciones súper simples de 8 bits, además de las operaciones de 16 bits (FP16) introducidas con Polaris y las operaciones convencionales de coma flotante de simple y doble precisión que apoyan a las generaciones más antiguas. El soporte para operaciones de 8 bits permite a los desarrolladores de juegos simplificar su código, por lo que si deja su huella dentro de la memoria del espacio de direcciones de 8 bits, 512 de ellos pueden ser despedazados mediante el ciclo de reloj.


AMD también introdujo una nueva característica llamada “Rapid Packed Math” en la que agrupa varias operaciones de 16 bits entre registros de 32 bits para realizar trabajos más sencillos por reloj. Gracias a estas mejoras, la arquitectura  VEGA NCU es capaz de realizar cuatro veces las operaciones por ciclo de reloj respecto a la generación anterior, así como hacerlo al doble de la velocidad del reloj. AMD ha dado vida a una memoria de ancho de banda de ahorro sin pérdida de algoritmos de compresión. Por último, AMD mejoró el motor de píxeles (Pixel Engine) con una nueva generación de rasterizador binning. Esto permite conservar los ciclos de reloj, lo que ayuda con la localidad de la memoria caché en la memoria y la huella de memoria.


Terminamos indicando que AMD cambió la jerarquía de la GPU de una manera que mejora el rendimiento de las aplicaciones que utilizan sombreado diferido. La tubería/pipeline de geometría, el motor de cálculo y el motor de píxeles, que salen de los ROPs (caché L1), ahora están vinculados a la memoria caché L2. Anteriormente, los motores de píxeles y textura tenían acceso de memoria no coherente en el que el motor de píxeles escribía al controlador de memoria.


Saludos.

No hay comentarios :

Publicar un comentario