¿Ha errado Intel en su estrategia con los E-Cores?
Los E-Cores de Intel llevan siendo criticados desde su lanzamiento junto a la arquitectura Alder Lake, correspondiente a los Core 12, de forma negativa. Se les considera una mala idea y un cuello de botella debido a la disparidad en rendimiento respecto a los P-Cores. En este artículo explicamos cuál es la estrategia de la empresa hoy dirigida por Pat Gelsinger y que es lo que ha fallado a la hora de intentar colocarse por encima de AMD.
Índice de contenidos
Índice de contenidos
Tick Tock
Durante un tiempo la estrategia de Intel era la siguiente:
- Adoptar una nueva litografía o nodo de fabricación y portar el diseño actual en ese momento para lanzar un nuevo modelo. El cambio permitía un chip más eficiente o más veloz.
- Sacar una nueva arquitectura, la cual daba una mejora de rendimiento respecto a la anterior, pero sin cambiar el proceso de fabricación.
- Volver al punto 1.
A esto se le llamó Tick Tock y a Intel le fue bien hasta que tuvieron los problemas para adoptar su litografía de 10 nm. Lo cual los llevo a estar estancados con variantes menores de una misma arquitectura, SkyLake, durante años. Lo cual fue aprovechado por AMD para lanzar su arquitectura Zen e ir escalando puestos de rendimiento.
En la actualidad Intel ha vuelto a un nuevo estancamiento, los Intel Core 12 y la arquitectura Alder Lake, especialmente los núcleos Golden Cove, pusieron a la empresa de Pat Gelsinger a la cresta de la ola, pero dicho proyecto, no fue liderado por el actual director general.
¿Se han estancado las CPU de Intel?
El plan de Intel es desplegar varios nodos de fabricación para ofrecer así diferentes litografías a sus potenciales clientes. Es decir, pretenden competir contra TSMC junto a la ayuda del gobierno estadounidense y el llamado CHIPS Act para intentar atraer a la mayor cantidad de clientes posibles. Es decir, que otros fabriquen sus chips en las fundiciones de la marca azul. Sin embargo, esto ha afectado negativamente a la hoja de ruta de Intel y sus propias CPU para PC, en especial la evolución de su rendimiento.
Y es que no es ningún secreto que los chips para PC convencional, no portátil, que ha lanzado Intel este mes han sido una decepción mayúscula. Y es que los Intel Core 14 para placas con socket LGA1700 bajo arquitectura Raptor Lake Refresh no han conseguido colocarse al nivel de los AMD Ryzen 7000X3D, y para lo único que han servido es para subir los precios en un movimiento sin sentido. Mientras tanto, en portátiles el nuevo Meteor Lake no es un salto considerable respecto a anteriores generaciones, no obstante, es un cambio más significativo del que hemos visto en los PC de torre entre la decimosegunda y decimocuarta generación.
A veces ocurre que una estrategia que es perfecta sobre el papel termina fallando, no por incapacidad de la misma o por ser errónea, sino por agentes externos que no puedes controlar. Es lo que le ha ocurrido a Intel con su planteamiento de núcleos híbridos y heterogéneos, el cual consiste en tener núcleos de diferente nivel de rendimiento, P-Cores y E-Cores. Sin embargo, hay mucho FUD en contra de esta planteamiento y es importante aclarar ciertos conceptos, no como defensa a la marca azul, sino para entender el motivo por el cual se ha estancado Intel en lo que a rendimiento se refiere.
La estrategia detrás de los E-Cores
Hay un dicho ruso que dice: “9 mujeres no pueden hacer entre todas un bebé en un mes” y ese es el problema existente con el paralelismo, y es que hay cosas que no se pueden acelerar y añadir más núcleos a la ecuación no suma absolutamente nada. Es en este punto donde se hace necesario el hecho de potenciar cada uno de los núcleos de base. No obstante las CPU de Intel se han estancado en rendimiento respecto a su evolución natural por el hecho que Intel ha decidido reforzar la parte equivocada.
Para diseñar los E-Cores actuales, decidieron tomar el desgastado SkyLake en su mejor versión, Sunny Cove en Intel Core 10, y readaptarlo para que ocupe menos tamaño. Para ello eliminaron el HyperThreading e hicieron que tuviera un pipeline más corto recortando la velocidad de reloj. Al final con ello obtuvieron un núcleo de menor tamaño que el principal, y que se puede colocar en grandes cantidades dentro del chip por el hecho de ocupar menos espacio.
La estrategia de Intel se entiende de forma fácil, la mayoría de procesos que se ejecutan son de corta duración y requieren muy poco tiempo y potencia para realizarse. Lo que se traduce en que no es necesario un núcleo de alto rendimiento para ejecutarlos. Así pues, la estrategia para Intel con sus P-Cores y E-Cores es simple, dejar a los primeros para tareas que realmente requieren de dicha capacidad de trabajo y el resto a los operarios más pequeños.
La Ley de Amdahl y los E-Cores de Intel
Para entender el motivo por el cual Intel apuesta más en aumentar el número de E-Cores en sus CPU en vez de sacar más P-Cores o aumentar el número de estos, entonces hemos de entender cómo funciona la Ley de Amdahl. Por si no sabéis lo que es, se trata de un principio fundamental en la computación que se utiliza para analizar y entender el rendimiento de los diferentes algoritmos informáticos. En concreto, en el contexto de la mejora de la velocidad y eficiencia de estos. Debe su nombre al ingeniero de computadoras Gene Amdahl en 1967 y se ha convertido en un concepto central en la optimización de sistemas.
La ley se basa en la idea de que, dado que siempre hay partes de un programa que no se pueden mejorar (por ejemplo, procesos secuenciales que no se pueden paralelizar), la velocidad general de un sistema no puede mejorar de manera indefinida a través de mejoras en una parte específica del sistema. Es decir, nos sirve para conocer la velocidad y rendimiento máximo que podemos obtener mejorando un sistema.
Paralelizar un proceso no es otra cosa que hacer división del trabajo entre varios operarios. En el caso de que esta no se pueda paralelizar, el hecho de añadir más núcleos no aportará nada y a cambio lo importante será el rendimiento de un núcleo en solitario.
¿Cuántos procesos está ejecutando mi PC?
Solemos confundir procesos con hilos de ejecución, los primeros son la parte del software y son partes de un programa informático autosuficientes, en realidad son programas en sí mismos y se ejecutan en uno de los hilos de ejecución en cada momento de forma rotacional. Es decir, se encuentran en una lista de espera y tienen un tiempo asignado para que la CPU atienda sus necesidades. Si hay núcleos disponibles, entonces el sistema operativo lo que hará será asignar esos procesos a los nuevos núcleos, pero han de estar atomizados, ya que el sistema operativo no entiende el contexto de los programas.
Y es ahí donde viene el problema que hace que la estrategia de los E-Cores haya terminado siendo un fiasco, la tendencia en muchas aplicaciones, especialmente en juegos, de colocar varios procesos distintos en un solo proceso. Lo cual es contraproducente si tienes un procesador con un gran número de núcleos. Es decir, el error de Intel con los E-Cores ha sido buscar lo más eficiente sobre el papel sin tener en cuenta las tendencias de programación. Esta falta de entendimiento les ha jugado muy mal en la estrategia de Intel.
Thread Director
La solución a esto fue el Thread Director, una solución que consiste en ignorar internamente la asignación de procesos del sistema operativo y hacer que sea la propia CPU la encargada de evaluar el coste de cada proceso. ¿Cómo? Pues desde el momento en que cada instrucción tiene un coste en tiempo que es conocido, la propia CPU usando una ROM interna con dicha información como referencia evalúa el coste y asigna al núcleo disponible que pueda ejecutarlo mejor.
La primera versión de Thread Director usaba el núcleo 0 de los P-Cores, el primero de todos y el que suele estar más ocupado. En el caso de Meteor Lake lo que ha hecho Intel es llevar ese trabajo al menos potente de sus E-Cores, al ver que es mucho más eficiente que la otra opción. Sin embargo, esto no es algo que vayamos a disfrutar en los Intel Core 14 para socket LGA 1700 al basarse en la anterior arquitectura.
En todo caso, lo importante es que ni Windows, tampoco Linux y mucho menos las aplicaciones se pensaron para estar lidiando con núcleos dispares en cuanto a rendimiento. De ahí la necesidad del Thread Director, un elemento que es necesario por los E-Cores en CPU x86, pero no en dispositivos móviles por un motivo claro.
Los E-Cores son malos para videojuegos
No, no me he salido del tema, pero el motivo por el cual los E-Cores son odiados es por el hecho que la tendencia en los videojuegos es la de colocar todo el trabajo posible en pocos núcleos e hilos de ejecución. Lo que hace que, si estáis usando una CPU de Intel de las últimas generaciones, pues que los E-Cores terminen por estar de relleno.
Hemos de tener en cuenta que se pueden asignar varios procesos en un mismo hilo de ejecución o núcleo. Por lo que al final acabamos teniendo juegos que escalan fatal si tenemos una gran cantidad de núcleos por el simple hecho que no los aprovechan, es decir, pasan a estar ahí para hacer bonito.
¿Y qué tipo de procesos suele haber en un juego? Pues una serie de trabajos como:
- La creación de la lista de pantalla.
- Carga de datos desde la unidad de almacenamiento.
- Cálculo de la detección de colisiones y las físicas del juego.
- Audio del juego.
El caso es que por cada objeto que tenemos en escena podemos crear un pequeño proceso para gestionarlo y asignarlo a un núcleo libre. Dichos procesos son ligeros y, por tanto, tener núcleos como los E-Cores pasa a tener sentido. Sin embargo, las tendencias de programación de los estudios de desarrollo han tomado otro camino, el cual es totalmente distinto y se basan en sobrecargar los núcleos principales.
Conclusiones finales
El gran salto de rendimiento en Raptor Lake, el Tock de Alder Lake, era aprovechar los E-Cores de más para ganar rendimiento. Sin embargo, esto no ha ocurrido y el salto se ha visto como uno menor. No quiero que esto se interprete como una defensa injustificada de las últimas CPU de Intel, más bien al contrario. Y es que la estrategia de los E-Cores de Intel necesitaba que todo el mundo empezará a plantear sus programas de otra manera distinta. Es decir, han dependido de que otros realicen el cambio de paradigma.
¿Cómo se aseguran los usuarios que un juego en PC va a rendir bien, desactivando los E-Cores para evitar que uno de los procesos termine ahí por error. Por si fuera poco, estos, pese a ser más pequeños ocupan huecos en el anillo de comunicación del procesador. Eso sí, no toda la culpa es de Intel, ya que los desarrolladores se han malacostumbrado a núcleos de CPU más potentes que en consolas, para malportar el código deprisa y corriendo en muchos juegos.