Unidad de procesamiento gráfico - Graphics processing unit

Componentes de una GPU

Una unidad de procesamiento de gráficos ( GPU ) es un circuito electrónico especializado diseñado para manipular y alterar rápidamente la memoria para acelerar la creación de imágenes en un búfer de cuadros destinado a la salida a un dispositivo de visualización . Las GPU se utilizan en sistemas integrados , teléfonos móviles , computadoras personales , estaciones de trabajo y consolas de juegos .

Las GPU modernas son muy eficientes en la manipulación de gráficos por computadora y procesamiento de imágenes . Su estructura altamente paralela los hace más eficientes que las unidades de procesamiento central (CPU) de propósito general para algoritmos que procesan grandes bloques de datos en paralelo. En una computadora personal, una GPU puede estar presente en una tarjeta de video o incrustada en la placa base . En ciertas CPU, están integradas en la matriz de la CPU .

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 trabajaba independientemente de la CPU y era responsable de la manipulación y salida de gráficos. Más tarde, en 1994, Sony usó el término (que ahora significa unidad de procesamiento de gráficos ) en referencia a la GPU Sony diseñada por Toshiba para la consola PlayStation en 1994. El término fue popularizado por Nvidia en 1999, quien comercializó la GeForce 256 como "la primera del mundo GPU ". 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". Rival ATI Technologies acuñó el término " unidad de procesamiento visual " o VPU con el lanzamiento de la Radeon 9700 en 2002.

Historia

1970

Las placas del sistema Arcade han estado utilizando circuitos gráficos especializados desde la década de 1970. En el hardware de los primeros videojuegos, la RAM para los búferes de cuadros era costosa, por lo que los chips de video componían los datos mientras se escaneaba la pantalla en el monitor.

Se utilizó un circuito de cambio de barril especializado para ayudar a la CPU a animar los gráficos del framebuffer para varios juegos de arcade de los años 70 de Midway y Taito , como Gun Fight (1975), Sea Wolf (1976) y Space Invaders (1978). El Namco Galaxian sistema de arcade en 1979 especializada utiliza el hardware de gráficos de apoyo de color RGB , sprites multicolores y tilemap fondos. El hardware Galaxian fue ampliamente utilizado durante la edad de oro de los videojuegos arcade , por compañías de juegos como Namco , Centuri , Gremlin , Irem , Konami , Midway , Nichibutsu , Sega y Taito .

Microprocesador Atari ANTIC en una placa base Atari 130XE

En el mercado doméstico, el Atari 2600 en 1977 usó un cambiador de video llamado Adaptador de Interfaz de Televisión . Las computadoras Atari de 8 bits (1979) tenían ANTIC , un procesador de video que interpretaba instrucciones que describen una "lista de visualización", la forma en que las líneas de exploración se asignan a modos específicos de mapas de bits o caracteres y dónde se almacena la memoria (por lo que no es necesario ser un búfer de trama contiguo). Las subrutinas de código de máquina 6502 podrían activarse en líneas de exploración estableciendo un bit en una instrucción de lista de visualización. ANTIC también admitía un desplazamiento vertical y horizontal suave independientemente de la CPU.

Decenio de 1980

NEC μPD7220 A

El NEC µPD7220 fue la primera implementación de un procesador de pantalla gráfica de PC como un solo chip de circuito integrado de integración a gran escala (LSI) , lo que 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 la década de 1980. Fue el primer procesador de pantalla de gráficos de semiconductores de óxido de metal ( NMOS ) VLSI ( integración a gran escala) completamente integrado para PC, admitió una resolución de hasta 1024x1024 y sentó las bases para el mercado emergente de gráficos de PC. Se usó en varias tarjetas gráficas y se autorizó para clones como Intel 82720, la primera de las unidades de procesamiento de gráficos de Intel . Los juegos de 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.

En 1984, Hitachi lanzó ARTC HD63484, el primer procesador de gráficos CMOS importante para PC. El ARTC era capaz de mostrar una resolución de hasta 4K cuando estaba en modo monocromo , y se usó en varias tarjetas gráficas y terminales de PC a fines de la década de 1980. En 1985, el Commodore Amiga presentaba un chip gráfico personalizado, con una unidad blitter que aceleraba la manipulación de mapas de bits, el dibujo de líneas y las funciones de relleno de áreas. También se incluye un coprocesador con su propio conjunto de instrucciones simples, capaz de manipular registros de hardware de gráficos en sincronía con el haz de video (por ejemplo, para interruptores de paleta por línea de exploración, multiplexación de sprites y ventanas de hardware), o manejar el blitter. En 1986, Texas Instruments lanzó el TMS34010 , el primer procesador de gráficos totalmente programable. 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 la arquitectura gráfica de Texas Instruments ("TIGA") .

