Unidad de Procesamiento Gráfico (GPU)
Una unidad de procesamiento de gráficos (GPU, Graphics processing unit) es un circuito electrónico especializado diseñado para manipular y alterar 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 eficientes en la manipulación de gráficos de computadora y procesamiento de imágenes. Su estructura paralela los hace más eficientes que las unidades centrales de procesamiento (CPU) de uso 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 algunas CPU, están integrados en la matriz de la CPU.
En la década de 1970, el término "GPU" originalmente significaba unidad de procesamiento de gráficos y describía una unidad de procesamiento programable que funcionaba 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 de 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 transformación integrada, iluminación, configuración / recorte de triángulos y motores de renderizado". Rival ATI Technologies acuñó el término " unidad de procesamiento visual " o VPUcon el lanzamiento de 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 memoria RAM para los búferes de cuadros era costosa, por lo que los chips de video componían los datos mientras la pantalla se escaneaba en el monitor.
Se usó un circuito de cambio de barril especializado para ayudar a la CPU a animar los gráficos del búfer de fotogramas para varios juegos de arcade de la década de 1970 de Midway y Taito, como Gun Fight (1975), Sea Wolf (1976) y Space Invaders (1978). El sistema de arcade Namco Galaxian en 1979 usaba hardware de gráficos especializado que admitía colores RGB, sprites multicolores y fondos de mapas de mosaicos. El hardware de 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.
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 las 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 mapas de bits específicos y dónde se almacena la memoria (por lo que no era necesario ser un búfer de cuadro contiguo). Las subrutinas de código de máquina 6502 podrían activarse en líneas de exploración configurando un bit en una instrucción de lista de visualización. ANTIC también admitía un desplazamiento vertical y horizontal fluido independiente de la CPU.
1980
El NEC µPD7220 fue la primera implementación de un procesador de visualización de gráficos 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 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. Fue el primer procesador de visualización de gráficos de semiconductores de óxido de metal (NMOS) totalmente integrado VLSI (integración a muy gran escala) para PC, admitió una resolución de hasta 1024x1024 y sentó las bases para el mercado emergente de gráficos para 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 gran procesador de gráficos CMOS para PC. El ARTC era capaz de mostrar una resolución de hasta 4K cuando estaba en modo monocromático, 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 área. También se incluye un coprocesador con su propio conjunto de instrucciones simples, 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.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 de Texas Instruments Graphics Architecture ("TIGA").
En 1987, se lanzó el sistema gráfico IBM 8514 como una de las primeras tarjetas de video compatibles con IBM PC en implementar primitivas 2D de función fija en hardware electrónico. El X68000 de Sharp, lanzado en 1987, usó un conjunto de chips de gráficos personalizados con una paleta de 65,536 colores y soporte de hardware para sprites, desplazamiento y múltiples campos de juego, y finalmente sirvió como una máquina de desarrollo para la placa de arcade CP System de Capcom. Fujitsu luego 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.
El estándar de visualización Video Graphics Array (VGA) propiedad de IBM se introdujo 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 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 propiedad de IBM. Resoluciones de visualización de gráficos habilitados para Super VGA de hasta 800 × 600 píxeles, un aumento del 36%.
1990
En 1991, S3 Graphics presentó el S3 86C911, que sus diseñadores llamaron así por el 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 propósito general en el rendimiento de Windows, y estos coprocesadores se desvanecieron del mercado de PC.
A lo largo de la década de 1990, la aceleración de GUI 2D siguió 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 posterior interfaz DirectDraw 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 basado en SGI Onyx 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 usar en computadoras domésticas en 1995; Fujitsu Pinolite, el primer procesador de geometría 3D para computadoras personales, lanzado en 1997. La primera GPU T&L de hardware en las consolas de videojuegos domésticas fue el Reality Coprocessor de Nintendo 64, lanzado en 1996. En 1997, Mitsubishi lanzó el 3Dpro/2MP, un GPU destacada capaz de transformación e iluminación, para estaciones de trabajo y escritorios de 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 de 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 características 3D integradas. Muchos incluso eran compatibles con los pines de 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 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. Verite de RenditionLos conjuntos de chips fueron de los primeros en hacer esto lo suficientemente bien como para ser dignos de mención. En 1997, Rendition fue un paso más allá al colaborar con Hercules y Fujitsu en un proyecto de "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 de Nvidia. 256. Esta tarjeta, diseñada para reducir la carga de la CPU del sistema, nunca llegó al mercado.
OpenGL apareció a principios de los 90 como una API de gráficos profesional, pero originalmente sufrió problemas de rendimiento que permitieron que la API Glide 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 eran comunes durante este tiempo, aunque la influencia de OpenGL finalmente condujo a un soporte de hardware generalizado. Con el tiempo, surgió una paridad entre las funciones que se ofrecen en el 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 brindar 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 funciones específicas, de las que las aplicaciones OpenGL existentes ya podían beneficiarse, dejando a DirectX a menudo una generación atrás. (Ver: 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 orientar los lanzamientos de DirectX para que coincidieran con los del hardware de gráficos compatible. Direct3D 5.0 fue la primera versión de la floreciente API en obtener una adopción generalizada en el mercado de los juegos, y compitió directamente con muchas bibliotecas de gráficos más específicas de hardware, a menudo propietarias, mientras que OpenGL mantuvo un gran número de seguidores. Direct3D 7.0 introdujo soporte para transformación e iluminación (T&L) aceleradas por hardware para Direct3D, mientras que OpenGL ya tenía esta capacidad expuesta desde su inicio. Las tarjetas aceleradoras 3D dejaron 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 y la iluminación del hardware, 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 sombreado de vértices que eran mucho más flexibles y programables.
2000 a 2010
Nvidia fue el primero en producir un chip capaz de sombreado programable; la geforce 3(nombre en código NV20). Cada píxel ahora podría ser procesado por un "programa" corto que podría incluir texturas de imagen adicionales como entradas, y cada vértice geométrico también podría ser procesado por un programa corto antes de ser proyectado en la pantalla. Usado en la consola Xbox, compitió con PlayStation 2, que usaba 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 en realidad eran más parecidos a un bloque de funciones altamente personalizable y realmente 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 Unified Shader Model.
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 operaciones 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 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.
Con la introducción de la serie Nvidia GeForce 8, y luego las nuevas GPU genéricas de unidades de procesamiento de flujo 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 GPU Computing o GPGPU por 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 científico de imágenes, álgebra lineal, estadística,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 cuádruple con un sombreador de píxeles apropiado. Obviamente, esto implica algunos gastos generales, ya que unidades como Scan Converter están involucradas donde realmente no se necesitan (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 GPGPU más utilizada por los desarrolladores tanto en EE. UU. como en Asia Pacífico.
2010 al presente
En 2010, Nvidia inició una asociación con Audi para potenciar 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 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 usar en dispositivos móviles. La línea de tarjetas gráficas Kepler 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 del reloj de una tarjeta de video para aumentarla o disminuirla según su consumo de energía. La microarquitectura Kepler se fabricó en 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 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, la compañía de fabricación de semiconductores de Taiwán, 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 altos. Los fabricantes de auriculares VR recomendaron la GTX 970 y la R9 290X o superior en el momento de su lanzamiento.Pascal es la próxima generación de tarjetas gráficas de consumo 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 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 son núcleos especialmente diseñados para el aprendizaje profundo, mientras que la memoria de gran ancho de banda es una memoria integrada, apilada y de menor frecuencia de reloj que ofrece un bus de memoria extremadamente amplio que es útil para el propósito previsto de Titan V. Para enfatizar que 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 los 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 de GPU Vega 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). 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. Las RX 6800 y 6800 XT se lanzaron el 18 de noviembre de 2020 y la RX 6900 XT se lanzó el 8 de diciembre de 2020. La RX 6700 XT, que se basa en Navi 22, se lanzó el 18 de marzo de 2021.
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 bajo varias marcas. En 2009, Intel, Nvidia y AMD/ATI fueron los líderes en participación de mercado, con una participación de mercado del 49,4 %, 27,8 % y 20,6 %, respectivamente. Sin embargo, esos números incluyen las soluciones de gráficos integrados de Intel como GPU. Sin contarlos, 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 usan la mayoría de sus transistores para hacer 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 VGA). Las tarjetas más nuevas como AMD/ATI HD5000-HD7000 incluso carecen de aceleración 2D dedicada; tiene que ser emulado por hardware 3D. Inicialmente, las GPU se utilizaron para acelerar el trabajo intensivo de memoria del mapeo de texturas y la representación de polígonos, y luego se agregaron unidades 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 compatibles con CPU, sobremuestreo y técnicas de 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; son especialmente adecuados para otros problemas vergonzosamente paralelos.
Varios factores de la construcción de la GPU intervienen en el rendimiento de la tarjeta para el renderizado 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 del reloj y la cantidad y el tamaño de varios cachés de memoria en el chip. Además, la cantidad de multiprocesadores de transmisión (SM) para GPU NVidia o unidades de cómputo (CU) para GPU AMD, que describen la cantidad de unidades de procesador de núcleo en silicio dentro del chip de GPU que realizan los cálculos principales, normalmente trabajando en paralelo con otros 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 brindan un rendimiento medido en teraflops (TFLOPS).
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 tensores (TPU) fabricada por Google. Sin embargo, los ASIC requieren cambios en el código existente y las GPU siguen siendo muy populares.
Decodificación y codificación de video acelerada por GPU
La mayoría de las GPU fabricadas desde 1995 son compatibles con 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 son compatibles con las primitivas MPEG, como la compensación de movimiento e iDCT. Este proceso de decodificación de video acelerada por hardware, en el que partes del proceso de decodificación de video y el posprocesamiento de video se descargan en el hardware de la GPU, se denomina comúnmente "descodificación de video acelerada por GPU", "descodificación de video asistida por GPU", "descodificación de video acelerada por GPU". decodificación de video" o "descodificació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. Las API más comunes para la decodificación de video acelerada por GPU son DxVA para el sistema operativo 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 videos codificados con MPEG-1, MPEG-2, MPEG-4 ASP (MPEG-4 Parte 2), MPEG-4 AVC (H.264/DivX 6), VC-1, WMV3/WMV9, Xvid / OpenDivX (DivX 4) y códecs DivX 5, mientras que XvMC solo es capaz de decodificar MPEG-1 y MPEG-2.
Hay varias soluciones dedicadas de decodificación y codificación de video de hardware.
Procesos de decodificación de video que se pueden acelerar
Los procesos de decodificación de video que pueden acelerarse con el hardware de GPU moderno actual son:
- Compensación de movimiento (mocomp)
- Transformada de coseno discreta inversa (iDCT)
- Telecine inverso 3:2 y corrección desplegable 2:2
- Transformada de coseno discreta modificada inversa (iMDCT)
- Filtro de desbloqueo en bucle
- Predicción intra-frame
- Cuantificación inversa (IQ)
- Decodificación de longitud variable (VLD), más comúnmente conocida como aceleración de nivel de segmento
- Desentrelazado espacio-temporal y entrelazado automático/detección de fuente progresiva
- Procesamiento de flujo de bits (codificación de longitud variable adaptable al contexto/codificación aritmética binaria adaptable al contexto) y posicionamiento perfecto de píxeles.
Las operaciones anteriores también tienen aplicaciones en la edición, codificación y transcodificación de video.
Formularios GPU
Terminología
En las computadoras personales, hay dos formas principales de GPU. Cada uno tiene muchos sinónimos:
- Tarjeta gráfica dedicada, también llamada discreta.
- Gráficos integrados: también llamados: soluciones gráficas compartidas, procesadores gráficos integrados (IGP) o arquitectura de memoria unificada (UMA).
GPU específica 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 masivos:
- Juego de azar
- GeForce GTX, RTX
- Titán Nvidia
- Serie Radeon HD, R5, R7, R9, RX, Vega y Navi
- Radeon VII
- Juegos en la nube
- RED Nvidia
- Cielo de radeon
- Puesto de trabajo
- nvidia quadro
- NvidiaRTX
- AMD Fire Pro
- AMD Radeon Pro
- Intel Arc Pro
- Estación de trabajo en la nube
- nvidia tesla
- AMD FireStream
- Formación en Inteligencia Artificial y Cloud
- nvidia tesla
- Instinto AMD Radeon
- Coche automatizado/sin conductor
- Unidad Nvidia PX
Tarjetas gráficas dedicadas
Las GPU de la clase más poderosa generalmente interactúan 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 admitir la mejora 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.
Una GPU dedicada no es necesariamente extraíble, ni necesariamente interactúa con la placa base de forma 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 (ver GDDR). A veces, los sistemas con GPU dedicadas y discretas se llamaban sistemas "DIS",a diferencia de los sistemas "UMA" (ver la siguiente sección). 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, patentada debido a las 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.
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 completamente varias GPU, ya que la mayoría de los usuarios no pueden pagarlas. Todavía se usan varias GPU en supercomputadoras (como en Summit), en estaciones de trabajo para acelerar el video (procesar varios videos a la vez) y renderizado 3D, para efectos visuales y simulaciones, y en IA para agilizar la capacitación, 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 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 memoria RAM del sistema de una computadora en lugar de la memoria gráfica dedicada. Los IGP se pueden integrar en la placa base como parte del conjunto de chips (northbridge) o en el mismo troquel (circuito integrado) con la CPU (como AMD APU o Intel HD Graphics). En ciertas placas base, los IGP de AMD pueden usar memoria sideport 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 alrededor del 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 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. Sin embargo, los procesadores de gráficos integrados modernos, como la Unidad de procesamiento acelerado de AMD y los Gráficos Intel HD, 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 consumen mucha 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. Las IGP pueden tener hasta 29,856 GB/s de ancho de banda de memoria desde 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 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 lo incluyen.
Procesamiento de gráficos híbridos
Esta clase más nueva 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 costosas que las tarjetas gráficas dedicadas. Estos comparten memoria con el sistema y tienen una pequeña caché de memoria dedicada, para compensar la alta latencia de la RAM del sistema. Las tecnologías dentro de PCI Express pueden hacer esto posible. Si bien estas soluciones a veces se anuncian con hasta 768 MB de RAM, esto se refiere a cuánto se puede compartir con la memoria del sistema.
Procesamiento de flujo y GPU de propósito general (GPGPU)
Cada vez es 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 de cómputo. Este concepto convierte el enorme poder de cómputo del canal de sombreado de un acelerador de gráficos moderno en un poder de cómputo de propósito general, en lugar de estar cableado únicamente para realizar operaciones gráficas. En ciertas aplicaciones que requieren operaciones vectoriales masivas, esto puede generar un rendimiento superior en varios órdenes de magnitud al de una CPU convencional. Los dos mayores diseñadores de GPU discretos (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 usar 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 poderosas del mundo aprovechan la aceleración de 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 denominadas 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 C aprovechen la capacidad de una GPU para operar en grandes búferes en paralelo, mientras siguen usando la CPU cuando sea apropiado. CUDA también es 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 del uso de una API de gráficos.
Desde 2005 ha habido interés en utilizar el rendimiento que ofrecen las GPU para el cálculo evolutivo 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 anfitriona y transfieren el ejecutable a la GPU para que se ejecute. Por lo general, la ventaja de rendimiento solo se obtiene ejecutando el único programa activo 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 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.
Algunas GPU modernas para estaciones de trabajo, como las tarjetas para estaciones 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 tensores. En la serie actual de GPU de Nvidia, estos núcleos se denominan Tensor Cores. Estas GPU suelen tener aumentos significativos en el rendimiento de FLOPS, utilizando multiplicación y división de matrices de 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 tensoriales 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 de gráficos externos a veces se usan con computadoras portátiles. Las computadoras portátiles pueden tener una cantidad sustancial de RAM y una unidad central de procesamiento (CPU) lo 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 energéticamente. Los chips gráficos incorporados a menudo no son lo suficientemente potentes para jugar videojuegos o para otras tareas gráficas intensivas, como la edición de video o la animación/renderización 3D.
Por lo tanto, es deseable poder conectar una GPU a algún bus externo de una computadora 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) o un puerto Thunderbolt 1, 2 o 3 (PCIe ×4, hasta 10, 20 o 40 Gbit/s respectivamente). Esos puertos solo están disponibles en ciertos sistemas portátiles. Los gabinetes eGPU incluyen su propia fuente de alimentación (PSU), porque las potentes GPU pueden consumir fácilmente cientos de vatios.
El soporte oficial de proveedores para GPU externas ha cobrado impulso 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 de hardware importantes (HP, Alienware, Razer) que lanzan gabinetes Thunderbolt 3 eGPU. Este soporte ha seguido impulsando las implementaciones de eGPU por parte de los entusiastas.
Contenido relacionado
Hermanos montgolfier
Sistema de carreteras numeradas de Estados Unidos
Fibra metálica