¿Cómo funcionan las tarjetas gráficas?

AMD-Polaris

Desde que 3dfx debutó con el acelerador Voodoo original, ningún equipo en una PC ha tenido tanto impacto en la capacidad de juego de su máquina como la humilde tarjeta gráfica. Si bien otros componentes son absolutamente importantes, una PC de gama alta con 32 GB de RAM, una CPU de $ 4,000 y almacenamiento basado en PCIe se ahogará y morirá si se le pide que ejecute títulos AAA modernos en una tarjeta de diez años con resoluciones y niveles de detalle modernos. . Las tarjetas gráficas, también conocidas como GPU (unidades de procesamiento de gráficos) son fundamentales para el rendimiento del juego y las cubrimos ampliamente. Pero a menudo no nos sumergimos en lo que hace funcionar una GPU y cómo funcionan las tarjetas.

Por necesidad, esta será una descripción general de alto nivel de la funcionalidad de la GPU y cubrirá información común a las GPU integradas de AMD, Nvidia e Intel, así como cualquier tarjeta discreta que Intel pueda construir en el futuro basada en la arquitectura Xe. También debería ser común a las GPU móviles creadas por Apple, Imagination Technologies, Qualcomm, ARM y otros proveedores.

¿Por qué no ejecutamos el renderizado con CPU?

El primer punto que quiero abordar es por qué no usamos CPU para renderizar cargas de trabajo en juegos en primer lugar. La respuesta honesta a esta pregunta es que lata ejecutar cargas de trabajo de renderizado directamente en una CPU. Los primeros juegos en 3D que son anteriores a la disponibilidad generalizada de tarjetas gráficas, como Ultima Underworld, se ejecutaban completamente en la CPU. UU es un caso de referencia útil por varias razones: tenía un motor de renderizado más avanzado que juegos como Doom, con soporte completo para mirar hacia arriba y hacia abajo, así como características avanzadas como el mapeo de texturas. Pero este tipo de soporte tenía un alto precio: muchas personas carecían de una PC que realmente pudiera ejecutar el juego.



UU

Ultima Underworld. Imagen de GOG

En los primeros días de los juegos en 3D, muchos títulos como Half-Life y Quake II presentaban un renderizador de software para permitir a los jugadores sin aceleradores 3D jugar el título. Pero la razón por la que eliminamos esta opción de los títulos modernos es simple: las CPU están diseñadas para ser microprocesadores de uso general, que es otra forma de decir que carecen del hardware y las capacidades especializadas que ofrecen las GPU. Una CPU moderna podría manejar fácilmente títulos que tendían a tartamudear cuando se ejecutaban en software hace 18 años, pero ninguna CPU en la Tierra podría manejar fácilmente un juego AAA moderno a partir de hoy si se ejecuta en ese modo. No, al menos, sin algunos cambios drásticos en la escena, la resolución y varios efectos visuales.

Como un ejemplo divertido de esto: Threadripper 3990X es capaz de ejecutar Crysis en modo software, aunque no todo eso.bien.

¿Qué es una GPU?

Una GPU es un dispositivo con un conjunto de capacidades de hardware específicas que están diseñadas para mapear bien la forma en que varios motores 3D ejecutan su código, incluida la configuración y ejecución de la geometría, el mapeo de texturas, el acceso a la memoria y los sombreadores. Existe una relación entre la forma en que funcionan los motores 3D y la forma en que los diseñadores de GPU crean hardware. Algunos de ustedes recordarán que la familia HD 5000 de AMD usaba una arquitectura VLIW5, mientras que ciertas GPU de gama alta en la familia HD 6000 usaban una arquitectura VLIW4. Con GCN, AMD cambió su enfoque del paralelismo, en nombre de extraer un rendimiento más útil por ciclo de reloj.

Evolución de la GPU

Nvidia acuñó por primera vez el término 'GPU' con el lanzamiento de la GeForce 256 original y su soporte para realizar cálculos de iluminación y transformación de hardware en la GPU (esto correspondía, aproximadamente, al lanzamiento de DirectX 7 de Microsoft). La integración de capacidades especializadas directamente en el hardware fue un sello distintivo de las primeras tecnologías de GPU. Muchas de esas tecnologías especializadas todavía se emplean (en formas muy diferentes). Es más eficiente en el consumo de energía y más rápido tener recursos dedicados en el chip para manejar tipos específicos de cargas de trabajo que intentar manejar todo el trabajo en una única matriz de núcleos programables.

