Una unidad de procesamiento de gráficos ( GPU ) es un circuito electrónico especializado diseñado inicialmente para el procesamiento de imágenes digitales y para acelerar los gráficos de computadora , y está presente como una tarjeta de video discreta o integrado en placas base , teléfonos móviles , computadoras personales , estaciones de trabajo y consolas de juegos . Después de su diseño inicial, se descubrió que las GPU eran útiles para cálculos no gráficos que involucraban problemas vergonzosamente paralelos debido a su estructura paralela . Otros usos no gráficos incluyen el entrenamiento de redes neuronales y la minería de criptomonedas .
Las placas de los sistemas Arcade han utilizado circuitos gráficos especializados desde la década de 1970. En los primeros hardware de videojuegos, la RAM para los buffers de cuadros era costosa, por lo que los chips de video componían datos mientras la pantalla se escaneaba en el monitor. [1]
Un circuito de cambio de barril especializado ayudó a la CPU a animar los gráficos framebuffer de varios videojuegos arcade de los años 70 de Midway y Taito , como Gun Fight (1975), Sea Wolf (1976) y Space Invaders (1978). [2] El sistema arcade Namco Galaxian de 1979 utilizaba hardware de gráficos especializado que admitía colores RGB , sprites multicolores y fondos de mapas de mosaicos . [3] El hardware Galaxian fue ampliamente utilizado durante la época dorada de los videojuegos arcade , por compañías de juegos como Namco , Centuri , Gremlin , Irem , Konami , Midway, Nichibutsu , Sega y Taito. [4]
El Atari 2600 de 1977 utilizaba un cambiador de vídeo llamado Adaptador de Interfaz de Televisión . [5] Las computadoras Atari de 8 bits (1979) tenían ANTIC , un procesador de video que interpretaba instrucciones que describían una " lista de visualización ", la forma en que las líneas de escaneo se asignan a modos de caracteres o de mapas de bits específicos y dónde se almacena la memoria (por lo que no había debe ser un búfer de trama contiguo). [ se necesita aclaración ] [6] Las subrutinas de código de máquina 6502 podrían activarse en líneas de escaneo configurando un bit en una instrucción de lista de visualización. [ se necesita aclaración ] [7] ANTIC también admitía un desplazamiento vertical y horizontal suave independientemente de la CPU. [8]
El NEC μPD7220 fue la primera implementación de un procesador de visualización de gráficos de computadora personal como un único chip de circuito integrado de integración a gran escala (LSI) . Esto permitió el diseño de tarjetas gráficas de video de bajo costo y alto rendimiento, como las de Number Nine Visual Technology . Se convirtió en la GPU más conocida hasta mediados de los años 1980. [9] Fue el primer procesador de visualización de gráficos VLSI (integración a muy gran escala) semiconductor de óxido metálico ( NMOS ) totalmente integrado para PC, admitía una resolución de hasta 1024 × 1024 y sentó las bases para el mercado emergente de gráficos para PC. Se utilizó en varias tarjetas gráficas y se obtuvo licencia para clones como el Intel 82720, la primera de las unidades de procesamiento de gráficos de Intel . [10] Los juegos arcade de Williams Electronics Robotron 2084 , Joust , Sinistar y Bubbles , todos lanzados en 1982, contienen chips blitter personalizados para operar en mapas de bits de 16 colores. [11] [12]
En 1984, Hitachi lanzó ARTC HD63484, el primer procesador de gráficos CMOS importante para computadoras personales. El ARTC podría mostrar una resolución de hasta 4K en modo monocromático . Se utilizó en varias tarjetas gráficas y terminales a finales de los años 1980. [13] En 1985, el Amiga fue lanzado con un chip gráfico personalizado que incluía un blitter para manipulación de mapas de bits, dibujo de líneas y relleno de áreas. También incluía un coprocesador con su propio conjunto de instrucciones simples, que era capaz de manipular registros de hardware de gráficos en sincronización con el haz de video (por ejemplo, para cambios de paleta por línea de escaneo, multiplexación de sprites y ventanas de hardware), o controlar el blitter. En 1986, Texas Instruments lanzó el TMS34010 , el primer procesador de gráficos totalmente programable. [14] Podía ejecutar código de propósito general, pero tenía un conjunto de instrucciones orientadas a gráficos. Durante 1990-1992, este chip se convirtió en la base de las tarjetas aceleradoras de Windows de Texas Instruments Graphics Architecture ("TIGA") .
En 1987, se lanzó el sistema de gráficos IBM 8514 . Fue una de las primeras tarjetas de video para PC compatibles con IBM en implementar primitivas 2D de función fija en hardware electrónico . El X68000 de Sharp , lanzado en 1987, utilizaba un chipset de gráficos personalizado [15] con una paleta de 65.536 colores y soporte de hardware para sprites, desplazamiento y múltiples campos de juego. [16] Sirvió como máquina de desarrollo para la placa arcade CP System de Capcom . La computadora FM Towns de Fujitsu , lanzada en 1989, admitía una paleta de 16.777.216 colores. [17] En 1988, las primeras tarjetas gráficas 3D poligonales dedicadas se introdujeron en salas de juegos con Namco System 21 [18] y Taito Air System. [19]
IBM introdujo su estándar de visualización Video Graphics Array (VGA) patentado en 1987, con una resolución máxima de 640 × 480 píxeles. En noviembre de 1988, NEC Home Electronics anunció la creación de la Video Electronics Standards Association (VESA) para desarrollar y promover un estándar de pantalla de computadora Super VGA (SVGA) como sucesor de VGA. Los gráficos habilitados para Super VGA muestran resoluciones de hasta 800×600 píxeles , un aumento del 36%. [20]
En 1991, S3 Graphics presentó el S3 86C911 , al que sus diseñadores bautizaron con el nombre del Porsche 911 como indicación del aumento de rendimiento que prometía. [21] El 86C911 generó una variedad de imitadores: en 1995, todos los principales fabricantes de chips gráficos para PC habían agregado soporte de aceleración 2D a sus chips. [22] Los aceleradores de Windows de función fija superaron a los costosos coprocesadores de gráficos de uso general en rendimiento de Windows, y dichos coprocesadores desaparecieron del mercado de PC.
A lo largo de la década de 1990, la aceleración de GUI 2D evolucionó. A medida que mejoraron las capacidades de fabricación, también mejoró el nivel de integración de los chips gráficos. Llegaron interfaces de programación de aplicaciones (API) adicionales para una variedad de tareas, como la biblioteca de gráficos WinG de Microsoft para Windows 3.x y su posterior interfaz DirectDraw para la aceleración de hardware de juegos 2D en Windows 95 y versiones posteriores.
A principios y mediados de la década de 1990, los gráficos 3D en tiempo real se volvieron cada vez más comunes en los juegos arcade, de computadora y de consola, lo que llevó a una creciente demanda pública de gráficos 3D acelerados por hardware. Los primeros ejemplos de hardware de gráficos 3D para el mercado masivo se pueden encontrar en placas de sistemas arcade como Sega Model 1 , Namco System 22 y Sega Model 2 , y en las consolas de videojuegos de quinta generación como Saturn , PlayStation y Nintendo 64. . Los sistemas arcade como el Sega Model 2 y el Namco Magic Edge Hornet Simulator basado en SGI Onyx en 1993 eran capaces de realizar T&L ( transformación, recorte e iluminación ) de hardware años antes de aparecer en las tarjetas gráficas de consumo. [23] [24] Otro ejemplo temprano es el chip Super FX , un chip gráfico en cartucho basado en RISC utilizado en algunos juegos de SNES , en particular Doom y Star Fox . Algunos sistemas utilizaron DSP para acelerar las transformaciones. Fujitsu , que trabajó en el sistema arcade Sega Model 2, [25] comenzó a trabajar en la integración de T&L en una única solución LSI para su uso en computadoras domésticas en 1995; [26] el Fujitsu Pinolite, el primer procesador de geometría 3D para computadoras personales, lanzado en 1997. [27] La primera GPU T&L de hardware en consolas de videojuegos domésticas fue el Reality Coprocessor de Nintendo 64 , lanzado en 1996. [28] En 1997, Mitsubishi lanzó 3Dpro/2MP , una GPU capaz de transformación e iluminación, para estaciones de trabajo y escritorios con Windows NT ; [29] ATi lo usó para su tarjeta gráfica FireGL 4000 , lanzada en 1997. [30]
El término "GPU" fue acuñado por Sony en referencia a la GPU Sony de 32 bits (diseñada por Toshiba ) en la consola de videojuegos PlayStation , lanzada en 1994. [31]
En el mundo de las PC, los intentos fallidos notables de chips gráficos 3D de bajo costo incluyeron el S3 ViRGE , ATI Rage y Matrox Mystique . Estos chips eran esencialmente aceleradores 2D de la generación anterior con funciones 3D incorporadas. Muchos eran compatibles con pines de los chips de la generación anterior para facilitar la implementación y reducir el costo. Inicialmente, los gráficos 3D solo eran posibles con placas discretas dedicadas a acelerar funciones 3D (y que carecían por completo de aceleración de interfaz gráfica de usuario (GUI) 2D), como PowerVR y 3dfx Voodoo . Sin embargo, a medida que la tecnología de fabricación siguió avanzando, el vídeo, la aceleración de GUI 2D y la funcionalidad 3D se integraron en un solo chip. Los conjuntos de chips Verite de Rendition estuvieron entre los primeros en hacerlo bien. En 1997, Rendition colaboró con Hercules y Fujitsu en un proyecto "Thriller Conspiracy" que combinaba un procesador de geometría Fujitsu FXG-1 Pinolite con un núcleo Vérité V2200 para crear una tarjeta gráfica con un motor T&L completo años antes que la GeForce 256 de Nvidia ; Esta tarjeta, diseñada para reducir la carga colocada sobre la CPU del sistema, nunca llegó al mercado. [ cita necesaria ] NVIDIA RIVA 128 fue una de las primeras unidades de procesamiento 3D y 2D integradas con GPU orientadas al consumidor en un chip.
OpenGL fue introducido a principios de los años 90 por SGI como una API de gráficos profesional, con soporte de hardware propietario para rasterización 3D. En 1994, Microsoft adquirió Softimage , la herramienta dominante de producción de películas CGI utilizada para los primeros éxitos cinematográficos CGI como Jurassic Park, Terminator 2 y Titanic. Con ese acuerdo surgió una relación estratégica con SGI y una licencia comercial de las bibliotecas OpenGL de SGI que permite a Microsoft portar la API al sistema operativo Windows NT, pero no al próximo lanzamiento de Windows '95. Aunque era poco conocido en ese momento, SGI había firmado un contrato con Microsoft para la transición de Unix al próximo sistema operativo Windows NT, el acuerdo que se firmó en 1995 no se anunció públicamente hasta 1998. Mientras tanto, Microsoft trabajó estrechamente con SGI para porte OpenGL a Windows NT. En esa época, OpenGL no tenía un modelo de controlador estándar para que los aceleradores de hardware de la competencia compitieran sobre la base del soporte para funcionalidades de iluminación y texturizado 3D de mayor nivel. En 1994, Microsoft anunció DirectX 1.0 y soporte para juegos en el próximo sistema operativo de consumo Windows '95; en 1995, Microsoft anunció la adquisición de Rendermorphics Ltd, con sede en el Reino Unido, y el modelo de controlador Direct3D para la aceleración de gráficos 3D de consumo. El modelo de controlador Direct3D se envió con DirectX 2.0 en 1996. Incluía estándares y especificaciones para que los fabricantes de chips 3D compitieran para admitir texturas, iluminación y almacenamiento en búfer Z 3D. ATI, que luego sería adquirida por AMD, comenzó el desarrollo de las primeras GPU Direct3D. Nvidia rápidamente pasó de un acuerdo fallido con Sega en 1996 a abrazar agresivamente el soporte para Direct3D. En esta era, Microsoft fusionó sus equipos internos Direct3D y OpenGL y trabajó en estrecha colaboración con SGI para unificar los estándares de controladores para aceleradores de hardware de gráficos 3D tanto industriales como de consumo. Microsoft organizó eventos anuales para fabricantes de chips 3D llamados "Meltdowns" para probar su hardware y controladores 3D para que funcionen tanto con Direct3D como con OpenGL. Fue durante este período de fuerte influencia de Microsoft sobre los estándares 3D que las tarjetas aceleradoras 3D dejaron de ser simples rasterizadores para convertirse en procesadores de propósito general más potentes, a medida que el soporte para el mapeo de texturas acelerado por hardware, la iluminación, el almacenamiento en búfer Z y la computación crearon la GPU moderna. Durante este período, el mismo equipo de Microsoft responsable de la estandarización de controladores Direct3D y OpenGL presentó su propio diseño de chip 3D de Microsoft llamado Talisman . Los detalles de esta época están ampliamente documentados en los libros: "Game of X" v.1 y v.2 de Russel Demaria, "Renegades of the Empire" de Mike Drummond, "Opening the Xbox" de Dean Takahashi y "Masters of Doom". " por David Kushner. La Nvidia GeForce 256(también conocida como NV10) fue la primera tarjeta de consumo con T&L acelerado por hardware; Si bien la API OpenGL proporcionó soporte de software para mapeo de texturas e iluminación, la primera aceleración de hardware 3D para estas funciones llegó con las primeras GPU de consumo aceleradas Direct3D .
Nvidia fue la primera en producir un chip capaz de realizar sombreados programables : la GeForce 3 . Ahora cada píxel podría procesarse mediante un programa corto que podría incluir texturas de imagen adicionales como entradas, y cada vértice geométrico también podría procesarse mediante un programa corto antes de proyectarse en la pantalla. Utilizado en la consola Xbox , este chip competía con el de PlayStation 2 , que utilizaba una unidad vectorial personalizada para el procesamiento de vértices acelerado por hardware (comúnmente conocido como VU0/VU1). Las primeras encarnaciones de motores de ejecución de sombreadores utilizados en Xbox no eran de propósito general y no podían ejecutar código de píxeles arbitrario. Los vértices y los píxeles fueron procesados por diferentes unidades que tenían sus propios recursos, y los sombreadores de píxeles tenían restricciones más estrictas (porque se ejecutan a frecuencias más altas que los vértices). Los motores de sombreado de píxeles en realidad se parecían más a un bloque de funciones altamente personalizable y en realidad no "ejecutaban" un programa. Muchas de estas disparidades entre el sombreado de vértices y píxeles no se abordaron hasta el Modelo Unificado de Sombreadores .
En octubre de 2002, con la introducción de la ATI Radeon 9700 (también conocida como R300), el primer acelerador Direct3D 9.0 del mundo, los sombreadores de píxeles y vértices podían implementar bucles y largas matemáticas de punto flotante , y rápidamente se estaban volviendo tan flexibles como las CPU, pero los pedidos de magnitud más rápido para operaciones de matriz de imágenes. El sombreado de píxeles se utiliza a menudo para el mapeo de relieve , que añade textura para hacer que un objeto luzca brillante, opaco, áspero o incluso redondo o extruido. [32]
Con la introducción de la serie Nvidia GeForce 8 y las nuevas unidades genéricas de procesamiento de flujo, las GPU se convirtieron en dispositivos informáticos más generalizados. Las GPU paralelas están haciendo avances computacionales contra la CPU, y un subcampo de investigación, denominado computación GPU o GPGPU para computación de propósito general en GPU , ha encontrado aplicaciones en campos tan diversos como el aprendizaje automático , [33] la exploración petrolera , el procesamiento científico de imágenes y el procesamiento lineal. álgebra , [34] estadística , [35] reconstrucción 3D y fijación de precios de opciones sobre acciones . GPGPU fue el precursor de lo que ahora se llama un sombreador de cómputo (por ejemplo, CUDA, OpenCL, DirectCompute) y de hecho abusó del hardware hasta cierto punto al tratar los datos pasados a los algoritmos como mapas de textura y ejecutar algoritmos dibujando un triángulo o un cuadrilátero con un patrón apropiado. sombreador de píxeles. [ aclaración necesaria ] Esto implica algunos gastos generales, ya que unidades como el convertidor de escaneo están involucradas donde no son necesarias (ni siquiera las manipulaciones de triángulos son una preocupación, excepto para invocar el sombreador de píxeles). [ se necesita aclaración ]
La plataforma CUDA de Nvidia , introducida por primera vez en 2007, [36] fue el primer modelo de programación ampliamente adoptado para la computación GPU. OpenCL es un estándar abierto definido por Khronos Group que permite el desarrollo de código tanto para GPU como para CPU con énfasis en la portabilidad. [37] Las soluciones OpenCL son compatibles con Intel, AMD, Nvidia y ARM y, según un informe de 2011 de Evans Data, OpenCL se había convertido en la segunda herramienta HPC más popular. [38]
En 2010, Nvidia se asoció con Audi para alimentar los tableros de sus automóviles, utilizando la GPU Tegra para brindar una mayor funcionalidad a los sistemas de navegación y entretenimiento de los automóviles. [39] Los avances en la tecnología GPU en los automóviles ayudaron a avanzar en la tecnología de conducción autónoma . [40] Las tarjetas de la serie Radeon HD 6000 de AMD se lanzaron en 2010, y en 2011 AMD lanzó sus GPU discretas de la serie 6000M para dispositivos móviles. [41] La línea Kepler de tarjetas gráficas de Nvidia se lanzó en 2012 y se utilizó en las tarjetas de las series 600 y 700 de Nvidia. Una característica de esta microarquitectura de GPU incluía GPU boost, una tecnología que ajusta la velocidad del reloj de una tarjeta de video para aumentarla o disminuirla según su consumo de energía. [42] La microarquitectura de Kepler se fabricó con el proceso de 28 nm [ aclaración necesaria ] .
La PS4 y la Xbox One se lanzaron en 2013; Ambos utilizan GPU basadas en Radeon HD 7850 y 7790 de AMD . [43] A la línea Kepler de GPU de Nvidia le siguió la línea Maxwell , fabricada con el mismo proceso. Los chips de 28 nm de Nvidia fueron fabricados por TSMC en Taiwán utilizando el proceso de 28 nm. En comparación con la tecnología de 40 nm del pasado, este proceso de fabricación permitió un aumento del 20 por ciento en el rendimiento y consumió menos energía. [44] [45] Los cascos de realidad virtual tienen altos requisitos de sistema; Los fabricantes recomendaron la GTX 970 y la R9 290X o mejor en el momento de su lanzamiento. [46] [47] Las tarjetas basadas en la microarquitectura Pascal se lanzaron en 2016. La serie de tarjetas GeForce 10 pertenece a esta generación de tarjetas gráficas. Se fabrican mediante el proceso de fabricación de 16 nm que mejora las microarquitecturas anteriores. [48] Nvidia lanzó una tarjeta para no consumidores bajo la nueva arquitectura Volta , la Titan V. Los cambios con respecto a la Titan XP, la tarjeta de gama alta de Pascal, incluyen un aumento en la cantidad de núcleos CUDA, la adición de núcleos tensoriales y HBM2. . Los núcleos tensoriales están diseñados para el aprendizaje profundo, mientras que la memoria de gran ancho de banda es una memoria integrada, apilada y de menor frecuencia que ofrece un bus de memoria extremadamente amplio. Para enfatizar que la Titan V no es una tarjeta de juegos, Nvidia eliminó el sufijo "GeForce GTX" que agrega a las tarjetas de juegos de consumo.
En 2018, Nvidia lanzó las GPU de la serie RTX 20 que agregaron núcleos de trazado de rayos a las GPU, mejorando su rendimiento en los efectos de iluminación. [49] Las GPU Polaris 11 y Polaris 10 de AMD se fabrican mediante un proceso de 14 nm. Su lanzamiento resultó en un aumento sustancial en el rendimiento por vatio de las tarjetas de video AMD. [50] AMD también lanzó la serie Vega GPU para el mercado de gama alta como competidor de las tarjetas Pascal de gama alta de Nvidia, que también incluyen HBM2 como la Titan V.
En 2019, AMD lanzó el sucesor de su conjunto de instrucciones/microarquitectura Graphics Core Next (GCN). Apodado RDNA, el primer producto que lo presentó fue la serie de tarjetas de video Radeon RX 5000 . [51]
La compañía anunció que el sucesor de la microarquitectura RDNA sería incremental (también conocido como actualización). AMD presentó la serie Radeon RX 6000 , sus tarjetas gráficas RDNA 2 con soporte para trazado de rayos acelerado por hardware. [52] La serie de productos, lanzada a finales de 2020, estaba compuesta por RX 6800, RX 6800 XT y RX 6900 XT. [53] [54] El RX 6700 XT, que se basa en Navi 22, se lanzó a principios de 2021. [55]
La PlayStation 5 y Xbox Series X y Series S se lanzaron en 2020; Ambos utilizan GPU basadas en la microarquitectura RDNA 2 con mejoras incrementales y diferentes configuraciones de GPU en la implementación de cada sistema. [56] [57] [58]
Intel ingresó por primera vez al mercado de GPU a fines de la década de 1990, pero produjo aceleradores 3D mediocres en comparación con la competencia en ese momento. En lugar de intentar competir con los fabricantes de gama alta Nvidia y ATI/AMD, comenzaron a integrar GPU con tecnología de gráficos Intel en conjuntos de chips de placas base, comenzando con el Intel 810 para el Pentium III y más tarde en CPU. Comenzaron con el procesador para portátiles Intel Atom 'Pineview' en 2009, continuando en 2010 con procesadores de escritorio de primera generación de la línea Intel Core y con los Pentium y Celeron contemporáneos. Esto dio lugar a una gran cuota de mercado nominal, ya que la mayoría de los ordenadores con CPU Intel también incluían este procesador gráfico integrado. Estos generalmente estaban por detrás de los procesadores discretos en cuanto a rendimiento. Intel volvió a ingresar al mercado de GPU discretas en 2022 con su serie Arc , que competía con las tarjetas de la serie GeForce 30 y Radeon 6000 actuales a precios competitivos. [ cita necesaria ]
En la década de 2020, las GPU se han utilizado cada vez más para cálculos que implican problemas vergonzosamente paralelos , como el entrenamiento de redes neuronales en enormes conjuntos de datos que se necesitan para grandes modelos de lenguaje . Los núcleos de procesamiento especializados en las GPU de algunas estaciones de trabajo modernas están dedicados al aprendizaje profundo, ya que tienen aumentos significativos en el rendimiento de FLOPS, utilizando multiplicación y división de matrices 4×4, lo que resulta en un rendimiento de hardware de hasta 128 TFLOPS en algunas aplicaciones. [59] Se espera que estos núcleos tensoriales también aparezcan en tarjetas de consumo. [ necesita actualización ] [60]
Muchas empresas han producido GPU con varias marcas. En 2009, [ necesita actualización ] Intel , Nvidia y AMD / ATI fueron los líderes en cuota de mercado, con una cuota de mercado del 49,4%, 27,8% y 20,6% respectivamente. Además, Matrox [61] produce GPU. Los teléfonos inteligentes modernos utilizan principalmente GPU Adreno de Qualcomm , GPU PowerVR de Imagination Technologies y GPU Mali de ARM .
Las GPU modernas han utilizado tradicionalmente la mayoría de sus transistores para realizar cálculos relacionados con gráficos por ordenador en 3D . Además del hardware 3D, las GPU actuales incluyen capacidades básicas de aceleración 2D y framebuffer (normalmente con un modo de compatibilidad VGA). Las tarjetas más nuevas, como AMD/ATI HD5000–HD7000, carecen de aceleración 2D dedicada; es emulado por hardware 3D. Las GPU se utilizaron inicialmente para acelerar el trabajo de mapeo de texturas y renderizado de polígonos que consume mucha memoria. Posteriormente, se agregaron unidades [ se necesita aclaración ] para acelerar los cálculos geométricos como la rotación y traslación de vértices a diferentes sistemas de coordenadas . Los desarrollos recientes en las GPU incluyen soporte para sombreadores programables que pueden manipular vértices y texturas con muchas de las mismas operaciones que admiten las CPU , técnicas de sobremuestreo e interpolación para reducir el alias y espacios de color de muy alta precisión .
Varios factores de la construcción de la GPU afectan el rendimiento de la tarjeta para la renderización en tiempo real, como el tamaño de las vías del conector en la fabricación del dispositivo semiconductor , la frecuencia de la señal del reloj y el número y tamaño de varios cachés de memoria en el chip . El rendimiento también se ve afectado por la cantidad de multiprocesadores de transmisión (SM) para las GPU de NVidia, o unidades de cómputo (CU) para las GPU de AMD, o núcleos Xe para las GPU discretas de Intel, que describen la cantidad de unidades de procesador centrales de silicio dentro del chip de la GPU. que realizan los cálculos centrales, normalmente trabajando en paralelo con otros SM/CU en la GPU. El rendimiento de la GPU normalmente se mide en operaciones de punto flotante por segundo ( FLOPS ); Las GPU de las décadas de 2010 y 2020 suelen ofrecer un rendimiento medido en teraflops (TFLOPS). Esta es una medida de rendimiento estimada, ya que otros factores pueden afectar la tasa de visualización real. [62]
La mayoría de las GPU fabricadas desde 1995 admiten el espacio de color YUV y las superposiciones de hardware , importantes para la reproducción de vídeo digital , y muchas GPU fabricadas desde 2000 también admiten primitivas MPEG como la compensación de movimiento e iDCT . Esta decodificación de video acelerada por hardware, en la que partes del proceso de decodificación de video y el posprocesamiento de video se descargan al hardware de GPU, se conoce comúnmente como "decodificación de video acelerada por GPU", "decodificación de video asistida por GPU", "descodificación de video acelerada por GPU", decodificación de vídeo" o "decodificación de vídeo asistida por hardware GPU".
Las tarjetas gráficas recientes decodifican vídeo de alta definición en la tarjeta, descargando la unidad central de procesamiento. Las API más comunes para la decodificación de video acelerada por GPU son DxVA para sistemas operativos Microsoft Windows y VDPAU , VAAPI , XvMC y XvBA para sistemas operativos basados en Linux y similares a UNIX. Todos, excepto XvMC, son capaces de decodificar vídeos codificados con MPEG-1 , MPEG-2 , MPEG-4 ASP (MPEG-4 Part 2) , MPEG-4 AVC (H.264/DivX 6), VC-1 , WMV3 / WMV9 . , Xvid /OpenDivX (DivX 4) y DivX 5 , mientras que XvMC sólo es capaz de decodificar MPEG-1 y MPEG-2.
Existen varias soluciones de codificación y decodificación de vídeo por hardware dedicadas .
Los procesos de decodificación de vídeo que pueden acelerarse con hardware GPU moderno son:
Estas operaciones también tienen aplicaciones en la edición, codificación y transcodificación de vídeo.
Una GPU anterior puede admitir una o más API de gráficos 2D para aceleración 2D, como GDI y DirectDraw . [63]
Una GPU puede admitir una o más API de gráficos 3D, como DirectX , Metal , OpenGL , OpenGL ES , Vulkan .
En la década de 1970, el término "GPU" originalmente significaba unidad de procesador de gráficos y describía una unidad de procesamiento programable que funcionaba independientemente de la CPU y que era responsable de la manipulación y salida de gráficos. [64] [65] En 1994, Sony utilizó el término (que ahora significa unidad de procesamiento de gráficos ) en referencia a la GPU Sony diseñada por Toshiba de la consola PlayStation . [31] El término fue popularizado por Nvidia en 1999, que comercializó la GeForce 256 como "la primera GPU del mundo". [66] Se presentó como un " procesador de un solo chip con transformación integrada, iluminación, configuración/recorte de triángulos y motores de renderizado". [67] Su rival ATI Technologies acuñó el término " unidad de procesamiento visual " o VPU con el lanzamiento de la Radeon 9700 en 2002. [68] El AMD Alveo MA35D presenta VPU duales, cada una de las cuales utilizará el proceso de 5 nm en 2023. [69]
En las computadoras personales, existen dos formas principales de GPU. Cada uno tiene muchos sinónimos: [70]
La mayoría de las GPU están diseñadas para un uso específico, gráficos 3D en tiempo real u otros cálculos de masas:
Las unidades de procesamiento de gráficos dedicadas utilizan RAM dedicada a la GPU en lugar de depender de la memoria principal del sistema de la computadora. Esta RAM generalmente se selecciona especialmente para la carga de trabajo en serie esperada de la tarjeta gráfica (consulte GDDR ). A veces, los sistemas con GPU discretas dedicadas se denominaban sistemas "DIS" en lugar de sistemas "UMA" (consulte la siguiente sección). [71]
Las GPU dedicadas no son necesariamente extraíbles ni necesariamente interactúan con la placa base de forma estándar. El término "dedicada" se refiere al hecho de que las tarjetas gráficas tienen RAM dedicada al uso de la tarjeta, no al hecho de que la mayoría de las GPU dedicadas sean extraíbles. Las GPU dedicadas para computadoras portátiles suelen conectarse a través de una ranura no estándar y, a menudo, patentada debido a limitaciones de tamaño y peso. Dichos puertos aún pueden considerarse PCIe o AGP en términos de su interfaz lógica de host, incluso si no son físicamente intercambiables con sus contrapartes.
Las tarjetas gráficas con GPU dedicadas suelen interactuar con la placa base mediante una ranura de expansión como PCI Express (PCIe) o Accelerated Graphics Port (AGP). Por lo general, se pueden reemplazar o actualizar con relativa facilidad, suponiendo que la placa base sea capaz de soportar la actualización. Algunas tarjetas gráficas todavía usan ranuras de interconexión de componentes periféricos (PCI), pero su ancho de banda es tan limitado que generalmente se usan solo cuando no hay una ranura PCIe o AGP disponible.
Tecnologías como Scan-Line Interleave de 3dfx, SLI y NVLink de Nvidia y CrossFire de AMD permiten que varias GPU dibujen imágenes simultáneamente para una sola pantalla, lo que aumenta la potencia de procesamiento disponible para los gráficos. Estas tecnologías, sin embargo, son cada vez menos comunes; la mayoría de los juegos no utilizan varias GPU por completo, ya que la mayoría de los usuarios no pueden permitírselo. [72] [73] [74] Todavía se usan múltiples GPU en supercomputadoras (como en Summit ), en estaciones de trabajo para acelerar el video (procesando múltiples videos a la vez) [75] [76] [77] y renderizado 3D, [78] para VFX , [79] cargas de trabajo GPGPU y para simulaciones, [80] y en IA para acelerar el entrenamiento, como es el caso de la línea de estaciones de trabajo y servidores DGX de Nvidia, las GPU Tesla y las GPU Ponte Vecchio de Intel.
Las unidades de procesamiento de gráficos integrados (IGPU), los gráficos integrados , las soluciones de gráficos compartidos , los procesadores de gráficos integrados (IGP) o las arquitecturas de memoria unificada (UMA) utilizan una parte de la RAM del sistema de una computadora en lugar de la memoria de gráficos dedicada. Los IGP se pueden integrar en una placa base como parte de su conjunto de chips Northbridge , [81] o en el mismo troquel (circuito integrado) con la CPU (como AMD APU o Intel HD Graphics ). En ciertas placas base, [82] los IGP de AMD pueden usar memoria de puerto lateral dedicada: un bloque fijo separado de memoria de alto rendimiento dedicado para uso de la GPU. A principios de 2007, [actualizar]las computadoras con gráficos integrados representaban aproximadamente el 90% de todos los envíos de PC. [83] [ necesita actualización ] Son menos costosos de implementar que el procesamiento de gráficos dedicado, pero tienden a ser menos capaces. Históricamente, el procesamiento integrado se consideraba inadecuado para juegos 3D o programas con uso intensivo de gráficos, pero podía ejecutar programas menos intensivos como Adobe Flash. Ejemplos de tales IGP serían las ofertas de SiS y VIA alrededor de 2004. [84] Sin embargo, los procesadores de gráficos integrados modernos como la unidad de procesamiento acelerado AMD y la tecnología de gráficos Intel (HD, UHD, Iris, Iris Pro, Iris Plus y Xe-LP) ) puede manejar gráficos 2D o gráficos 3D de bajo estrés.
Dado que los cálculos de la GPU consumen mucha memoria, el procesamiento integrado puede competir con la CPU por una RAM del sistema relativamente lenta, ya que tiene una memoria de video dedicada mínima o nula. Los IGP utilizan la memoria del sistema con un ancho de banda de hasta un máximo actual de 128 GB/s, mientras que una tarjeta gráfica discreta puede tener un ancho de banda de más de 1000 GB/s entre su VRAM y su núcleo GPU. Este ancho de banda del bus de memoria puede limitar el rendimiento de la GPU, aunque la memoria multicanal puede mitigar esta deficiencia. [85] Los conjuntos de chips de gráficos integrados más antiguos carecían de iluminación y transformación de hardware , pero los más nuevos los incluyen. [86] [87]
En sistemas con "Arquitectura de Memoria Unificada" (UMA), incluidos los procesadores AMD modernos con gráficos integrados, [88] los procesadores Intel modernos con gráficos integrados, [89] los procesadores Apple, las series PS5 y Xbox (entre otros), los núcleos de CPU y el bloque de GPU comparte el mismo grupo de RAM y espacio de direcciones de memoria. Esto permite que el sistema asigne memoria dinámicamente entre los núcleos de la CPU y el bloque de GPU según las necesidades de memoria (sin necesidad de una gran división estática de la RAM) y, gracias a las transferencias de copia cero, elimina la necesidad de copiar datos a través de un bus (computación). ) entre grupos de RAM físicamente separados o copia entre espacios de direcciones separados en un único grupo físico de RAM, lo que permite una transferencia de datos más eficiente.
Las GPU híbridas compiten con los gráficos integrados en los mercados de computadoras de escritorio y portátiles de gama baja. Las implementaciones más comunes de esto son HyperMemory de ATI y TurboCache de Nvidia .
Las tarjetas gráficas híbridas son algo más caras que las gráficas integradas, pero mucho menos caras que las tarjetas gráficas dedicadas. Comparten memoria con el sistema y tienen una pequeña memoria caché dedicada, para compensar la alta latencia de la RAM del sistema. Las tecnologías dentro de PCI Express lo hacen posible. Si bien a veces se anuncia que estas soluciones tienen hasta 768 MB de RAM, esto se refiere a cuánto se puede compartir con la memoria del sistema.
Es común utilizar una unidad de procesamiento de gráficos de propósito general (GPGPU) como una forma modificada de procesador de flujo (o procesador de vectores ), que ejecuta núcleos de cómputo . Esto convierte el enorme poder computacional de la línea de sombreado de un acelerador de gráficos moderno en poder computacional de uso general. En determinadas aplicaciones que requieren operaciones vectoriales masivas, esto puede producir un rendimiento varios órdenes de magnitud mayor que el de una CPU convencional. Los dos diseñadores de GPU discretas más grandes (consulte "Unidad de procesamiento de gráficos dedicada" más arriba), AMD y Nvidia , están siguiendo este enfoque con una variedad de aplicaciones. Tanto Nvidia como AMD se asociaron con la Universidad de Stanford para crear un cliente basado en GPU para el proyecto de computación distribuida Folding@home para cálculos de plegamiento de proteínas. En determinadas circunstancias, la GPU calcula cuarenta veces más rápido que las CPU utilizadas tradicionalmente por este tipo de aplicaciones. [90] [91]
Las GPGPU se pueden utilizar para muchos tipos de tareas vergonzosamente paralelas , incluido el trazado de rayos . Generalmente son adecuados para cálculos de alto rendimiento que exhiben paralelismo de datos para explotar la arquitectura SIMD de ancho de vector amplio de la GPU.
Las computadoras de alto rendimiento basadas en GPU desempeñan un papel importante en el modelado a gran escala. Tres de los diez superordenadores más potentes del mundo aprovechan la aceleración de la GPU. [92]
Las GPU admiten extensiones API del lenguaje de programación C , como OpenCL y OpenMP . Además, cada proveedor de GPU introdujo su propia API que solo funciona con sus tarjetas: AMD APP SDK de AMD y CUDA de Nvidia. Estos permiten que funciones llamadas núcleos de cálculo se ejecuten en los procesadores de flujo de la GPU. Esto hace posible que los programas en C aprovechen la capacidad de una GPU para operar en grandes buffers en paralelo, mientras siguen usando la CPU cuando sea apropiado. CUDA fue la primera API que permitió que las aplicaciones basadas en CPU accedieran directamente a los recursos de una GPU para computación de propósito más general sin las limitaciones de usar una API de gráficos. [ cita necesaria ]
Desde 2005 ha habido interés en utilizar el rendimiento que ofrecen las GPU para la computación evolutiva en general y para acelerar la evaluación del fitness en la programación genética en particular. La mayoría de los enfoques compilan programas lineales o de árbol en la PC host y transfieren el ejecutable a la GPU para su ejecución. Normalmente, sólo se obtiene una ventaja de rendimiento ejecutando el único programa activo simultáneamente en muchos problemas de ejemplo en paralelo, utilizando la arquitectura SIMD de la GPU. [93] Sin embargo, también se puede obtener una aceleración sustancial si no se compilan los programas y, en su lugar, se transfieren a la GPU para ser interpretados allí. [94] La aceleración se puede obtener interpretando múltiples programas simultáneamente, ejecutando simultáneamente múltiples problemas de ejemplo o combinaciones de ambos. Una GPU moderna puede interpretar simultáneamente cientos de miles de programas muy pequeños.
Una GPU externa es un procesador de gráficos ubicado fuera de la carcasa de la computadora, similar a un disco duro externo grande. A veces se utilizan procesadores de gráficos externos con computadoras portátiles. Las computadoras portátiles pueden tener una cantidad sustancial de RAM y una unidad central de procesamiento (CPU) suficientemente potente, pero a menudo carecen de un procesador de gráficos potente y, en cambio, tienen un chip gráfico integrado menos potente pero más eficiente energéticamente. Los chips gráficos integrados a menudo no son lo suficientemente potentes para jugar videojuegos o para otras tareas con uso intensivo de gráficos, como la edición de video o la animación/renderizado 3D.
Por lo tanto, es recomendable conectar una GPU a algún bus externo de un portátil. PCI Express es el único bus utilizado para este fin. El puerto puede ser, por ejemplo, un puerto ExpressCard o mPCIe (PCIe ×1, hasta 5 o 2,5 Gbit/s respectivamente), un puerto Thunderbolt 1, 2 o 3 (PCIe ×4, hasta 10, 20 o 40 Gbit/s respectivamente) o un puerto OCuLink . Esos puertos sólo están disponibles en ciertos sistemas portátiles. [95] [96] Los gabinetes de eGPU incluyen su propia fuente de alimentación (PSU), porque las GPU potentes pueden consumir cientos de vatios. [97]
El soporte oficial de proveedores para GPU externas ha ganado fuerza. Un hito fue la decisión de Apple de admitir GPU externas con MacOS High Sierra 10.13.4. [98] Varios proveedores importantes de hardware (HP, Razer) lanzaron gabinetes eGPU Thunderbolt 3. [99] [100] Este soporte impulsa las implementaciones de eGPU por parte de los entusiastas. [ se necesita aclaración ] [101]
Las unidades de procesamiento de gráficos (GPU) han seguido aumentando en el uso de energía, mientras que los diseñadores de CPU han hecho recientemente [ ¿cuándo? ] se centró en mejorar el rendimiento por vatio. Las GPU de alto rendimiento pueden consumir una gran cantidad de energía, por lo que se requieren técnicas inteligentes para gestionar el consumo de energía de la GPU. Medidas como la puntuación por vatio de 3DMark2006 pueden ayudar a identificar GPU más eficientes. [102] Sin embargo, es posible que esto no incorpore adecuadamente la eficiencia en el uso típico, donde se dedica mucho tiempo a tareas menos exigentes. [103]
Con las GPU modernas, el uso de energía es una limitación importante en las capacidades computacionales máximas que se pueden lograr. Los diseños de GPU suelen ser altamente escalables, lo que permite al fabricante colocar varios chips en la misma tarjeta de video o usar varias tarjetas de video que funcionan en paralelo. El rendimiento máximo de cualquier sistema está esencialmente limitado por la cantidad de energía que puede consumir y la cantidad de calor que puede disipar. En consecuencia, el rendimiento por vatio de un diseño de GPU se traduce directamente en el rendimiento máximo de un sistema que utiliza ese diseño.
Dado que las GPU también se pueden utilizar para algunos cálculos de propósito general , a veces su rendimiento se mide en términos que también se aplican a las CPU, como FLOPS por vatio.En 2013, se enviaron 438,3 millones de GPU a nivel mundial y la previsión para 2014 era de 414,2 millones. Sin embargo, en el tercer trimestre de 2022, los envíos de GPU integradas totalizaron alrededor de 75,5 millones de unidades, un 19% menos año tras año. [104] [ necesita actualización ] [105]
Quizás el más conocido sea el NEC 7220.