Image default
GamersNoticiasSoftwareTarjetas de VideoTecnología

AMD revela Fusion System Achitecture y Compute Unit, próxima arquitectura de cómputo en GPU

Esta semana en la Fusion Developer Summit 2011 (FDS 11), conferencia de alto nivel enfocada a los desarrolladores y que se llevó a cabo en la ciudad de Belluvue (Washinston), AMD en voz de su Graphics Chief Technology Officer, Eric Demmers, hizo algunas interesantes revelaciones respecto al enfoque que tendrán sus futuras arquitecturas gráficas para GPU, aunque no revelaron que productos específicos, mencionaron que será el nuevo diseño principal que se materializará dentro de todos los futuros productos de AMD con GPU.

Aunque esto de buenas a primeras es algo difícil de entender y de hilar si no estás familiarizado con la evolución de las arquitecturas gráficas tanto de AMD como NVIDIA, trataremos de explicarlo con simpleza y si tienes bastante tiempo para lectura técnica te sugerimos que leas primero nuestro articulo “Arquitecturas: NVIDIA GeForce GF100 “Fermi” vs ATI Radeon HD 5800 “Cypress”, si ya lo leiste puedes continuar leyendo el presente artículo técnico.

AMD desde varios años ha ido mejorando y evolucionando sus arquitecturas, aunque algunas veces parecen más una mejora que una evolución radical cada vez se apunta más al poder de cómputo de las GPU las que desde algunas generaciones no solo se encargan del apartado grafico, sino que también incluyen cálculos de propósito general y este es el enfoque del presente articulo y de la presentación de AMD que ha hecho énfasis en este aspecto sobre el aspecto grafico y los videojuegos.

Por generaciones AMD ha utilizado un diseño VLIW-5 (Very Long Instruction Word) en sus arquitecturas graficas y de computo de sus GPU, desde las Radeon HD 2900 hasta sus recientes GPU “Barts” (HD 6800 series), introduciendo un diseño VLIW-4 con sus Radeon HD 6900, debido a esta “aparente” poca evolución muchos no esperan mucho de AMD en términos de un nuevo diseño, pero AMD quiere cambiar y redefinir sus arquitectura en virtud de un mejor rendimiento en GPGPU.

Históricamente AMD ha privilegiado o dado prioridad al aspecto gráfico, con el apartado de GPGPU/computo como una funcionalidad secundaria en sus GPU que… sin embargo, en cada generación se ha ido acentuando más y más. Así mientras las primeras funcionalidades de cómputo de propósito general en GPU (GPGPU) fueron introducidas desde las Radeon 1800/1900 series, AMD no ha sido agresiva en estos términos comparado con NVIDIA, es por eso que las GPU de AMD incorporan más Stream Processors que las gráficas NVIDIA, quien desde el núcleo G80 y posteriores ha apostado fuerte por el computo en GPU impulsado y potenciado además por sus tecnologías CUDA y arquitecturas como Fermi.

Pues bien, dada esta situación el sueño de AMD es proveer ahora mucho más poder de cómputo que poder gráfico (nos imaginamos que tampoco descuidará este apartado), esto en todos sus productos gráficos (gama alta – gama baja), la idea es que ahora la GPU actué como un muy poderoso co-procesador para cargas paralelas, dando a AMD una ventaja significativa frente a sus dos rivales, por un lado Intel en lo que se refiere a procesadores con gráficos integrados y NVIDIA en lo que se refiere a productos gráficos, aunque para esto y para lograr un verdadero cómputo heterogéneo (heterogeneous computing) mucho trabajo debe hacerse a nivel de silicio como así también en el soporte de los SO y entornos de desarrollo. Con esto AMD ahora está dando el gran paso para computación heterogénea y el futuro para AMD es lo que la compañía denomina “Fusion System Architecture” (FSA) el cual integra una serie de características de cómputo que podemos ver en la siguiente presentación.

El diseño VLIW (Very Long Instruction Word), utilizado en las actuales y pasadas generaciones gráficas de AMD dirá adiós luego de varios años y generaciones de productos, ahora AMD hará un cambio más radical en el diseño interno de sus arquitecturas para GPU, sean estas integradas o discretas, ahora adoptará lo que ha denominado Compute Unit o Unidad de Computo (CU), el cual hace más énfasis -como su nombre lo indica- en el poder de cómputo, optimizando y rediseñando los componentes internos que hasta ahora se hacían cargo de estas tareas en la GPU.

Así, las próximas GPU AMD, aparentemente tendrán soporte completo (full) para lenguajes de programación de alto nivel como C, C++ y otros lenguajes como el recientemente anunciado C++ Accelerated Massive Parallelism (C++ AMP) de Microsoft, que en resumidas cuentas extiende el lenguaje C++ con soporte para computación heterogénea.

