TeraScale es el nombre en clave de una familia de microarquitecturas de unidades de procesamiento de gráficos desarrolladas por ATI Technologies / AMD y su segunda microarquitectura que implementa el modelo de sombreado unificado después de Xenos . TeraScale reemplazó las antiguas microarquitecturas de tubería fija y compitió directamente con la primera microarquitectura de sombreador unificado de Nvidia llamada Tesla . [1] [2]
TeraScale se utilizó en HD 2000 fabricado en 80 nm y 65 nm , HD 3000 fabricado en 65 nm y 55 nm, HD 4000 fabricado en 55 nm y 40 nm, HD 5000 y HD 6000 fabricados en 40 nm. TeraScale también se utilizó en las unidades de procesamiento acelerado de AMD con nombres en código "Brazos", "Llano", "Trinity" y "Richland". TeraScale incluso se encuentra en algunas de las marcas de tarjetas gráficas más exitosas.
TeraScale es una arquitectura VLIW SIMD , mientras que Tesla es una arquitectura RISC SIMD, similar al sucesor de TeraScale, Graphics Core Next . TeraScale implementa HyperZ . [3]
Un generador de código LLVM (es decir, un compilador back-end) está disponible para TeraScale, [4] pero parece faltar en la matriz de LLVM. [5] Por ejemplo, Mesa 3D hace uso de él.
En SIGGRAPH 08 en diciembre de 2008, el empleado de AMD, Mike Houston, describió parte de la microarquitectura de TeraScale. [6]
En FOSDEM09, Matthias Hopf, del socio tecnológico de AMD, SUSE Linux, presentó una diapositiva sobre la programación del controlador de código abierto para el R600. [7]
Las arquitecturas de GPU anteriores implementaban canalizaciones fijas, es decir, había distintos procesadores de sombreado para cada tipo de sombreado . TeraScale aprovecha muchos procesadores de sombreado flexibles que se pueden programar para procesar una variedad de tipos de sombreadores, lo que aumenta significativamente el rendimiento de la GPU (dependiendo de la combinación de instrucciones de la aplicación, como se indica a continuación). El núcleo R600 procesa sombreadores de vértices, geometría y píxeles como se describe en la especificación Direct3D 10.0 para Shader Model 4.0, además de compatibilidad total con OpenGL 3.0. [8]
La nueva funcionalidad de sombreado unificado se basa en una arquitectura de palabra de instrucción muy larga (VLIW) en la que el núcleo ejecuta operaciones en paralelo. [9]
Un grupo de sombreadores está organizado en 5 unidades de procesamiento de flujo. Cada unidad de procesamiento de flujo puede retirar una instrucción MAD (o ADD o MUL) de punto flotante de precisión simple terminada por reloj, producto escalar (DP y carcasa especial combinando ALU) y ADD entero. [10] La quinta unidad es más compleja y además puede manejar funciones trascendentales especiales como el seno y el coseno . [10] Cada grupo de sombreadores puede ejecutar 6 instrucciones por ciclo de reloj (pico), que constan de 5 instrucciones de sombreado más 1 rama. [10]
En particular, la arquitectura VLIW trae consigo algunos desafíos clásicos inherentes a los diseños VLIW, a saber, el de mantener un flujo de instrucciones óptimo. [9] Además, el chip no puede coemitir instrucciones cuando una depende de los resultados del otro. El rendimiento de la GPU depende en gran medida de la combinación de instrucciones que utiliza la aplicación y de qué tan bien el compilador en tiempo real del controlador puede organizar dichas instrucciones. [10]
El núcleo R600 incluye 64 grupos de sombreadores, mientras que los núcleos RV610 y RV630 tienen 8 y 24 grupos de sombreadores respectivamente.
TeraScale incluye múltiples unidades capaces de realizar teselación . Son similares a las unidades programables de la GPU Xenos que se utiliza en la Xbox 360.
La teselación se especificó oficialmente en las API principales a partir de DirectX 11 y OpenGL 4. Las GPU basadas en TeraScale 1 (series HD 2000, 3000 y 4000) solo son compatibles con Direct3D 10 y OpenGL 3.3 y, por lo tanto, implementan un principio de teselación diferente que utiliza API específicas del proveedor. extensiones. [11] Las GPU basadas en TeraScale 2 (comenzando con la serie Radeon HD 5000 ) fueron las primeras en cumplir con la técnica de teselación Direct3D 11 y OpenGL 4.0. [12] Aunque el teselado TeraScale 1 tiene un diseño más simple, AMD lo describe como un subconjunto del estándar de teselación posterior. [13]
Las unidades de teselado TeraScale permiten a los desarrolladores tomar una malla poligonal simple y subdividirla utilizando una función de evaluación de superficie curva. Existen diferentes formas de teselación, como superficies Bézier con N-patches , B-splines y NURBS , y también algunas técnicas de subdivisión de la superficie, que suelen incluir un mapa de desplazamiento de algún tipo de textura. [14] Básicamente, esto permite aumentar drásticamente la densidad de polígonos de un modelo simple con pocos polígonos en tiempo real con un impacto muy pequeño en el rendimiento. Scott Wasson de Tech Report señaló durante una demostración de AMD que el modelo resultante era tan denso con millones de polígonos que parecía sólido. [9]
El teselador TeraScale recuerda a ATI TruForm , la marca de una de las primeras unidades de teselación de hardware utilizada inicialmente en la Radeon 8500 . [15]
ATI TruForm recibió poca atención por parte de los desarrolladores de software. Algunos juegos (como Madden NFL 2004 , Serious Sam , Unreal Tournament 2003 y 2004 , y extraoficialmente Morrowind ), incluían soporte para la tecnología de teselación de ATI. Una adaptación tan lenta tiene que ver con el hecho de que no era una característica compartida con las GPU de NVIDIA, ya que éstas habían implementado una solución de teselación competitiva utilizando parches Quintic-RT que habían logrado aún menos soporte por parte de los principales desarrolladores de juegos. [16] Dado que la GPU de Xbox 360 se basa en la arquitectura de ATI, Microsoft vio la teselación de superficies acelerada por hardware como una característica importante de la GPU. Un par de años más tarde, la función de teselación se volvió obligatoria con el lanzamiento de DirectX 11 en 2009. [14] [17]
Si bien el principio de teselación introducido con TeraScale no formaba parte de los requisitos de OpenGL 3.3 o Direct3D 10.0, y competidores como la serie GeForce 8 carecían de hardware similar, Microsoft ha agregado la función de teselación como parte de sus planes futuros para DirectX 10.1. [17] Finalmente, Microsoft introdujo la teselación como una capacidad requerida no con DirectX 10.1 sino con DirectX 11. [18]
El procesador geométrico GCN es la solución más actual de AMD (que adquirió el negocio de GPU de ATI) para realizar teselación utilizando la GPU.
Aunque la R600 supone un cambio significativo con respecto a diseños anteriores, todavía comparte muchas características con su predecesora, la Radeon R520 . [9] El procesador de despacho Ultra-Threaded es un componente arquitectónico importante del núcleo R600, tal como lo era con las GPU Radeon X1000. Este procesador gestiona una gran cantidad de subprocesos en vuelo de tres tipos distintos (vértice, geometría y sombreadores de píxeles) y cambia entre ellos según sea necesario. [9] Con una gran cantidad de subprocesos administrados simultáneamente, es posible reorganizar el orden de los subprocesos para utilizar de manera óptima los sombreadores. En otras palabras, el procesador de despacho evalúa lo que sucede en las otras partes del R600 e intenta mantener la eficiencia del procesamiento lo más alta posible. También hay niveles inferiores de gestión; Cada conjunto SIMD de 80 procesadores de flujo tiene su propio secuenciador y árbitro. El árbitro decide qué hilo procesar a continuación, mientras el secuenciador intenta reordenar las instrucciones para obtener el mejor rendimiento posible dentro de cada hilo. [9]
La textura y el resultado final a bordo del núcleo R600 son similares pero también distintos del R580. R600 está equipado con 4 unidades de textura que están desacopladas (independientes) del núcleo de sombreado, como en las GPU R520 y R580. [9] Las unidades de salida de renderizado (ROP) de la serie Radeon HD 2000 ahora realizan la tarea de anti-aliasing multimuestra (MSAA) con cuadrículas de muestra programables y un máximo de 8 puntos de muestra, en lugar de usar sombreadores de píxeles como en la serie Radeon X1000 . También es nueva la capacidad de filtrar texturas FP16, populares entre la iluminación HDR , a máxima velocidad. ROP también puede realizar filtrado trilineal y anisotrópico en todos los formatos de textura. En R600, esto totaliza 16 píxeles por reloj para texturas FP16, mientras que las texturas FP32 de mayor precisión filtran a la mitad de la velocidad (8 píxeles por reloj). [9]
Las capacidades de suavizado son más sólidas en el R600 que en la serie R520. Además de la capacidad de realizar 8× MSAA, en comparación con 6× MSAA en el R300 al R580, el R600 tiene un nuevo modo de filtro antialiasing personalizado (CFAA). CFAA se refiere a una implementación de filtros sin cuadro que analizan los píxeles alrededor del píxel particular que se está procesando para calcular el color final y el suavizado de la imagen. [10] CFAA se realiza mediante sombreador, en lugar de en ROP. Esto mejora enormemente la programabilidad porque los filtros se pueden personalizar, pero también puede generar posibles problemas de rendimiento debido al uso de recursos de sombreado. A partir del lanzamiento del R600, CFAA utiliza filtros de carpa anchos y estrechos. Con esto, las muestras del exterior del píxel que se está procesando se ponderan linealmente en función de su distancia desde el centroide de ese píxel, y la función lineal se ajusta según el filtro ancho o estrecho elegido. [10]
Los controladores de memoria se conectan a través de un bus de anillo bidireccional interno enrollado alrededor del procesador. En Radeon HD 2900, es un bus de anillo bidireccional de 1024 bits (lectura de 512 bits y escritura de 512 bits), con 8 canales de memoria de 64 bits para un ancho total de bus de 512 bits en el 2900 XT.; [9] en Radeon HD 3800, es un bus de anillo de 512 bits; en Radeon HD 2600 y HD 3600, es un bus en anillo de 256 bits; En Radeon HD 2400 y HD 3400, no hay bus de anillo.
La serie experimentó una actualización de media generación con variantes de contracción del troquel (55 nm): RV670, RV635 y RV620. Todas las variantes son compatibles con PCI Express 2.0, DirectX 10.1 con funciones Shader Model 4.1, ATI Unified Video Decoder (UVD) dedicado para todos los modelos [19] y tecnología PowerPlay para tarjetas de video de escritorio. [20]
Excepto la serie Radeon HD 3800, todas las variantes admitían 2 salidas DisplayPort integradas y admitían pantallas de 24 y 30 bits para resoluciones de hasta 2560 × 1600. Cada salida incluía 1, 2 o 4 carriles por salida, con una velocidad de datos de hasta 2,7 Gbit/s por carril.
ATI afirmó que la compatibilidad con DirectX 10.1 puede mejorar el rendimiento y la eficiencia de procesamiento con un error de redondeo reducido (0,5 ULP en comparación con el error promedio de 1,0 ULP como error tolerable), mejores detalles y calidad de imagen, iluminación global (una técnica utilizada en películas animadas y más mejoras en los sistemas de juegos de consumo, brindando así una experiencia de juego más realista. [21] )
(ver lista de chips en esas páginas)
TeraScale 2 (VLIW5) se introdujo con las GPU Radeon HD serie 5000 en la generación "Evergreen".
En HPG10, Mark Fowler presentó el "Evergreen" y afirmó que, por ejemplo, 5870 (Cypress), 5770 (Juniper) y 5670 (Redwood) admiten una resolución máxima de 6 veces 2560×1600 píxeles, mientras que el 5470 (Cedar) admite 4 veces 2560×. 1600 píxeles, importante para la compatibilidad con múltiples monitores AMD Eyefinity . [22]
Con el lanzamiento de Cypress , la arquitectura del motor de gráficos Terascale se ha actualizado con el doble de núcleos de flujo, unidades de textura y unidades ROP en comparación con el RV770. La arquitectura de los núcleos de transmisión prácticamente no ha cambiado, pero agrega soporte para capacidades DirectX 11/ DirectCompute 11 con nuevas instrucciones. [23] También similar al RV770, cuatro unidades de textura están vinculadas a 16 núcleos de flujo (cada uno tiene cinco elementos de procesamiento, lo que hace un total de 80 elementos de procesamiento). Esta combinación se conoce como núcleo SIMD .
A diferencia de su predecesora Radeon R700 , como DirectX 11 exige un control total del desarrollador sobre la interpolación, se eliminaron los interpoladores dedicados, confiando en su lugar en los núcleos SIMD. Los núcleos de flujo pueden manejar la instrucción fusionada de multiplicación y suma (FMA) de mayor precisión de redondeo tanto en precisión simple como doble, lo que aumenta la precisión sobre la multiplicación y suma (MAD) y cumple con el estándar IEEE 754-2008 . [24] La suma de instrucciones de diferencias absolutas (SAD) se ha agregado de forma nativa a los procesadores. Esta instrucción se puede utilizar para mejorar en gran medida el rendimiento de algunos procesos, como la codificación y transcodificación de vídeo en el motor 3D. Cada núcleo SIMD está equipado con 32 KiB de datos locales compartidos y 8 kiB de caché L1, [23] mientras que todos los núcleos SIMD comparten 64 KiB de datos globales.
Cada controlador de memoria se vincula a dos ROP cuádruples , uno por canal de 64 bits, y una caché L2 dedicada de 512 KiB. [23]
AMD PowerPlay es compatible, consulte allí.
TeraScale 3 (VLIW4) reemplaza los diseños VLIW de 5 vías anteriores por un diseño VLIW de 4 vías. El nuevo diseño también incorpora una unidad de teselación adicional para mejorar el rendimiento de Direct3D 11.
TeraScale 3 se introduce en las tarjetas gráficas de la marca Radeon HD 6900 y también se implementa en las APU Trinity y Richland .
AMD PowerTune, escalado dinámico de frecuencia para GPU, se introdujo con la serie Radeon HD 6900 el 15 de diciembre de 2010 y ha experimentado un desarrollo continuo, como se documenta en algunas revisiones de AnandTech . [25] [26] [27] [28]
En HPG11 en agosto de 2011, los empleados de AMD , Michael Mantor (arquitecto senior) y Mike Houston (compañero arquitecto) presentaron Graphics Core Next , la microarquitectura que sucede a TeraScale. [29]
1 Los chips Duo como R680 (2x RV670) y R700 (2x RV770) no figuran en la lista. [94] [95] [96] [97]
{{cite web}}
: Mantenimiento CS1: copia archivada como título ( enlace )