El adaptador IBM 8514 Micro Channel, con complemento de memoria.

En 1987, el sistema de gráficos IBM 8514 fue lanzado como una de las primeras tarjetas de video compatibles con IBM PC para implementar primitivas 2D de función fija en hardware electrónico . Afilada 's X68000 , publicado en 1987, utiliza un conjunto de chips gráficos personalizados con una paleta y soporte de hardware de 65.536 colores para los sprites, desplazamiento y múltiples campos de juego, con el tiempo que actúa como una máquina de desarrollo de Capcom ' s CP Sistema de tablero de juegos electrónicos. Fujitsu más tarde compitió con la computadora FM Towns , lanzada en 1989 con soporte para una paleta de colores completa de 16.777.216. En 1988, las primeras tarjetas gráficas 3D poligonales dedicadas se introdujeron en salas de juegos con Namco System 21 y Taito Air System.

Sección VGA en la placa base en IBM PS / 55

IBM 's patentada Video Graphics Array estándar de visualización (VGA) fue introducido 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 del estándar de pantalla VGA patentado por IBM. Resolución de pantalla de gráficos habilitados para Super VGA de hasta 800 × 600 píxeles , un aumento del 36%.

Decenio de 1990

Tarjeta Voodoo3 2000 AGP

En 1991, S3 Graphics presentó el S3 86C911 , que sus diseñadores nombraron en honor al Porsche 911 como una indicación del aumento de rendimiento que prometía. El 86C911 generó una gran cantidad 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. En ese momento, los aceleradores de Windows de función fija habían superado a los costosos coprocesadores de gráficos de uso general en el rendimiento de Windows, y estos coprocesadores desaparecieron del mercado de las PC.

A lo largo de la década de 1990, la aceleración de la GUI 2D continuó evolucionando. A medida que mejoraron las capacidades de fabricación, 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.xy su interfaz DirectDraw posterior para la aceleración de hardware de juegos 2D dentro de Windows 95 y versiones posteriores.

A principios y mediados de la década de 1990, los gráficos 3D en tiempo real se estaban volviendo 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 placas de sistema 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 de arcade como Sega Model 2 y Namco Magic Edge Hornet Simulator en 1993 eran capaces de hardware T&L ( transformación, recorte e iluminación ) años antes de aparecer en las tarjetas gráficas de consumo. Algunos sistemas utilizaron DSP para acelerar las transformaciones. Fujitsu , que trabajó en el sistema arcade Sega Model 2, 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; el Fujitsu Pinolite, el primer procesador de geometría 3D para ordenadores personales, lanzado en 1997. El primer hardware T & L GPU en casa consolas de videojuegos fue la Nintendo 64 's Realidad coprocesador , publicado en 1996. En 1997, Mitsubishi lanzó el 3Dpro / 2MP , una GPU con todas las funciones capaz de transformación e iluminación, para estaciones de trabajo y escritorios Windows NT ; ATi lo utilizó para su tarjeta gráfica FireGL 4000 , lanzada en 1997.

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.

En el mundo de las PC, los primeros intentos fallidos notables de chips gráficos 3D de bajo costo fueron el S3 ViRGE , ATI Rage y Matrox Mystique . Estos chips eran esencialmente aceleradores 2D de la generación anterior con funciones 3D incorporadas. Muchos incluso eran compatibles con pines con los chips de la generación anterior para facilitar la implementación y el costo mínimo. Inicialmente, los gráficos 3D de rendimiento solo eran posibles con placas discretas dedicadas a acelerar funciones 3D (y que carecían por completo de aceleración de GUI 2D) como PowerVR y 3dfx Voodoo . Sin embargo, a medida que avanzaba la tecnología de fabricación, el vídeo, la aceleración de la GUI 2D y la funcionalidad 3D se integraron en un solo chip. Los conjuntos de chips Verite de Rendition fueron de los primeros en hacer esto lo suficientemente bien como para ser dignos de mención. En 1997, Rendition dio un paso más al colaborar 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 de la GeForce de Nvidia. 256 . Esta tarjeta, diseñada para reducir la carga sobre la CPU del sistema, nunca llegó al mercado.