Esto ha obligado sin lugar a dudas a rediseñar las unidades de proceso principales dentro de la GPU, que ahora serán co-procesadores escalares “Scalar coprocessors” (similar a los supercomputadores de 1980, según Demer), las nuevas unidades mezclaran y utilizaran varios elementos y formas de computo como:  MIMD (multiple-instruction multiple-data,) SIMD (single-instruction multiple data) y SMT (simultaneous multithreading), algunos de ellos ya presentes en arquitecturas recientes pero que ahora toman un papel protagónico dentro del re-diseño de las próximas arquitecturas. Este nuevo diseño dejará en el pasado al actual VLIW (Very Long Instruction Word) utilizado por AMD desde las Radeon HD 2000 series.

 

Vector + Scalar

Sin duda los dos elementos principales dentro de las nueva unidad de cómputo será la unidad “Vector” y la unidad “Scalar”, los cuales toman ahora un enfoque más serio en cuanto a las tareas de cómputo. Comparado con NVIDIA que cuando lanzó el G80 se enfocó más en el modo scalar y fue su cambio más radical en cuanto a arquitecturas enfocadas en cómputo de propósito general respecto a las generaciones previas y así hasta llegar al GF100. Ahora AMD ha optado por una solución vector+scalar lo que permite una combinación y flexibilidad de realizar todo tipo de operaciones, facilidad de programación y una alta utilización de las unidades de cómputo.

La unidad de cómputo ahora puede ser vista, por lo tanto, como un procesador totalmente independiente, ya que esta unidad de cómputo posee su propio cache L1 y otros elementos como branch y MSG unit, Control unit , decode, instruction fetch y las propias unidades scalar y vector.

Podríamos decir que la unidad Vector es el elemento primario dentro de la CU (Computer Unit) cuando se trata de números, cada unidad contienen a su vez cuatro núcleos (cores) y puede procesar hasta 4 “wavefronts” en determinado momento. Por otra parte la unidad escalar igual de importante en el diseño general de la arquitectura es la unidad que será responsable de todas las “Pointer operations” como así también los “branching code”. Esta particular combinación recordará los Supercomputadores de Cray de 1980, claro que ahora en una minúscula unidad en lugar de armatostes de 2 metros de alto.

La combinación de esos elementos y el diseño general de cada CU entrega las propiedades de diferentes tipos de unidades, como ya mencionamos al inicio: MIMD (multiple instructions múltiple data) que puede administrar cuatro hilos (threads) por ciclo por vector, a partir de diferentes aplicaciones. Actúa como un SIMD (single instruction multiple data) al igual que la generación previa de GPUs y finalmente SMT (symmetric multi-threading) en el cual todos los 4 núcleos vector pueden trabajar en diferentes instrucciones, y tenemos hasta 40 “waves” ondas activas en cada CU en un momento dado. Como se menciona en el slide, esto soporta también múltiples «asynchronous and independent command streams”. Esencialmente, la unidad es capaz de trabajar en todo tipo de cargas de trabajo a la vez, no importa cuál sea la fuente de los datos o instrucciones.

Debido a que AMD deja de lado las arquitecturas VLIW5/4, y en su lugar utilizan un diseño vector+scalar, esperamos ver un alto grado de utilización de cada unidad de cómputo comparado con las arquitecturas pasadas, también esperamos que la programación sea mucho más fácil.

Cache: Una de los aspectos más detallados por AMD en la conferencia fueron los cambios a nivel de cache y memoria. Cada CU tiene su propio cache L1 divididos en cache de datos, instrucciones y carga/almacenamiento, por otra parte la GPU tendrá cache L2 compartido que será completamente coherente, cada cache L1 tendrá una interfaz de 64-bit con el cache L2, y una vez que escalemos en términos de cantidad o numero de CU y frecuencias de GPU podemos esperar ver múltiples terabytes por segundo de ancho de banda entre los caches de nivel 1 y 2. Por otra parte el cache L1 y los caches de textura son tanto de lectura como de escritura (read/write), comparado con la funcionalidad de sólo lectura de las generaciones previas, esto es un gran cambio no sólo para la eficiencia y rendimiento, también para las distintas necesidades que se requieran de la memoria cache para algunos tipos de cargas de computo serias.

Virtualizacion de Memoria: Es uno de los puntos más importantes en lo que ha revelado AMD dentro de su arquitectura de memorias, en generaciones previas estaban limitadas en este aspecto en que memoria y cache estaban en cada tarjeta de video. Esto genera algunas limitaciones no sólo en contenido gráfico, sino también en escenarios de cómputo. Grandes conjuntos de datos pueden ser un problema y requieren un sistema de virtualizacion de memoria que este separado de la memoria virtual de la CPU. Adoptando la GPU el soporte para memoria virtual x86-64, solucionará muchos problemas de las tarjetas previas.

Esto abre las puertas para nuevas ventajas para las tarjetas gráficas, ahora megatexturas que no encajan en el frame buffer de la tarjeta, pueden ser ahora almacenadas en la memoria virtual, mientras esto no es tan rápido como la memoria onboard, es aun mucho más rápido que cargar las texturas desde el disco duro.

Este sistema de virtualizacion de memoria será compartido entre la GPU discreta como también con los gráficos integrados. La iGPU desde luego tiene acceso al controlador de memoria de la CPU y en los productos basados en Fusion este acceso toma prioridad respecto a la GPU.