Hay una serie de diferencias entre los núcleos de la GPU y la CPU, pero en un nivel alto, puede pensar en ellos de esta manera. Las CPU suelen estar diseñadas para ejecutar código de un solo subproceso de la manera más rápida y eficiente posible. Características como SMT / Hyper-Threading mejoran esto, pero escalamos el rendimiento de subprocesos múltiples al apilar más núcleos de subproceso único de alta eficiencia uno al lado del otro. Las CPU Epyc de 64 núcleos / 128 hilos de AMD son las más grandes que puede comprar en la actualidad. Para poner eso en perspectiva, la GPU Pascal de gama más baja de Nvidia tiene 384 núcleos, mientras que la CPU x86 con mayor número de núcleos del mercado alcanza los 64. Un 'núcleo' en el lenguaje de la GPU es un procesador mucho más pequeño.

Nota: No puede comparar ni estimar el rendimiento de juego relativo entre AMD, Nvidia e Intel simplemente comparando la cantidad de núcleos de GPU. Dentro la misma familia de GPU (por ejemplo, la serie GeForce GTX 10 de Nvidia o la familia RX 4xx o 5xx de AMD), un número de núcleos de GPU más alto significa que la GPU es más potente que una tarjeta de gama baja. Las comparaciones basadas en FLOPS son sospechosas por las razones discutidas aquí.

La razón por la que no puede sacar conclusiones inmediatas sobre el rendimiento de la GPU entre fabricantes o familias de núcleos basándose únicamente en el número de núcleos es que las diferentes arquitecturas son cada vez menos eficientes. A diferencia de las CPU, GPU están diseñados para trabajar en paralelo. Tanto AMD como Nvidia estructuran sus tarjetas en bloques de recursos informáticos. Nvidia llama a estos bloques SM (Streaming Multiprocessor), mientras que AMD se refiere a ellos como una Unidad de Computación.

PascalSM

Un multiprocesador Pascal Streaming (SM).

Cada bloque contiene un grupo de núcleos, un programador, un archivo de registro, caché de instrucciones, caché de textura y L1 y unidades de mapeo de textura. El SM / CU se puede considerar como el bloque funcional más pequeño de la GPU. No contiene literalmente todo: motores de decodificación de video, salidas de renderización requeridas para dibujar una imagen en pantalla y las interfaces de memoria utilizadas para comunicarse con la VRAM integrada están fuera de su alcance, pero cuando AMD se refiere a una APU como 8 o 11 Unidades de Computación Vega, este es el bloque (equivalente) de silicio del que están hablando. Y si observa un diagrama de bloques de una GPU, cualquier GPU, notará que es el SM / CU el que se duplica una docena o más de veces en la imagen.

Y aquí está Pascal, edición completa.

Cuanto mayor sea el número de unidades SM / CU en una GPU, más trabajo puede realizar en paralelo por ciclo de reloj. El renderizado es un tipo de problema que a veces se denomina 'vergonzosamente paralelo', lo que significa que tiene el potencial de escalar extremadamente bien a medida que aumentan los recuentos de núcleos.

Cuando hablamos de diseños de GPU, a menudo usamos un formato que se parece a esto: 4096: 160: 64. El recuento de núcleos de GPU es el primer número. Cuanto más grande es, más rápida es la GPU, siempre que estemos comparando dentro de la misma familia (GTX 970 versus GTX 980 versus GTX 980 Ti, RX 560 versus RX 580, y así sucesivamente).

Mapeo de texturas y salidas de renderizado

Hay otros dos componentes principales de una GPU: unidades de mapeo de texturas y salidas de renderizado. El número de unidades de mapeo de texturas en un diseño dicta su salida máxima de texel y qué tan rápido puede direccionar y mapear texturas en objetos. Los primeros juegos 3D usaban muy poca textura porque el trabajo de dibujar formas poligonales 3D era bastante difícil. Las texturas en realidad no son necesarias para los juegos en 3D, aunque la lista de juegos que no las usan en la era moderna es extremadamente pequeña.

