Wedge
Jefe de Escuadrón Chapuza
- Registrado
- 12 Abr 2013
- Mensajes
- 2.502
- Puntos
- 0
Harto ya de tener que explicar hasta la saciedad la demanda que los juegos hacen del número de nucleos/hilos de un procesador, y porqué no es mejor usar un procesador actual con un elevado número de núcleos/hilos frente a otras soluciones más baratas e igualmente efectivas, abro este hilo para que debatamos sobre ello, y podamos aprender todos -entre los que me incluyo- un poco más.
Me hubiera gustado...
Bien, voy a poner un ejemplo concreto. Imaginemos un PC con una configuración gamer actual, con una tarjeta gráfica muy potente, no se, una GTX 680, 770, 780, o una AMD HD 7970, etc. Pongamos ahora que tenemos la duda de si es mejor un procesador intel i5 con cuatro núcleos o su análogo i7 con los mismos 4 núcleos pero con hyperthreading. La pregunta del millón es ¿rinde más un i7 por el mero hecho de tener 8 hilos que su análogo i5 con únicamente 4?. Si los juegos actuales demandaran más de 4 núcleos, debería haber una diferencia de rendimiento palpable entre un i5 y un i7.
Antes de poner el típico chorreo gráficas explicativas, me gustaría intentar explicar de una manera muy sencilla cómo un juego puede llegar a demandar más núcleos.
¿Y a qué viene todo este rollo?. Volvamos a los juegos:
Un juego perfectamente optimizado para procesadores multinúcleo sería capaz de subdividir todas las tareas que tiene entre el número exacto de procesadores que tenga la CPU. Es decir, que le daría igual que el procesador tuviera 2, 3 o 4 núcleos, pués dividiría por igual las tareas entre esos 2, 3 o 4 núcleos. Pero, ¿es así?. Hasta hace muy poco, la práctica totalidad de juegos estaba optimizada para dos núcleos (creo que esto tiene que ver con los núcleos de las anteriores consolas y su dependencia de DirectX9 y 10).
Ahora sin embargo, los nuevos juegos van a poder dividir sus tareas en 2, 4, 6, 8...n (probablemente los programadores se queden en un máximo de 8). Pero ¿quiere eso decir que vamos a necesitar 8 núcleos?. NO. Lo que quiere decir, es que en vez de ocupar gran parte de la capacidad de procesamiento de 2 núcleos de una CPU, ésta se va a poder repartir entre varias más. Obviamente, a más subdivisiones, menos carga del procesador. Donde antes estábamos usando 2 núcleos al 80%, por ejemplo, ahora podrá haber 4 al 40%, u 8 al 20%. ¿Cuándo serán necesarios 8 núcleos?. Cuando un juego se acerque a saturar esos 8 núcleos. Es decir, que la exigencia de CPU por parte de un juego tendría que cuadruplicarse respecto a la actual. ¡Cuadruplicarse!. Difícil, ¿no?. Máxime sabiendo que lo que más demanda un juego es la gráfica. Y la mayor evolución siempre será la gráfica. Mucho antes que el procesador.
Ahora vayamos al mito de la "Next Gen".
Aquí es donde yo creo que nace el mito.
Ahora vayamos a la gran pregunta ¿rinde más un i7 por el mero hecho de tener 8 hilos que su análogo i5 con únicamente 4?
No hasta que:
a) Existan juegos que necesiten más de 4 hilos dedicados e independientes de muy alta carga de CPU.
b) Que todas las tareas del juego subdivididas lleguen a saturar al menos 4 núcleos.
¿Eso va a pasar?. Ni pasa actualmente, ni va a pasar con el primer gran juego optimizado para un máximo de 8 núcleos, Battlefield 4 (o eso se cree, porque hasta ahora nadie ha visto esa optimización, y cuando digo nadie, es nadie), ni nadie lo ha anunciado. Ni los desarrolladores de juegos, ni los fabricantes de CPUs. ¡Nadie!. Sólo un mito, nacido en la oscuridad, extendido por interés...
Ahora vamos con el típico chorreo de gráficas.
- ¿Hace cuello de botella un i5 sobre un i7 en juegos?:
http://elchapuzasinformatico.com/2013/05/mi-cpu-hace-cuello-de-botella-aqui-la-posible-respuesta/
- ¿Un juego como Crysis 3 -ya que hoy mismo me lo han echado a la cara- funciona mejor con un i7 que con un i5?
Ésta es la más desfavorable a un i5 que he visto, porque en otras... No hay mucha diferencia ¿no?. Por no hablar del FX-6300 frente al FX-8150 (¿Eso cómo se explica?)
Vamos con el Starcraft 2
Vamos con un juego que ejecuta DirectX11
A mí, que alguien me explique cómo un i5 está a veces a igual o superior nivel que un i7 con el doble de hilos y un 50% más caro, si los núcleos o hilos son tan importantes. El hyperthreading es una mejora admirable, con muchos usos, pero en juegos, ¿tiene ventaja un i7 con 4 núcleos e hyperthreading frente a un i5 con 4 núcleos?. Muy, muy pequeña, y a veces ni eso. El i7 es para otras cosas, y funciona muy bien, pero no es apreciablemente mejor que un i5 en juegos. ¿Gastarse un 50% por 3-4-5 fps?. De locos. Mejor en gráfica, que ganas muchos más.
Y para terminar, carga de CPU en la Alpha de BF4, de lo más exigente visto hasta ahora:
¿Cómo se puede decir que se necesitan más de 4 núcleos para juegos?. Si hasta un i3 con HT lo mueve. Si hasta un FX-4xxx no tiene problemas. El único que lo pasa mal es el Phenom II, que se ve claramente saturado
Como imagino que habrá personas que no estén de acuerdo con lo que he dicho, les invito a poner sus teorías, de manera razonada, tal y como lo he razonado yo. No pretendo estar en posesión de ninguna verdad, y si me equivoco, prefiero enterarme cuanto antes. Pero eso me lo van a tener que demostrar aquí.
Me hubiera gustado...
Spoiler
Me hubiera gustado más abrir el hilo hablando un poco de la arquitectura intel, de su hyperthreading, o de AMD y de sus núcleos pareados en los FX, y de porqué un procesador con cuatro núcleos con hyperthreading no rendiría igual que uno con 8 núcleos sin hyperthreading, o de porqué un FX tampoco rendiría igual con 8 núcleos pareados 2 a 2 que si no fueran pareados (núcleos sin compartir ciertos recursos como la caché). Tampoco soy un experto en arquitectura de CPUs actuales, eso lo dejo claro, por lo que esperaba seguir aprendiendo sobre ello. Bueno, con suerte se irá hablando un poco de todo.
Bien, voy a poner un ejemplo concreto. Imaginemos un PC con una configuración gamer actual, con una tarjeta gráfica muy potente, no se, una GTX 680, 770, 780, o una AMD HD 7970, etc. Pongamos ahora que tenemos la duda de si es mejor un procesador intel i5 con cuatro núcleos o su análogo i7 con los mismos 4 núcleos pero con hyperthreading. La pregunta del millón es ¿rinde más un i7 por el mero hecho de tener 8 hilos que su análogo i5 con únicamente 4?. Si los juegos actuales demandaran más de 4 núcleos, debería haber una diferencia de rendimiento palpable entre un i5 y un i7.
Antes de poner el típico chorreo gráficas explicativas, me gustaría intentar explicar de una manera muy sencilla cómo un juego puede llegar a demandar más núcleos.
Spoiler
Antes de poner el típico chorreo gráficas explicativas, me gustaría intentar explicar de una manera muy sencilla cómo un juego puede llegar a demandar más núcleos. Obviamente, al no ser un experto en arquitectura de procesadores, agradecería cualquier corrección sobre todo aquello que no se ajuste a la realidad. Bien, vamos a ello. Las dos maneras que un juego (o cualquier otro proceso) tienen de demandar más núcleos de CPU son las siguientes:
1. Por saturación de instrucciones con el uso de muchos programas no multiprogramados. Hay tantas instrucciones que un procesador de X núcleos a una frecuencia Y, no da a basto para procesar toda la información que le va llegando, y hace de cuello de botella ralentizando el sistema. Para solucionarlo tenemos dos vías,
a)un aumento de frecuencia de procesamiento
b)un mayor número de núcleos
Ambos ayudarían a descongestionar el procesador. Obviamente, para que la opción b) pueda llevarse a cabo, el proceso en cuestión debe ser capaz de subdividir las tares del procesador en varias subtareas (tareas multiprogramadas o como se llamen). Es importante resaltar que los procesadores de múltiples núcleos no mejoran el rendimiento de tareas no multiprogramadas.
2. Por exigir hilos dedicados, independientes entre sí. Imaginemos un único programa que demande varias tareas (X+4) independientes simultáneamente. Un proceso principal que ejecuta el programa 'visible' y varios procesos en backup para ciertos cálculos o tareas dedicadas. Un procesador multinúcleo puede aprovechar mejor ese programa que uno mononúcleo, pero de nuevo, si los múltiples procesos demandan mucha carga de CPU, y la CPU sólo dispusiera de, por ejemplo X núcleos, volveríamos a saturar el procesador, ralentizando el sistema.
Obviamente no es tan sencillo. Un Sistema Operativo tiene decenas de pequeños procesos corriendo simultáneamente, pero suelen ser procesos con muy baja carga de CPU, lo que hace que para un usuario sea prácticamente imperceptible. Estas minitareas podemos considerarlas despreciables frente a programas muy exigentes.
1. Por saturación de instrucciones con el uso de muchos programas no multiprogramados. Hay tantas instrucciones que un procesador de X núcleos a una frecuencia Y, no da a basto para procesar toda la información que le va llegando, y hace de cuello de botella ralentizando el sistema. Para solucionarlo tenemos dos vías,
a)un aumento de frecuencia de procesamiento
b)un mayor número de núcleos
Ambos ayudarían a descongestionar el procesador. Obviamente, para que la opción b) pueda llevarse a cabo, el proceso en cuestión debe ser capaz de subdividir las tares del procesador en varias subtareas (tareas multiprogramadas o como se llamen). Es importante resaltar que los procesadores de múltiples núcleos no mejoran el rendimiento de tareas no multiprogramadas.
2. Por exigir hilos dedicados, independientes entre sí. Imaginemos un único programa que demande varias tareas (X+4) independientes simultáneamente. Un proceso principal que ejecuta el programa 'visible' y varios procesos en backup para ciertos cálculos o tareas dedicadas. Un procesador multinúcleo puede aprovechar mejor ese programa que uno mononúcleo, pero de nuevo, si los múltiples procesos demandan mucha carga de CPU, y la CPU sólo dispusiera de, por ejemplo X núcleos, volveríamos a saturar el procesador, ralentizando el sistema.
Obviamente no es tan sencillo. Un Sistema Operativo tiene decenas de pequeños procesos corriendo simultáneamente, pero suelen ser procesos con muy baja carga de CPU, lo que hace que para un usuario sea prácticamente imperceptible. Estas minitareas podemos considerarlas despreciables frente a programas muy exigentes.
¿Y a qué viene todo este rollo?. Volvamos a los juegos:
Un juego perfectamente optimizado para procesadores multinúcleo sería capaz de subdividir todas las tareas que tiene entre el número exacto de procesadores que tenga la CPU. Es decir, que le daría igual que el procesador tuviera 2, 3 o 4 núcleos, pués dividiría por igual las tareas entre esos 2, 3 o 4 núcleos. Pero, ¿es así?. Hasta hace muy poco, la práctica totalidad de juegos estaba optimizada para dos núcleos (creo que esto tiene que ver con los núcleos de las anteriores consolas y su dependencia de DirectX9 y 10).
Ahora sin embargo, los nuevos juegos van a poder dividir sus tareas en 2, 4, 6, 8...n (probablemente los programadores se queden en un máximo de 8). Pero ¿quiere eso decir que vamos a necesitar 8 núcleos?. NO. Lo que quiere decir, es que en vez de ocupar gran parte de la capacidad de procesamiento de 2 núcleos de una CPU, ésta se va a poder repartir entre varias más. Obviamente, a más subdivisiones, menos carga del procesador. Donde antes estábamos usando 2 núcleos al 80%, por ejemplo, ahora podrá haber 4 al 40%, u 8 al 20%. ¿Cuándo serán necesarios 8 núcleos?. Cuando un juego se acerque a saturar esos 8 núcleos. Es decir, que la exigencia de CPU por parte de un juego tendría que cuadruplicarse respecto a la actual. ¡Cuadruplicarse!. Difícil, ¿no?. Máxime sabiendo que lo que más demanda un juego es la gráfica. Y la mayor evolución siempre será la gráfica. Mucho antes que el procesador.
Ahora vayamos al mito de la "Next Gen".
Spoiler
Ahora vayamos al mito de la "Next Gen". Éste afirma que dado que las nuevas consolas van a usar 8 núcleos, y que DirectX11, entre otras muchas cosas, va a permitir subdividir las tareas de un juego en 8 hilos, todos los procesadores de 8 núcleos o hilos van a estar en franca ventaja respecto a los de 6, o 4. Ésta es la esencia del mito. Pero ¿qué hay de cierta en ella?.
Veamos. Como todos sabéis, los desarrolladores de juegos presionaron de una manera bestial para conseguir que tanto las nuevas consolas como los PC trabajaran con la misma arquitectura de procesadores, puesto que si no, un mismo juego debería ser programado dos o más veces para funcionar en distintos sistemas, con el enorme sobrecoste que eso supone. Dicho y hecho. Las nuevas consolas iban a funcionar con arquitectura compatible con los procesadores Intel y AMD actuales.
Ahora bien, si las consolas y los PCs pueden usar los mismos juegos, con el mismo rendimiento, ¿qué necesidad hay de comprarse una consola que 'solo' sirve para juegos, cuando un PC puede llegar a ser muchísimo más potente al no estar limitado por un precio fijo, y además si con un PC se pueden ejecutar todos los programas imaginables?. ¿Porqué comprarme una consola (un PC castrado) cuando un PC normal es tan superior?.
Veamos. Como todos sabéis, los desarrolladores de juegos presionaron de una manera bestial para conseguir que tanto las nuevas consolas como los PC trabajaran con la misma arquitectura de procesadores, puesto que si no, un mismo juego debería ser programado dos o más veces para funcionar en distintos sistemas, con el enorme sobrecoste que eso supone. Dicho y hecho. Las nuevas consolas iban a funcionar con arquitectura compatible con los procesadores Intel y AMD actuales.
Ahora bien, si las consolas y los PCs pueden usar los mismos juegos, con el mismo rendimiento, ¿qué necesidad hay de comprarse una consola que 'solo' sirve para juegos, cuando un PC puede llegar a ser muchísimo más potente al no estar limitado por un precio fijo, y además si con un PC se pueden ejecutar todos los programas imaginables?. ¿Porqué comprarme una consola (un PC castrado) cuando un PC normal es tan superior?.
Aquí es donde yo creo que nace el mito.
Spoiler
Aquí es donde yo creo que nace el mito. Imaginad a los fabricantes de consolas dándole vueltas al coco como locos. ¿Cómo lograr atraer a clientes?. ¿Cómo hacer que su consola sea más deseada que un PC?. ¿Cómo...?. Por fin, alguien encontró la piedra filosofal. Los 8 núcleos.
- Pero -dirían algunos escépticos-, pero... eso ya existe en los PCs, ¿cómo vamos a competir con ellos?. Y sólo el procesador de 8 núcleos más barato ya vale un cuarto del precio de la consola (un i7 ya ni hablamos).
- No -le respondería el genio de los 8 núcleos-, no van a ser 8 núcleos normales, serán 8 núcleos mucho más lentos, a la mitad que uno normal. Y mucho más baratos de fabricar que un procesador actual de 8 núcleos. Fabricar a baja frecuencia es más barato que fabricar a alta frecuencia, dado que las temperaturas aumentan exponencialmente. Tendremos procesadores mucho más baratos, y nos aprovecharemos de la posibilidad de subdividir procesos en 8. Con eso, aunque vayamos a la mitad de frecuencia, al tener el doble de núcleos tendremos el mismo rendimiento, pero más barato. ¡Tenemos la piedra filosofal!
- Pero, eso no es del todo cierto, un procesador de 4 núcleos que vaya al doble de velocidad tendría el mismo rendimiento, y no sale tan caro como uno de 8. Bueno. no, un i5, por ejemplo, tendrá un rendimiento superior, puesto que el procesador que propones de 8 núcleos, sus núcleos están pareados dos a dos, como todos los AMD, no son núcleos independientes. ¿Cómo demonios vamos a vender eso?.
- Muy sencillo... creemos un mito. Hacen falta 8 núcleos para jugar a los nuevos juegos, no 6 ni 4. 8 núcleos. Los nuevos juegos tendrán 8 hilos dedicados y cargaran a la CPU al máximo.
- (Si, sí, -pensará nuestro escéptico de los 8 núcleos-, pero la primera afirmación es mentira, y la segunda es cierta pero para tu procesador-tortuga).
- Pero -dirían algunos escépticos-, pero... eso ya existe en los PCs, ¿cómo vamos a competir con ellos?. Y sólo el procesador de 8 núcleos más barato ya vale un cuarto del precio de la consola (un i7 ya ni hablamos).
- No -le respondería el genio de los 8 núcleos-, no van a ser 8 núcleos normales, serán 8 núcleos mucho más lentos, a la mitad que uno normal. Y mucho más baratos de fabricar que un procesador actual de 8 núcleos. Fabricar a baja frecuencia es más barato que fabricar a alta frecuencia, dado que las temperaturas aumentan exponencialmente. Tendremos procesadores mucho más baratos, y nos aprovecharemos de la posibilidad de subdividir procesos en 8. Con eso, aunque vayamos a la mitad de frecuencia, al tener el doble de núcleos tendremos el mismo rendimiento, pero más barato. ¡Tenemos la piedra filosofal!
- Pero, eso no es del todo cierto, un procesador de 4 núcleos que vaya al doble de velocidad tendría el mismo rendimiento, y no sale tan caro como uno de 8. Bueno. no, un i5, por ejemplo, tendrá un rendimiento superior, puesto que el procesador que propones de 8 núcleos, sus núcleos están pareados dos a dos, como todos los AMD, no son núcleos independientes. ¿Cómo demonios vamos a vender eso?.
- Muy sencillo... creemos un mito. Hacen falta 8 núcleos para jugar a los nuevos juegos, no 6 ni 4. 8 núcleos. Los nuevos juegos tendrán 8 hilos dedicados y cargaran a la CPU al máximo.
- (Si, sí, -pensará nuestro escéptico de los 8 núcleos-, pero la primera afirmación es mentira, y la segunda es cierta pero para tu procesador-tortuga).
Ahora vayamos a la gran pregunta ¿rinde más un i7 por el mero hecho de tener 8 hilos que su análogo i5 con únicamente 4?
No hasta que:
a) Existan juegos que necesiten más de 4 hilos dedicados e independientes de muy alta carga de CPU.
b) Que todas las tareas del juego subdivididas lleguen a saturar al menos 4 núcleos.
¿Eso va a pasar?. Ni pasa actualmente, ni va a pasar con el primer gran juego optimizado para un máximo de 8 núcleos, Battlefield 4 (o eso se cree, porque hasta ahora nadie ha visto esa optimización, y cuando digo nadie, es nadie), ni nadie lo ha anunciado. Ni los desarrolladores de juegos, ni los fabricantes de CPUs. ¡Nadie!. Sólo un mito, nacido en la oscuridad, extendido por interés...
Ahora vamos con el típico chorreo de gráficas.
- ¿Hace cuello de botella un i5 sobre un i7 en juegos?:
http://elchapuzasinformatico.com/2013/05/mi-cpu-hace-cuello-de-botella-aqui-la-posible-respuesta/
Spoiler
- ¿Un juego como Crysis 3 -ya que hoy mismo me lo han echado a la cara- funciona mejor con un i7 que con un i5?
Spoiler
Ésta es la más desfavorable a un i5 que he visto, porque en otras... No hay mucha diferencia ¿no?. Por no hablar del FX-6300 frente al FX-8150 (¿Eso cómo se explica?)
Vamos con el Starcraft 2
Vamos con un juego que ejecuta DirectX11
A mí, que alguien me explique cómo un i5 está a veces a igual o superior nivel que un i7 con el doble de hilos y un 50% más caro, si los núcleos o hilos son tan importantes. El hyperthreading es una mejora admirable, con muchos usos, pero en juegos, ¿tiene ventaja un i7 con 4 núcleos e hyperthreading frente a un i5 con 4 núcleos?. Muy, muy pequeña, y a veces ni eso. El i7 es para otras cosas, y funciona muy bien, pero no es apreciablemente mejor que un i5 en juegos. ¿Gastarse un 50% por 3-4-5 fps?. De locos. Mejor en gráfica, que ganas muchos más.
Y para terminar, carga de CPU en la Alpha de BF4, de lo más exigente visto hasta ahora:
Spoiler
¿Cómo se puede decir que se necesitan más de 4 núcleos para juegos?. Si hasta un i3 con HT lo mueve. Si hasta un FX-4xxx no tiene problemas. El único que lo pasa mal es el Phenom II, que se ve claramente saturado
Como imagino que habrá personas que no estén de acuerdo con lo que he dicho, les invito a poner sus teorías, de manera razonada, tal y como lo he razonado yo. No pretendo estar en posesión de ninguna verdad, y si me equivoco, prefiero enterarme cuanto antes. Pero eso me lo van a tener que demostrar aquí.