A Fondo
Procesador y cuello de botella en juegos: Cuando tu procesador supera los requisitos de sobra, pero sigues teniendo problemas
El procesador es uno de los componentes más importantes de cualquier PC, tanto que, de hecho, este puede generar un cuello de botella importante si no es lo bastante potente, y acabará afectando a otros componentes. En este sentido, uno de los cuellos de botella más frecuentes, y más conocidos, es el que se produce en juegos cuando el procesador lastra a la tarjeta gráfica, haciendo que está no pueda desarrollar todo su potencial.
Sin embargo, debemos tener claro que un cuello de botella a nivel de procesador no siempre es malo, y que en el fondo es algo casi imposible de evitar cuando hablamos de juegos. Esto tiene una explicación, y es que los desarrollos de videojuegos parten, a día de hoy, de las consolas de la anterior generación. Dichas consolas están equipadas con procesadores AMD Jaguar de bajo consumo, cuyo IPC está al nivel de los procesadores Intel Atom de 2013, y que encima funcionan a una frecuencia muy baja: 1,6 GHz en PS4 y 1,75 GHz en Xbox One.
Cuando un juego se desarrolla para una consola con un hardware tan pobre, esto establece una limitación importante a la hora de aprovechar un hardware más avanzado, ya que dicho título no ha sido programado para trabajar de forma óptima con procesadores actuales de alto rendimiento que tengan un elevado número de núcleos e hilos.
No es difícil de entender, si desarrollas un juego para una arquitectura determinada, y lo optimizas para que funcione bien en un hardware muy limitado, al final tienes dos opciones: crear una versión distinta, con una optimización mejorada para que sea capaz de trabajar bien con un hardware más moderno, o introducir optimizaciones menores para maquillar un poco el resultado final.
La primera opción requiere de un trabajo importante por parte de los desarrolladores, y obliga a cambiar numerosos aspectos que podrían hacer que la versión para consolas luzca peor que la versión para PC. La segunda requiere menos esfuerzo, pero como contrapartida también introduce menos mejoras y presenta una optimización claramente inferior.
Piensa, por un momento, en Crysis. Este juego llegó a PC en 2007, y fue toda una demostración de buen hacer a nivel técnico por parte de Crytek. Para funcionar de forma óptima, necesitaba de un procesador de doble núcleo, una generosa cantidad de memoria RAM y una tarjeta gráfica con arquitectura de shaders unificados.
Sus exigencias a nivel de hardware eran tan altas que realizar una adaptación directa a PS3 y Xbox 360 era simplemente imposible, y fue necesario esperar muchos años hasta que, al final, se pudo desarrollar una versión totalmente adaptada a ambas consolas. El vídeo adjunto habla por sí solo, y no debemos olvidar que la versión para ambas consolas tuvo que renunciar al nivel «Ascensión», porque no era posible mantenerlo debido a sus limitaciones técnicas.
¿Por qué ocurre un cuello de botella a nivel de CPU en juegos?
El motor gráfico de un juego, unido a las diferentes optimizaciones que se realizan durante el proceso de desarrollo, determina qué tipo de uso puede hacer de un procesador, y esto está vinculado a aspectos muy importantes de dicho juego, como por ejemplo las animaciones, la inteligencia artificial y la física.
Como hemos anticipado, si tienes que partir de una base muy modesta, como esa CPU AMD Jaguar de PS4 y Xbox One, no puedes utilizar animaciones, físicas e inteligencia artificial avanzadas en la versión para PC salvo que introduzcas cambios muy profundos, y que crees una versión muy diferente de aquella. El problema es que los desarrolladores se han acostumbrado, por lo general, a realizar ports que no son capaces de aprovechar de verdad el hardware de un PC actual.
Sin embargo, este problema no ha sido algo exclusivo del PC. Recordad, por ejemplo, lo que ocurrió en la generación de las consolas de 128 bits. Xbox estaba a años luz de PS2, pero los títulos multiplataforma lucían prácticamente igual en ambas consolas, debido a esa «pereza» de los desarrolladores, que se limitaban a programar el juego sobre la base menos potente (PS2 en ese caso), y a llevarla sin cambios a todas las plataformas, generando con ello una falsa sensación de paridad que luego se veía totalmente rota con los exclusivos de Xbox.
- Que el procesador no tenga suficientes núcleos para mover el juego que estamos ejecutando. Así, por ejemplo, si un juego necesita cuatro núcleos, pero tenemos una CPU de dos núcleos, puede que este funcione, pero con graves problemas de rendimiento.
- Que nuestro procesador tenga suficientes hilos para mover un juego concreto, pero no suficientes núcleos. Es una situación que no resulta tan mala como la anterior, ya que nuestro procesador tiene hilos suficientes para paralelizar todos los procesos que requiere un juego, pero el rendimiento tampoco termina de ser óptimo porque cada núcleo se ve obligado a trabajar con un proceso y un subproceso. Si tuviéramos suficientes núcleos, cada núcleo solo movería un proceso, y el rendimiento sería claramente superior. Por ejemplo, un procesador de cuatro núcleos y cuatro hilos rendiría mejor que uno de dos núcleos y cuatro hilos ejecutando un juego que requiera cuatro núcleos.
- También puede ocurrir que nuestro procesador tenga suficientes núcleos, pero que su IPC (instrucciones por ciclo de reloj) sea bajo, y/o que su frecuencia sea muy reducida. En estos casos, también se puede producir un importante cuello de botella en juegos.
- Que el juego no esté debidamente optimizado para aprovechar el procesador que tenemos. Es algo que se está convirtiendo en un problema muy frecuente.
Todo lo que hemos explicado hasta ahora nos da la base que necesitamos para entender el problema del cuello de botella que, durante los últimos años, se ha venido produciendo a nivel de CPU. Los tres primeros puntos no tienen mayor problema y son muy fáciles de entender. Actualmente, para poder mover juegos triple A exigentes de forma óptima, necesitamos un procesador que cumpla, como mínimo, estos requisitos:
- Cuatro núcleos y ocho hilos, aunque ya hay títulos que escalan en seis núcleos y doce hilos.
- IPC al nivel de Skylake o Ryzen de tercera generación.
- Una frecuencia de trabajo de 4 GHz en todos los núcleos.
Mi procesador supera los requisitos de un juego, pero tengo cuello de botella
Ya sabemos qué es un cuello de botella a nivel de CPU, ha quedado muy claro por qué se puede producir, y tenemos un trasfondo que nos permite entender sin problema todo lo que os vamos a explicar a continuación. De lo anterior, podríamos deducir que, para superar un cuello de botella a nivel de CPU, bastaría con cambiar el procesador, pero esta no es, por desgracia, una verdad universal.
Imagina la siguiente escena. Compruebas los requisitos de Battlefield 2042, uno de los juegos triple A más importantes del momento, y descubres que necesitas, como mínimo, un procesador Intel Core i7-4790 o un Ryzen 7 2700X. Ves que las equivalencias no tienen sentido, pero como tienes un Ryzen 7 3800X y cumples de sobra los requisitos no le das importancia. Lo instalas, empiezas a jugar y descubres, anonadado, que a pesar de todo tu procesador ejerce un enorme cuello de botella en tu tarjeta gráfica. ¿Por qué ocurre esto? Es muy sencillo, por lo que te he contado en el punto 4, por un problema de optimización.
Mira la imagen que está justo encima de estas líneas, es una captura de Battlefield 2042 funcionando en mi PC, que está equipado con un Ryzen 7 5800X, 32 GB de memoria RAM DDR4 y una GeForce RTX 3080 Ti. La configuración gráfica que utilicé fue resolución 1440p, trazado de rayos activo y calidad máxima. A pesar de todo, el uso de la CPU era bajísimo, apenas un 34-35%, y esto hacía que el uso de la GPU rondase entre un 50% y un 70%.
Obviamente, en ese escenario, reducir la calidad gráfica no tiene ningún sentido, ya que la GPU ya se ve frenada por el cuello de botella que deriva del bajo uso del procesador. Cuando subimos la resolución a 4K la cosa cambia, pero no porque se haya producido un milagro en términos de optimización, sino porque la tarjeta gráfica tiene que trabajar, de base, con una cantidad de píxeles mucho mayor.
Ese bajo uso del procesador que general el cuello de botella en Battlefield 2042 se debe, en resumen, de una pobre optimización por parte de los desarrolladores, que no se han molestado en introducir mejoras a nivel de programación par que el juego escale en CPUs multihilo actuales, y sí, es una consecuencia de que este juego haya sido desarrollado como un título intergeneracional (PS4 y Xbox One fueron las bases mínimas a nivel de hardware). Otros títulos recientes como Far Cry 6, por ejemplo, sufren ese mismo problema.
¿Qué supone este cuello de botella para el usuario? Un problema muy serio
Los juegos actuales siguen mostrando una importante dependencia del IPC y de las frecuencias de trabajo, más que de la cantidad de núcleos e hilos totales. Esto hace que, por ejemplo, un Ryzen 7 2700X, que tiene 8 núcleos y 16 hilos, rinda casi igual, en juegos, que un Core i3-10100, que solo tiene 4 núcleos y 8 hilos, y que en algunos casos tenga incluso un rendimiento inferior. Es comprensible ya que, al final, cuando llegamos a la barrera de los 4 núcleos y 8 hilos, o de los 6 núcleos físicos, el rendimiento monohilo del procesador pasa a ser el protagonista.
Si tienes un procesador potente y con muchos núcleos e hilos, pero un juego no termina de irte del todo bien y confirmas un cuello de botella no te preocupes, como has podido ver en este artículo no es culpa tuya, es una cuestión de optimización inherente al propio juego, que es incapaz de paralelizar de forma óptima en una CPU con un alto número de núcleos e hilos.
Llevamos muchos años viendo esa tendencia, y por desgracia no parece que vaya a cambiar ni a corto ni a medio plazo, ya que PS4 y Xbox One tienen, todavía, bastante vida por delante, y su base combinada de más de 170 millones de consolas es un atractivo más que suficiente para que los desarrolladores sigan teniéndolas en cuenta. Para aquellos que siguen estancados en un procesador de cuatro núcleos y ocho hilos, esta es una buena noticia, ya que podrán seguir estirando su equipo, pero para aquellos que tenemos una solución más potente, es otro ejemplo más de que el software está avanzando mucho más despacio que el hardware.
Si te preguntas cuándo superaremos esta situación, la respuesta no es complicada: cuando se complete la transición a la nueva generación, y los desarrollos de videojuegos pasen a tener, como plataforma base, a PS5 y Xbox Series X-S. Ambas consolas tienen un procesador con 8 núcleos basado en Zen 2, aunque se trata de una versión recortada que está integrada en una APU, y que no solo trabaja a menor frecuencia que un procesador Zen 2 para PC, sino que además tiene recortes notables a nivel interno, incluyendo aspectos tan importantes como la caché L3 y ciertas instrucciones (ausencia de AVX256, por ejemplo).
Para entenderlo mejor, basta con comparar directamente la CPU de Xbox Series X con un procesador Ryzen 7 3700X. La primera tiene 8 núcleos a 3,8 GHz, pero baja a 3,6 GHz si trabaja con 16 hilos, suma 4 MB de caché L2 y tiene 8 MB de caché L3. Por contra, el segundo tiene 8 núcleos y 16 hilos a 4,2 GHz (modo turbo con todos los núcleos e hilos activos), suma también 4 MB de caché L2, pero tiene 32 MB de caché L3. Esto significa que, en resumen, el procesador de las consolas de nueva generación no llega al nivel de un Ryzen 7 3700X.
La conclusión que debemos saber de lo que hemos dicho en el último párrafo es muy sencilla, y es que, aunque el cuello de botella provocado por el procesador que venimos sufriendo mejorará con esa transición a la nueva generación, tampoco debemos esperar un milagro, ya que cualquier cosa que esté por encima de la CPU que montan PS5 y Xbox Series X, como un Ryzen 9 3900X por ejemplo, seguirá estando desaprovechada en juegos. Si tienes dudas sobre qué procesadores son los mejores para juegos, no te pierdas esta guía.
-
GuíasHace 6 días
Qué placa base elegir: Guía de compras para Intel y AMD
-
GuíasHace 2 días
Guía para diferenciar generaciones y gamas de tarjetas gráficas
-
A FondoHace 6 días
Ofertas Flash del Black Friday 2024 de PcComponentes
-
A FondoHace 4 días
GeForce RTX 5050, especificaciones, rendimiento, equivalencias, fecha de lanzamiento y posible precio