OpenGL apareció a principios de los 90 como una API de gráficos profesionales, pero originalmente sufrió problemas de rendimiento que permitieron que Glide API interviniera y se convirtiera en una fuerza dominante en la PC a finales de los 90. Sin embargo, estos problemas se superaron rápidamente y la API de Glide se quedó en el camino. Las implementaciones de software de OpenGL fueron comunes durante este tiempo, aunque la influencia de OpenGL eventualmente condujo a un soporte de hardware generalizado. Con el tiempo, surgió una paridad entre las características que se ofrecen en hardware y las que se ofrecen en OpenGL. DirectX se hizo popular entre los desarrolladores de juegos de Windows a finales de los 90. A diferencia de OpenGL, Microsoft insistió en proporcionar un estricto soporte de hardware uno a uno. El enfoque hizo que DirectX fuera menos popular inicialmente como una API de gráficos independiente, ya que muchas GPU proporcionaban sus propias características específicas, de las que las aplicaciones OpenGL existentes ya podían beneficiarse, dejando a DirectX a menudo una generación atrás. (Consulte: Comparación de OpenGL y Direct3D ).

Con el tiempo, Microsoft comenzó a trabajar más de cerca con los desarrolladores de hardware y comenzó a apuntar a las versiones de DirectX para que coincidieran con las del hardware de gráficos de soporte. Direct3D 5.0 fue la primera versión de la floreciente API que obtuvo una adopción generalizada en el mercado de los juegos, y compitió directamente con muchas más bibliotecas gráficas específicas de hardware, a menudo propietarias, mientras que OpenGL mantuvo un gran número de seguidores. Direct3D 7.0 introdujo soporte para iluminación y transformación acelerada por hardware (T&L) para Direct3D, mientras que OpenGL ya tenía esta capacidad expuesta desde sus inicios. Las tarjetas de aceleración 3D se movieron más allá de ser simples rasterizadores para agregar otra etapa de hardware significativa a la canalización de renderizado 3D. La Nvidia GeForce 256 (también conocida como NV10) fue la primera tarjeta de nivel de consumidor lanzada al mercado con T&L acelerado por hardware, mientras que las tarjetas 3D profesionales ya tenían esta capacidad. La transformación de hardware y la iluminación, ambas características ya existentes de OpenGL, llegaron al hardware de nivel de consumidor en los años 90 y sentaron el precedente para las unidades posteriores de sombreado de píxeles y de vértice , que eran mucho más flexibles y programables.

2000 hasta 2010

Nvidia fue la primera en producir un chip capaz de realizar sombreado programable ; la GeForce 3 (nombre en código NV20). Cada píxel podría ahora ser procesado por un "programa" corto que podría incluir texturas de imagen adicionales como entradas, y cada vértice geométrico podría igualmente ser procesado por un programa corto antes de ser proyectado en la pantalla. Utilizada en la consola Xbox , compitió con 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 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 con sombreadores de píxeles que tenían restricciones mucho más estrictas (ya que se ejecutan a frecuencias mucho más altas que con los vértices). Los motores de sombreado de píxeles eran en realidad más parecidos 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 mucho más tarde con 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, sombreadores de píxeles y vértices del mundo podía implementar bucles y largos cálculos matemáticos de punto flotante , y rápidamente se estaban volviendo tan flexibles como las CPU, pero ordenadas de magnitud más rápido para operaciones de matriz de imágenes. El sombreado de píxeles se usa a menudo para el mapeo de protuberancias , que agrega textura, para hacer que un objeto se vea brillante, opaco, rugoso o incluso redondo o extruido.

Con la introducción de la serie Nvidia GeForce 8 , y luego las nuevas unidades de procesamiento de flujo genéricas, las GPU se convirtieron en dispositivos informáticos más generalizados. Hoy en día, las GPU paralelas han comenzado a hacer 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 , se ha abierto camino en campos tan diversos como el aprendizaje automático , la exploración petrolera , el procesamiento de imágenes científicas , álgebra lineal , estadísticas , reconstrucción 3D e incluso determinación de precios de opciones sobre acciones . GPGPU en ese momento era 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 cuadrante. con un sombreador de píxeles apropiado. Obviamente, esto implica algunos gastos generales, ya que las unidades como el convertidor de escaneo están involucradas donde no son realmente necesarias (ni siquiera las manipulaciones de triángulos son una preocupación, excepto para invocar el sombreador de píxeles).