El número de unidades de mapeo de texturas en una GPU está representado por la segunda cifra en la métrica 4096: 160: 64. AMD, Nvidia e Intel generalmente cambian estos números de manera equivalente a medida que escalan una familia de GPU hacia arriba y hacia abajo. En otras palabras, realmente no encontrará un escenario en el que una GPU tenga una configuración 4096: 160: 64 mientras que una GPU encima o debajo de ella en la pila tenga una configuración 4096: 320: 64. El mapeo de texturas puede ser un cuello de botella en los juegos, pero la siguiente GPU más alta en la pila de productos normalmente ofrecerá al menos más núcleos de GPU y unidades de mapeo de texturas (si las tarjetas de gama alta tienen más ROP depende de la familia de GPU y la configuración de la tarjeta ).

Las salidas de render (también llamadas a veces canalizaciones de operaciones ráster) son donde la salida de la GPU se ensambla en una imagen para mostrarla en un monitor o televisión. El número de salidas de renderizado multiplicado por la velocidad del reloj de la GPU controla la tasa de relleno de píxeles. Un mayor número de ROP significa que se pueden generar más píxeles simultáneamente. Los ROP también manejan el antialiasing y habilitan AA - especialmente AA de supermuestreo: puede resultar en un juego con una tasa de relleno limitada.

Ancho de banda de memoria, capacidad de memoria

Los últimos componentes que discutiremos son el ancho de banda de la memoria y la capacidad de la memoria. El ancho de banda de la memoria se refiere a la cantidad de datos que se pueden copiar hacia y desde el búfer VRAM dedicado de la GPU por segundo. Muchos efectos visuales avanzados (y resoluciones más altas en general) requieren más ancho de banda de memoria para ejecutarse a velocidades de cuadro razonables porque aumentan la cantidad total de datos que se copian dentro y fuera del núcleo de la GPU.

En algunos casos, la falta de ancho de banda de memoria puede ser un cuello de botella sustancial para una GPU. Las APU de AMD como el Ryzen 5 3400G tienen un ancho de banda muy limitado, lo que significa aumentando su frecuencia de reloj DDR4 puede tener un impacto sustancial en el rendimiento general. La elección del motor del juego también puede tener un impacto sustancial en la cantidad de ancho de banda de memoria que necesita una GPU para evitar este problema, al igual que la resolución objetivo de un juego.

La cantidad total de memoria incorporada es otro factor crítico en las GPU. Si la cantidad de VRAM necesaria para ejecutarse en un nivel de detalle o resolución determinados excede los recursos disponibles, el juego a menudo se ejecutará, pero tendrá que usar la memoria principal de la CPU para almacenar datos de textura adicionales, y la GPU tarda mucho más para extraer datos de DRAM en lugar de su grupo integrado de VRAM dedicada. Esto conduce a una tartamudez masiva a medida que el juego se tambalea entre la extracción de datos de un conjunto rápido de memoria local y la RAM general del sistema.

Una cosa a tener en cuenta es que los fabricantes de GPU a veces equiparán una tarjeta de gama baja o media con más VRAM de lo que es estándar como una forma de cobrar un poco más por el producto. No podemos hacer un absoluto predicción de si esto hace que la GPU sea más atractiva porque, honestamente, los resultados varían según la GPU en cuestión. Lo que podemos decirle es que, en muchos casos, no vale la pena pagar más por una tarjeta si la única diferencia es un búfer de RAM más grande. Como regla general, las GPU de gama baja tienden a encontrarse con otros cuellos de botella antes de que se ahoguen con la memoria disponible limitada. En caso de duda, verifique las revisiones de la tarjeta y busque comparaciones de si una versión de 2GB es superada por la versión de 4GB o cualquiera que sea la cantidad relevante de RAM. La mayoría de las veces, asumiendo que todo lo demás es igual entre las dos soluciones, encontrará que no vale la pena pagar por la mayor carga de RAM.

Consulte nuestra serie 2007es.com Explains para obtener una cobertura más profunda de los temas tecnológicos más candentes de la actualidad.

Copyright © Todos Los Derechos Reservados | 2007es.com