Una unidad de procesamiento gráfico ( 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 , que puede estar presente ya sea como una tarjeta de video discreta o integrada 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 base de los sistemas arcade han utilizado circuitos gráficos especializados desde la década de 1970. En los primeros equipos de videojuegos, la memoria RAM para los búferes de cuadros era cara, por lo que los chips de vídeo combinaban los datos a medida que se escaneaban en el monitor. [1]
Un circuito de cambio de barril especializado ayudó a la CPU a animar los gráficos del framebuffer para 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 en 1979 utilizó hardware gráfico especializado que admitía color 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 en 1977 usaba un cambiador de video 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 mapa de bits o caracteres específicos y dónde se almacena la memoria, por lo que no era necesario que hubiera un búfer de cuadros contiguo). [ aclaración necesaria ] [6] Las subrutinas de código de máquina 6502 se podían activar en líneas de escaneo al configurar un bit en una instrucción de lista de visualización. [ aclaración necesaria ] [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 pantalla gráfica para computadora personal como un solo chip de circuito integrado de integración a gran escala (LSI) . Esto permitió el diseño de tarjetas gráficas de video de alto rendimiento y bajo costo como las de Number Nine Visual Technology . Se convirtió en la GPU más conocida hasta mediados de la década de 1980. [9] Fue el primer procesador de pantalla gráfica de metal-óxido-semiconductor ( NMOS ) VLSI (integración a muy gran escala) totalmente integrado para PC, admitió una resolución de hasta 1024 × 1024 y sentó las bases para el emergente mercado de gráficos para PC. Se utilizó en varias tarjetas gráficas y se licenció para clones como el Intel 82720, la primera de las unidades de procesamiento gráfico 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 gráfico CMOS importante para computadoras personales. El ARTC podía mostrar una resolución de hasta 4K cuando estaba en modo monocromático . Se utilizó en varias tarjetas gráficas y terminales a fines de la década de 1980. [13] En 1985, se lanzó Amiga 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 simple, que era capaz de manipular registros de hardware gráfico en sincronía 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 gráfico completamente programable. [14] Podía ejecutar código de propósito general, pero tenía un conjunto de instrucciones orientado a gráficos. Durante 1990-1992, este chip se convirtió en la base de las tarjetas aceleradoras de Windows Texas Instruments Graphics Architecture ("TIGA") .
En 1987, se lanzó el sistema gráfico IBM 8514. Fue una de las primeras tarjetas de video para IBM PC compatibles en implementar primitivas 2D de función fija en hardware electrónico . La X68000 de Sharp , lanzada en 1987, utilizó un chipset gráfico 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 una máquina de desarrollo para la placa arcade CP System de Capcom . La computadora FM Towns de Fujitsu , lanzada en 1989, tenía soporte para una paleta de 16,777,216 colores. [17] En 1988, se introdujeron las primeras placas gráficas 3D poligonales dedicadas en las salas de juegos con Namco System 21 [18] y Taito Air System. [19]
IBM introdujo su estándar de pantalla 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 Asociación de Estándares de Electrónica de Vídeo (VESA) para desarrollar y promover un estándar de pantalla de computadora Super VGA (SVGA) como sucesor de VGA. Super VGA permitió resoluciones de pantalla gráfica de hasta 800×600 píxeles , un aumento del 36%. [20]
En 1991, S3 Graphics presentó el S3 86C911 , que sus diseñadores bautizaron con el nombre del Porsche 911 como una 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 gráficos de propósito general en el 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 las capacidades de fabricación mejoraron, también lo hizo 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 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 de arcade, computadora y 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 las placas base de arcade como Sega Model 1 , Namco System 22 y Sega Model 2 , y las consolas de videojuegos de quinta generación como Saturn , PlayStation y Nintendo 64. Los sistemas arcade como Sega Model 2 y Namco Magic Edge Hornet Simulator basado en SGI Onyx en 1993 fueron capaces de hardware T&L ( transformación, recorte e iluminación ) 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 usaban 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 ordenadores domésticos en 1995; [26] el Fujitsu Pinolite, el primer procesador de geometría 3D para ordenadores personales, lanzado en 1997. [27] La primera GPU de hardware T&L en las consolas de videojuegos domésticas fue el Reality Coprocessor de Nintendo 64 , lanzado en 1996. [28] En 1997, Mitsubishi lanzó el 3Dpro/2MP , una GPU capaz de transformación e iluminación, para estaciones de trabajo y ordenadores de sobremesa con Windows NT ; [29] ATi lo utilizó 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 agregadas. Muchos eran compatibles con los chips de la generación anterior para facilitar la implementación y un costo mínimo. 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 continuó progresando, el video, la aceleración de GUI 2D y la funcionalidad 3D se integraron en un solo chip. Los chipsets Verite de Rendition estuvieron entre los primeros en hacer esto bien. En 1997, Rendition colaboró con Hercules y Fujitsu en un proyecto "Thriller Conspiracy" que combinó 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 de la GeForce 256 de Nvidia ; Esta tarjeta, diseñada para reducir la carga sobre la CPU del sistema, nunca llegó al mercado. [ cita requerida ] NVIDIA RIVA 128 fue una de las primeras unidades de procesamiento 3D y 2D integradas en una GPU para el consumidor en un chip.
OpenGL fue introducido a principios de los 90 por SGI como una API de gráficos profesionales, 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 éxitos cinematográficos CGI tempranos como Jurassic Park, Terminator 2 y Titanic. Con ese acuerdo vino una relación estratégica con SGI y una licencia comercial de las bibliotecas OpenGL de SGI que permitían 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 contratado a Microsoft para la transición de Unix al futuro sistema operativo Windows NT, el acuerdo que se firmó en 1995 no se anunció públicamente hasta 1998. En el período intermedio, Microsoft trabajó estrechamente con SGI para portar 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 nivel superior. En 1994, Microsoft anunció DirectX 1.0 y soporte para juegos en el futuro 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 soportar texturas 3D, iluminación y almacenamiento en búfer Z. 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 adoptar agresivamente el soporte para Direct3D. En esta era, Microsoft fusionó sus equipos internos de 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 los fabricantes de chips 3D llamados "Meltdowns" para probar su hardware y controladores 3D para trabajar 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 pasaron de ser simples rasterizadores a 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 el cálculo crearon la GPU moderna. Durante este período, el mismo equipo de Microsoft responsable de la estandarización de controladores de Direct3D y OpenGL presentó su propio diseño de chip 3D de Microsoft llamado Talisman . Los detalles de esta era 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" de David Kushner. La Nvidia GeForce 256(también conocida como NV10) fue la primera tarjeta de nivel de consumidor 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 características llegó con las primeras GPU de consumidor aceleradas por Direct3D .
Nvidia fue la primera en producir un chip capaz de realizar sombreado programable : la GeForce 3. Ahora cada píxel podía ser procesado por un programa corto que podía incluir texturas de imagen adicionales como entradas, y cada vértice geométrico podía ser procesado también por un programa corto antes de ser proyectado en la pantalla. Utilizado en la consola Xbox , este chip competía con el de la 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 los motores de ejecución de sombreado 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 eran procesados por unidades diferentes 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 eran en realidad más parecidos a un bloque de función 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 de sombreado unificado .
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 cálculos matemáticos de punto flotante extensos , y rápidamente se estaban volviendo tan flexibles como las CPU, pero órdenes de magnitud más rápidos para operaciones de matriz de imágenes. El sombreado de píxeles se usa a menudo para el mapeo de relieve , que agrega textura para hacer que un objeto se vea 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 incursiones 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] exploración petrolera , procesamiento de imágenes científicas , álgebra lineal , [34] estadísticas , [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, en realidad, 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 sombreador de píxeles apropiado. [ 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). [ aclaración necesaria ]
La plataforma CUDA de Nvidia , presentada por primera vez en 2007, [36] fue el primer modelo de programación ampliamente adoptado para computación en GPU. OpenCL es un estándar abierto definido por el Grupo Khronos 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 de HPC más popular. [38]
En 2010, Nvidia se asoció con Audi para impulsar los tableros de sus autos, utilizando la GPU Tegra para proporcionar una mayor funcionalidad a los sistemas de navegación y entretenimiento de los autos. [39] Los avances en la tecnología de 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 usó en las tarjetas de la serie 600 y 700 de Nvidia. Una característica de esta microarquitectura de GPU incluía GPU boost, una tecnología que ajusta la velocidad de reloj de una tarjeta de video para aumentarla o disminuirla según su consumo de energía. [42] La microarquitectura Kepler se fabricó en el proceso de 28 nm [ aclaración necesaria ] .
La PS4 y la Xbox One se lanzaron en 2013; ambas usan GPU basadas en Radeon HD 7850 y 7790 de AMD . [43] La línea de GPU Kepler de Nvidia fue seguida por 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 mientras consumía 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 superior 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 son de esta generación de tarjetas gráficas. Se fabrican utilizando el proceso de fabricación de 16 nm que mejora las microarquitecturas anteriores. [48] Nvidia lanzó una tarjeta no destinada al consumidor 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 tensores y HBM2 . Los núcleos tensores están diseñados para el aprendizaje profundo, mientras que la memoria de alto ancho de banda es una memoria integrada, apilada y de menor frecuencia de reloj 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 para el consumidor.
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 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 de GPU Vega para el mercado de alta gama como competidor de las tarjetas Pascal de alta gama de Nvidia, que también cuentan con HBM2 como la Titan V.
En 2019, AMD lanzó el sucesor de su conjunto de instrucciones y microarquitectura Graphics Core Next (GCN). Denominado RDNA, el primer producto que lo incluyó 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 una 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 fines de 2020, constaba de RX 6800, RX 6800 XT y RX 6900 XT. [53] [54] La RX 6700 XT, que se basa en Navi 22, se lanzó a principios de 2021. [55]
La PlayStation 5 y las Xbox Series X y Series S se lanzaron en 2020; ambas 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 entró por primera vez en el mercado de las GPU a finales de los años 90, 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 gráfica Intel en los chipsets de las placas base, empezando por el Intel 810 para Pentium III y, más tarde, en las CPU. Empezaron con el procesador para portátiles Intel Atom "Pineview" en 2009, y continuaron en 2010 con los procesadores de escritorio de la 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 una CPU Intel también contaban con este procesador gráfico integrado. Estos, por lo general, se quedaban por detrás de los procesadores discretos en cuanto a rendimiento. Intel volvió a entrar en el mercado de las GPU discretas en 2022 con su serie Arc , que competía con las tarjetas de la serie GeForce 30 y la serie Radeon 6000, entonces vigentes, a precios competitivos. [ cita requerida ]
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 modelos de lenguaje grandes . 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 la multiplicación y división de matrices 4×4, lo que da como resultado 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 bajo varias marcas. En 2009, [ necesita actualización ] Intel , Nvidia y AMD / ATI fueron los líderes en participación de mercado, con 49,4%, 27,8% y 20,6% de participación de mercado 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 de computadora en 3D . Además del hardware 3D, las GPU actuales incluyen capacidades básicas de aceleración 2D y framebuffer (generalmente con un modo de compatibilidad con VGA). Las tarjetas más nuevas, como AMD/ATI HD5000–HD7000, carecen de aceleración 2D dedicada; se emula mediante hardware 3D. Las GPU se utilizaron inicialmente para acelerar el trabajo de uso intensivo de memoria de mapeo de texturas y renderizado de polígonos. Más tarde, se agregaron unidades [ aclaración necesaria ] para acelerar los cálculos geométricos como la rotación y la traducción de vértices en diferentes sistemas de coordenadas . Los desarrollos recientes en 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 aliasing 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 representación en tiempo real, como el tamaño de las vías de conexión en la fabricación del dispositivo semiconductor , la frecuencia de la señal de reloj y la cantidad y el tamaño de varias memorias caché 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 de núcleo en silicio dentro del chip de la GPU que realizan los cálculos del núcleo, generalmente trabajando en paralelo con otras SM/CU en la GPU. El rendimiento de la GPU generalmente se mide en operaciones de punto flotante por segundo ( FLOPS ); las GPU en las décadas de 2010 y 2020 generalmente ofrecen un rendimiento medido en teraflops (TFLOPS). Esta es una medida de rendimiento estimada, ya que otros factores pueden afectar la velocidad 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 vídeo acelerada por hardware, en la que partes del proceso de decodificación de vídeo y el posprocesamiento de vídeo se descargan en el hardware de la GPU, se conoce comúnmente como "decodificación de vídeo acelerada por GPU", "decodificación de vídeo asistida por GPU", "decodificación de vídeo acelerada por hardware de GPU" o "decodificación de vídeo asistida por hardware de GPU".
Las tarjetas gráficas recientes decodifican video 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. Todas excepto XvMC son capaces de decodificar videos codificados con códecs 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 solo 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 procesamiento gráfico 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 gráfico ) en referencia a la GPU de Sony diseñada por Toshiba para 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 motores integrados de transformación, iluminación, configuración/recorte de triángulos y 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] La AMD Alveo MA35D presenta VPU duales, cada una utilizando el proceso de 5 nm en 2023. [69]
En los ordenadores personales, existen dos tipos principales de GPU. Cada una de ellas 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 masivos:
Las unidades de procesamiento gráfico dedicadas utilizan RAM dedicada a la GPU en lugar de depender de la memoria principal del sistema de la computadora. Esta RAM suele seleccionarse especialmente para la carga de trabajo serial 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 "dedicado" 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 se conectan más comúnmente a través de una ranura no estándar y, a menudo, propietaria debido a limitaciones de tamaño y peso. Dichos puertos aún pueden considerarse PCIe o AGP en términos de su interfaz de host lógica, 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, siempre que la placa base sea capaz de soportar la actualización. Algunas tarjetas gráficas aún utilizan ranuras de interconexión de componentes periféricos (PCI), pero su ancho de banda es tan limitado que, por lo general, solo se utilizan 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. Sin embargo, estas tecnologías son cada vez menos comunes; la mayoría de los juegos no utilizan por completo varias GPU, ya que la mayoría de los usuarios no pueden permitírselas. [72] [73] [74] Todavía se utilizan varias GPU en supercomputadoras (como en Summit ), en estaciones de trabajo para acelerar el video (procesando varios videos a la vez) [75] [76] [77] y la renderización 3D, [78] para efectos visuales , [79] cargas de trabajo GPGPU y para simulaciones, [80] y en IA para agilizar 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 memoria gráfica dedicada. Los IGP se pueden integrar en una placa base como parte de su chipset de puente norte , [81] o en el mismo chip (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 que está dedicado para su uso por la GPU. A principios de 2007, [actualizar]las computadoras con gráficos integrados representan 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 dichos IGP serían las ofertas de SiS y VIA alrededor de 2004. [84] Sin embargo, los procesadores gráficos integrados modernos como la unidad de procesamiento acelerado AMD y la tecnología gráfica Intel (HD, UHD, Iris, Iris Pro, Iris Plus y Xe-LP ) pueden 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. Las 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 el núcleo de la 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 chipsets de gráficos integrados más antiguos carecían de transformación de hardware e iluminación , pero los más nuevos lo incluyen. [86] [87]
En los 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, la serie PS5 y Xbox (entre otros), los núcleos de la CPU y el bloque de la GPU comparten 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 la GPU en función de 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 copiar entre espacios de direcciones separados en un solo 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 integradas, pero mucho más baratas que las 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 de PCI Express hacen posible esto. Si bien a veces se anuncia que estas soluciones tienen hasta 768 MB de RAM, esto se refiere a la cantidad que se puede compartir con la memoria del sistema.
Es común utilizar una unidad de procesamiento gráfico de propósito general (GPGPU) como una forma modificada de procesador de flujo (o procesador vectorial ), que ejecuta núcleos de cómputo . Esto convierte la enorme potencia computacional de la tubería de sombreado de un acelerador gráfico moderno en potencia computacional de propósito general. En ciertas aplicaciones que requieren operaciones vectoriales masivas, esto puede producir un rendimiento varios órdenes de magnitud mayor que una CPU convencional. Los dos diseñadores de GPU discretas más grandes (consulte "Unidad de procesamiento gráfico 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 ciertas circunstancias, la GPU calcula cuarenta veces más rápido que las CPU utilizadas tradicionalmente por tales aplicaciones. [90] [91]
Las GPGPU se pueden utilizar para muchos tipos de tareas vergonzosamente paralelas , incluido el trazado de rayos . Por lo general, son adecuadas para cálculos de alto rendimiento que exhiben paralelismo de datos para explotar la arquitectura SIMD de ancho vectorial amplio de la GPU.
Los ordenadores de alto rendimiento basados 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 GPU. [92]
Las GPU admiten extensiones de API para el lenguaje de programación C , como OpenCL y OpenMP . Además, cada proveedor de GPU presentó su propia API que solo funciona con sus tarjetas: AMD APP SDK de AMD y CUDA de Nvidia. Estas permiten que las funciones llamadas núcleos de cómputo se ejecuten en los procesadores de flujo de la GPU. Esto hace posible que los programas C aprovechen la capacidad de una GPU para operar en grandes búferes en paralelo, mientras siguen utilizando la CPU cuando sea necesario. CUDA fue la primera API que permitió que las aplicaciones basadas en CPU accedieran directamente a los recursos de una GPU para cálculos de propósito más general sin las limitaciones de usar una API de gráficos. [ cita requerida ]
Desde 2005 ha habido interés en utilizar el rendimiento ofrecido por las GPU para la computación evolutiva en general, y para acelerar la evaluación de la aptitud 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. Por lo general, solo 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 al no compilar los programas y, en su lugar, transferirlos a la GPU para que se interpreten allí. [94] La aceleración se puede obtener interpretando varios programas simultáneamente, ejecutando simultáneamente varios 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 gráfico ubicado fuera de la carcasa del ordenador, similar a un disco duro externo de gran tamaño. Los procesadores gráficos externos se utilizan a veces con ordenadores portátiles. Los portátiles pueden tener una cantidad considerable de RAM y una unidad central de procesamiento (CPU) lo suficientemente potente, pero a menudo carecen de un procesador gráfico potente y, en su lugar, 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 a videojuegos o para otras tareas que requieren un uso intensivo de gráficos, como la edición de vídeo o la animación/renderizado 3D.
Por lo tanto, es deseable conectar una GPU a algún bus externo de un portátil. PCI Express es el único bus utilizado para este propósito. 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), un puerto USB4 con compatibilidad Thunderbolt o un puerto OCuLink . Esos puertos solo están disponibles en ciertos sistemas portátiles. [95] [96] Los gabinetes eGPU incluyen su propia fuente de alimentación (PSU), porque las GPU potentes pueden consumir cientos de vatios. [97]
El soporte oficial de los 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 de hardware importantes (HP, Razer) lanzaron carcasas Thunderbolt 3 eGPU. [99] [100] Este soporte impulsa las implementaciones de eGPU por parte de los entusiastas. [ aclaración necesaria ] [101]
Las unidades de procesamiento gráfico (GPU) han seguido aumentando su consumo de energía, mientras que los diseñadores de CPU se han centrado recientemente [¿ cuándo? ] 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 las 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 realizar tareas menos exigentes. [103]
En el caso de las GPU modernas, el consumo de energía es una limitación importante para las capacidades computacionales máximas que se pueden lograr. Los diseños de GPU suelen ser muy escalables, lo que permite al fabricante colocar varios chips en la misma tarjeta de video o utilizar varias tarjetas de video que funcionen en paralelo. El rendimiento máximo de cualquier sistema está limitado esencialmente 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 vendieron 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 que en el mismo período del año anterior. [104] [ necesita actualización ] [105]
el más conocido sea el NEC 7220.