La plataforma CUDA de Nvidia , presentada por primera vez en 2007, fue el primer modelo de programación ampliamente adoptado para la computación GPU. Más recientemente, OpenCL se ha vuelto ampliamente compatible. 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. Las soluciones OpenCL son compatibles con Intel, AMD, Nvidia y ARM, y según un informe reciente de Evan's Data, OpenCL es la plataforma de desarrollo de GPGPU más utilizada por desarrolladores tanto en EE. UU. Como en Asia Pacífico.

2010 al presente

En 2010, Nvidia comenzó una asociación con Audi para impulsar los tableros de sus autos, utilizando las GPU Tegra para brindar una mayor funcionalidad a los sistemas de navegación y entretenimiento de los autos. Los avances en la tecnología de GPU en los automóviles han ayudado a impulsar la tecnología de conducción autónoma . 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 su uso en dispositivos móviles. La línea Kepler de tarjetas gráficas de Nvidia salió en 2012 y se utilizó en las tarjetas de las series 600 y 700 de Nvidia. Una característica de esta nueva 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. La microarquitectura de Kepler se fabricó mediante el proceso de 28 nm.

La PS4 y Xbox One se lanzaron en 2013, ambas usan GPU basadas en Radeon HD 7850 y 7790 de AMD . La línea Kepler de GPU 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, la empresa Taiwan Semiconductor Manufacturing Company, que fabricaba utilizando el proceso de 28 nm en ese momento. En comparación con la tecnología de 40 nm del pasado, este nuevo proceso de fabricación permitió un aumento del 20 por ciento en el rendimiento y consumió menos energía. Los cascos de realidad virtual tienen requisitos de sistema muy elevados. Los fabricantes de cascos de realidad virtual recomendaron el GTX 970 y el R9 290X o mejores en el momento de su lanzamiento. Pascal es la próxima generación de tarjetas gráficas para consumidores de Nvidia lanzada en 2016. La serie de tarjetas GeForce 10 se encuentra bajo esta generación de tarjetas gráficas. Se fabrican utilizando el proceso de fabricación de 16 nm que mejora las microarquitecturas anteriores. Nvidia ha lanzado una tarjeta para no consumidores bajo la nueva arquitectura Volta , la Titan V. Los cambios de 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 tensoriales son núcleos especialmente diseñados para el aprendizaje profundo, mientras que la memoria de alto ancho de banda es una memoria apilada, de menor frecuencia que ofrece un bus de memoria extremadamente amplio que es útil para el propósito previsto del Titan V. 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 consumidores.

El 20 de agosto de 2018, Nvidia lanzó las GPU de la serie RTX 20 que agregan núcleos de trazado de rayos a las GPU, mejorando su rendimiento en efectos de iluminación. Las GPU Polaris 11 y Polaris 10 de AMD se fabrican mediante un proceso de 14 nanómetros. Su lanzamiento da como resultado un aumento sustancial en el rendimiento por vatio de las tarjetas de video AMD. AMD también ha lanzado 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 microarquitectura / instrucciones Graphics Core Next (GCN). Apodada como RDNA, la primera línea de productos con la primera generación de RDNA fue la serie de tarjetas de video Radeon RX 5000 , que luego se lanzó el 7 de julio de 2019. Más tarde, la compañía anunció que el sucesor de la microarquitectura RDNA sería una actualización. Apodada como RDNA 2, la nueva microarquitectura estaba programada para su lanzamiento en el cuarto trimestre de 2020.

AMD presentó la serie Radeon RX 6000 , sus tarjetas gráficas RDNA 2 de próxima generación con soporte para trazado de rayos acelerado por hardware en un evento en línea el 28 de octubre de 2020. La línea inicialmente consta de RX 6800, RX 6800 XT y RX 6900 XT . El RX 6800 y 6800 XT se lanzó el 18 de noviembre de 2020, y el RX 6900 XT se lanzó el 8 de diciembre de 2020. El RX 6700 XT, que se basa en Navi 22, se lanzó el 18 de marzo de 2021.

La PlayStation 5 y Xbox Series X y Series S se lanzaron en 2020, ambas usan GPU basadas en la microarquitectura RDNA 2 con ajustes patentados y diferentes configuraciones de GPU en la implementación de cada sistema.

Empresas de GPU