Por el lado de las GPU discretas, la memoria virtual será a través de una conexión PCI-E, para que tanto la iGPU como la dGPU trabajen de esta manera, el sistema input/output memory management unit (IOMMU) debe utilizarse y deber ser soportado por el sistema operativo.

Cómputo de doble precisión y Gráficos: El cómputo o cálculo de doble precisión ha estado soportado por las actuales y previas generaciones de productos gráficos de AMD, esta vez no es la excepción y en virtud de la mejora en los aspectos de cómputo de las futuras arquitecturas de AMD, el cómputo de doble precisión ahora viene más potenciado. Por ejemplo el peak de cómputo de doble precisión en generaciones previas (VLIW-5 y VLIW-4) tradicionalmente es 1/5 que lo que se consigue en precisión simple (single precisión). Ahora con las nuevas unidades vector el peak en calculo de doble precisión será de ½ que el cálculo de precisión simple. Desde luego AMD puede manejar este aspecto para incrementar o reducir este rendimiento dependiendo del producto, así por ejemplo en productos profesionales enfocados netamente en el computo de propósito general como las tarjetas FirePro podríamos tener una relación de ½ en doble precisión respecto a precisión simple, pero en las graficas para el mercado de consumo general (Radeons) podríamos tener una relación de ¼.

Gráficos: A pesar de que la presentación de AMD se enfocó en el aspecto de cómputo de sus próximas arquitecturas, no por esto dejarán de lado el apartado gráfico, esencial en el rendimiento en juegos de las tarjetas gráficas de AMD. El rendimiento grafico seguirá siendo uno de los puntos principales dentro de las futuras arquitecturas, las cuales iran mejorando sus componentes tradicionales como unidades ROPS, Z-units, caches, controlador de memoria entre otros elementos para brindar un mejor rendimiento en juegos y en tecnologías emergentes como Eyefinity, 3D etc.

Podríamos ver la primera iteración de productos este Q4 2011 en tarjetas gráficas discretas, aunque no tenemos nada confirmado aun. Los actuales productos basados en AMD Llano están basados en la arquitectura VLIW-5, y tal parece que su sucesor “Trinity” (Bulldozer + iGPU) usará el diseño VLIW-4. Luego de eso podemos esperar que las nuevas partes integradas utilicen esta nueva arquitectura.

Otro de los puntos discutidos en la conferencia es el manejo de físicas (Phyiscs), en este aspecto en lugar de que la dGPU (discrete-GPU) haga ambos trabajos en rendering y físicas, la iGPU (integrated-GPU) en la CPU podría manejar esto. La iGPU tiene la ventaja de estar ubicada en la CPU, compartiendo el mismo controlador de memoria, y accediendo a la memoria principal muy velozmente, esto puede recudir las latencias en un grado significativo comparado con la dGPU haciendo lo mismo vía el bus PCI-E, por su parte la dGPU puede manejar mejor otras operaciones como el aspecto geométrico, sombreado de pixeles (pixel shading), teselacion (tessellation) y otros aspectos relacionados netamente con los gráficos.

One More Thing…:

 

One more thing: Para que vean el serio enfoque que AMD tiene en el poder de computo de sus productos gráficos, casi al cierre de este articulo técnico, nos enteramos de una interesante proyección de AMD y que tiene que ver con el crecimiento exponencial de poder de computo de sus próximos productos basados en su tecnología AMD Fusion.

De acuerdo a Rick Bergman de AMD la computación heterogénea es cada vez más importante en la industria, según él, “es el gran cambio en la industria de los microprocesadores” y que dominará el mercado dentro de los próximos 10 – 20 años. Mientras ahora con el lanzamiento de los productos basados en Llano las APU de AMD pueden ofrecer un poder de computo de 400 GFLOPS en el tamaño de un notebook, incluso menos si pensamos en el tamaño mismo de la APU, el próximo año con Trinity (sucesor de Llano) este poder se incrementará en un 50%, pero lo sorprendente del anuncio de AMD es que para el 2020 la compañía planea ofrecer un poder de computo en sus APU de hasta 10 TeraFLOPS, un dato sin duda impresionante, sin consideramos que actualmente la tarjeta más poderosa de AMD, la Radeon HD 6990 ofrece un poder de computo de 5.1 TeraFLOPS (single-precision), tomando en cuenta sus dimensiones,  que es una tarjeta high-end y que se potencia de 2 GPU. A continuación el slide de AMD (nos excusamos por la calidad, pero lo esencial se aprecia sin problemas).

Artículo técnico preparado por:
Sergio Castillo T.
Cedrik
18-06-2011

Posts relacionados

Review AMD Ryzen 7 9800X3D [Zen5 – AM5]

Mario Rübke

AMD mejora el rendimiento en Llama.cpp y LMStudio con sus procesadores Ryzen AI 300

Mario Rübke

AMD anuncia fecha de lanzamiento de los nuevos Ryzen 9000 X3D, y descuentos en toda la serie Ryzen 9000

Mario Rübke