Muchas empresas han producido GPU con varias marcas. En 2009, Intel , Nvidia y AMD / ATI fueron líderes en participación de mercado, con 49,4%, 27,8% y 20,6% de participación de mercado, respectivamente. Sin embargo, esos números incluyen las soluciones gráficas integradas de Intel como GPU. Sin contar esos, Nvidia y AMD controlan casi el 100% del mercado a partir de 2018. Sus respectivas cuotas de mercado son del 66% y el 33%. Además, Matrox produce GPU. Los teléfonos inteligentes modernos también usan principalmente GPU Adreno de Qualcomm , GPU PowerVR de Imagination Technologies y GPU Mali de ARM .

Funciones computacionales

Las GPU modernas utilizan la mayoría de sus transistores para realizar cálculos relacionados con los 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 VGA). Las tarjetas más nuevas, como AMD / ATI HD5000-HD7000, incluso carecen de aceleración 2D; tiene que ser emulado por hardware 3D. Las GPU se utilizaron inicialmente para acelerar el trabajo intensivo en memoria de mapeo de texturas y renderizado de polígonos, y luego se agregaron unidades para acelerar cálculos geométricos como la rotación y traslació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 admitidas por CPU , técnicas de sobremuestreo e interpolación para reducir el aliasing y espacios de color de muy alta precisión . Dado que la mayoría de estos cálculos involucran operaciones matriciales y vectoriales , los ingenieros y científicos han estudiado cada vez más el uso de GPU para cálculos no gráficos; se adaptan especialmente a otros problemas embarazosamente paralelos .

Varios factores de la construcción de la GPU intervienen en el rendimiento de la tarjeta para la renderización en tiempo real. Los factores comunes pueden incluir el tamaño de las rutas del conector en la fabricación del dispositivo semiconductor , la frecuencia de la señal de reloj y el número y tamaño de varias memorias caché en chip . Además, la cantidad de multiprocesadores de transmisión (SM) para las GPU NVidia, o unidades de cómputo (CU) para las GPU AMD, que describen la cantidad de unidades de procesador central en silicio dentro del chip GPU que realizan los cálculos del núcleo, normalmente trabajando en paralelo con otras SM / CU en la GPU. El rendimiento de las GPU generalmente se mide en operaciones de punto flotante por segundo o FLOPS , y 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 tasa de visualización real.

Con la aparición del aprendizaje profundo, la importancia de las GPU ha aumentado. En una investigación realizada por Indigo, se descubrió que, al entrenar redes neuronales de aprendizaje profundo, las GPU pueden ser 250 veces más rápidas que las CPU. Ha habido cierto nivel de competencia en esta área con los ASIC , sobre todo la Unidad de procesamiento de tensor (TPU) fabricada por Google. Sin embargo, los ASIC requieren cambios en el código existente y las GPU siguen siendo muy populares.

Codificación y decodificación de video acelerada por GPU

La GPU ATI HD5470 (arriba) cuenta con UVD 2.1 que le permite decodificar formatos de video AVC y VC-1

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 video digital , y muchas GPU fabricadas desde 2000 también admiten primitivas MPEG como compensación de movimiento e iDCT . Este proceso de decodificación de video acelerada por hardware, donde partes del proceso de decodificación de video y post-procesamiento de video se descargan al hardware de la GPU, se conoce comúnmente como "decodificación de video acelerada por GPU", "decodificación de video asistida por GPU", "aceleración por hardware de GPU decodificación de video "o" decodificación de video asistida por hardware GPU ".

Las tarjetas gráficas más recientes incluso decodifican video de alta definición en la tarjeta, descargando la unidad central de procesamiento. El más común APIs para GPU acelerada de decodificación de vídeo son DxVA para Microsoft Windows el sistema operativo y VDPAU , VAAPI , XvMC y XvBA para Linux y basado en UNIX-como sistemas operativos. Todos excepto XvMC son capaces de decodificar videos 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 los códecs 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 video de hardware dedicadas .

Procesos de decodificación de video que se pueden acelerar

Los procesos de decodificación de video que pueden acelerarse con el hardware GPU moderno de hoy son:

Las operaciones anteriores también tienen aplicaciones en la edición, codificación y transcodificación de videos.

Formas de GPU

Terminología

En las computadoras personales, hay dos formas principales de GPU. Cada uno tiene muchos sinónimos:

GPU específico de uso

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 masa:

  1. Juego de azar
  2. Juegos en la nube
  3. Puesto de trabajo
  4. Estación de trabajo en la nube
  5. Formación en Inteligencia Artificial y Cloud
  6. Coche automatizado / sin conductor

Tarjetas gráficas dedicadas

Las GPU de la clase más poderosa suelen interactuar con la placa base por medio de una ranura de expansión como PCI Express (PCIe) o puerto de gráficos acelerado (AGP) y, 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 una ranura PCIe o AGP no está disponible.

Una GPU dedicada no es necesariamente extraíble, ni interactúa necesariamente con la placa base de manera estándar. El término "dedicado" se refiere al hecho de que las tarjetas gráficas dedicadas tienen RAM dedicada al uso de la tarjeta, no al hecho de que la mayoría de las GPU dedicadas son extraíbles. Además, 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 contraposición a los sistemas "UMA" (consulte la siguiente sección). Las GPU dedicadas para computadoras portátiles generalmente se interconectan a través de una ranura no estándar y, a menudo, patentada debido a restricciones 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.

Tecnologías como SLI y NVLink de Nvidia y CrossFire de AMD permiten que múltiples GPU dibujen imágenes simultáneamente para una sola pantalla, aumentando la potencia de procesamiento disponible para gráficos. Sin embargo, estas tecnologías son cada vez menos comunes, ya que la mayoría de los juegos no utilizan por completo varias GPU, ya que la mayoría de los usuarios no pueden pagarlas. Todavía se utilizan múltiples GPU en supercomputadoras (como en Summit ), en estaciones de trabajo para acelerar el video (procesando múltiples videos a la vez) y el renderizado 3D, para VFX y para simulaciones, y en IA para agilizar el entrenamiento, como es el caso de la línea de Nvidia de Estaciones de trabajo y servidores DGX y GPU Tesla y las próximas GPU Ponte Vecchio de Intel.

Unidad de procesamiento de gráficos integrada

La posición de una GPU integrada en un diseño de sistema Northbridge / Southbridge
Una placa base ASRock con gráficos integrados, que tiene salidas HDMI, VGA y DVI.

La unidad 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 la arquitectura 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 la placa base como parte del chipset (northbridge) o en el mismo chip ( circuito integrado) con la CPU (como AMD APU o Intel HD Graphics ). En ciertas placas base, los IGP de AMD pueden usar memoria de puerto lateral dedicada. Este es un bloque fijo separado de memoria de alto rendimiento que está dedicado para que lo use la GPU. A principios de 2007, las computadoras con gráficos integrados representaban aproximadamente el 90% de todos los envíos de PC. 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 jugar juegos en 3D o ejecutar programas de gráficos intensivos, pero podía ejecutar programas menos intensivos como Adobe Flash. Ejemplos de tales IGP serían ofertas de SiS y VIA alrededor de 2004. Sin embargo, los procesadores de gráficos integrados modernos como AMD Accelerated Processing Unit e Intel HD Graphics son más que capaces de manejar gráficos 2D o gráficos 3D de bajo estrés.

Dado que los cálculos de la GPU son extremadamente intensivos en memoria, el procesamiento integrado puede competir con la CPU por la RAM del sistema relativamente lenta, ya que tiene una memoria de video dedicada mínima o nula. Los IGP pueden tener hasta 29.856 GB / s de ancho de banda de memoria de la RAM del sistema, mientras que una tarjeta gráfica puede tener hasta 264 GB / s de ancho de banda entre su RAM 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. Los chipsets de gráficos integrados más antiguos carecían de iluminación y transformación de hardware , pero los más nuevos la incluyen.

Procesamiento de gráficos híbridos

Esta nueva clase de GPU compite 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. Estos 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 pueden hacer esto posible. 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.

Procesamiento de transmisión y GPU de propósito general (GPGPU)

Se está volviendo cada vez más común utilizar una unidad de procesamiento de gráficos de propósito general (GPGPU) como una forma modificada de procesador de flujo (o un procesador vectorial ), que ejecuta núcleos informáticos . Este concepto convierte la enorme potencia computacional de la tubería de sombreado de un acelerador de gráficos moderno en potencia informática de propósito general, en lugar de estar programada únicamente para realizar operaciones gráficas. En ciertas aplicaciones que requieren operaciones vectoriales masivas, esto puede producir un rendimiento varios órdenes de magnitud superior al de una CPU convencional. Los dos diseñadores de GPU más grandes (consulte " Tarjetas gráficas dedicadas " más arriba), AMD y Nvidia , están comenzando a aplicar este enfoque con una variedad de aplicaciones. Tanto Nvidia como AMD se han asociado 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.

GPGPU se puede utilizar para muchos tipos de tareas vergonzosamente paralelas , incluido el trazado de rayos . Por lo general, son adecuados para cálculos de tipo de alto rendimiento que exhiben paralelismo de datos para explotar la arquitectura SIMD de ancho de vector amplio de la GPU.

Además, las computadoras de alto rendimiento basadas en GPU están comenzando a desempeñar un papel importante en el modelado a gran escala. Tres de las 10 supercomputadoras más potentes del mundo aprovechan la aceleración de la GPU.

Las GPU admiten extensiones de API para el 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 y CUDA de AMD y Nvidia, respectivamente. Estas tecnologías permiten que funciones específicas llamadas núcleos de cómputo de un programa C normal 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 búferes en paralelo, sin dejar de usar la CPU cuando sea apropiado. CUDA es también la primera API que permite que las aplicaciones basadas en CPU accedan directamente a los recursos de una GPU para una informática de propósito más general sin las limitaciones de usar una API de gráficos.

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 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 que se ejecute. Normalmente, la ventaja de rendimiento solo se obtiene ejecutando el programa activo único simultáneamente en muchos problemas de ejemplo en paralelo, utilizando la arquitectura SIMD de la GPU . Sin embargo, también se puede obtener una aceleración sustancial al no compilar los programas y, en cambio, transferirlos a la GPU para que se interpreten allí. La aceleración puede obtenerse interpretando varios programas simultáneamente, ejecutando simultáneamente varios problemas de ejemplo o combinando ambos. Una GPU moderna puede interpretar simultáneamente cientos de miles de programas muy pequeños.

Algunas GPU de estaciones de trabajo modernas, como las tarjetas de estación de trabajo Nvidia Quadro que utilizan las arquitecturas Volta y Turing, cuentan con núcleos de procesamiento dedicados para aplicaciones de aprendizaje profundo basadas en tensor. En la serie actual de GPU de Nvidia, estos núcleos se denominan Tensor Cores. Estas GPU generalmente tienen aumentos significativos en el rendimiento de FLOPS, utilizando la multiplicación y división de matrices 4x4, lo que da como resultado un rendimiento de hardware de hasta 128 TFLOPS en algunas aplicaciones. También se supone que estos núcleos tensores aparecen en las tarjetas de consumo que ejecutan la arquitectura Turing, y posiblemente en la serie Navi de tarjetas de consumo de AMD.

GPU externa (eGPU)

Una GPU externa es un procesador de gráficos ubicado fuera de la carcasa de la computadora, similar a un disco duro externo grande. Los procesadores gráficos externos a veces se utilizan con computadoras portátiles. Las computadoras portátiles pueden tener una cantidad sustancial de RAM y una unidad de procesamiento central (CPU) suficientemente potente, pero a menudo carecen de un procesador de gráficos potente y, en cambio, tienen un chip de gráficos integrado menos potente pero más eficiente en energía. Los chips de gráficos incorporados a menudo no son lo suficientemente potentes para jugar videojuegos o para otras tareas gráficas intensivas, como editar videos o animación / renderizado 3D.

Por tanto, es deseable poder conectar una GPU a algún bus externo de un portátil. PCI Express es el único bus que se utiliza 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) o un puerto Thunderbolt 1, 2 o 3 (PCIe × 4, hasta 10, 20 o 40 Gbit / s respectivamente). Estos puertos solo están disponibles en ciertos sistemas portátiles. Los gabinetes de eGPU incluyen su propia fuente de alimentación (PSU), porque las GPU potentes pueden consumir fácilmente cientos de vatios.

El soporte oficial de proveedores para GPU externas ha ganado terreno recientemente. Un hito notable fue la decisión de Apple de admitir oficialmente GPU externas con MacOS High Sierra 10.13.4. También hay varios proveedores importantes de hardware (HP, Alienware, Razer) que lanzan carcasas eGPU Thunderbolt 3. Este soporte ha continuado impulsando las implementaciones de eGPU por parte de los entusiastas.

Ventas

En 2013, se enviaron 438,3 millones de GPU a nivel mundial y la previsión para 2014 fue de 414,2 millones.

Ver también

Hardware

API

Aplicaciones

Referencias

enlaces externos