Usuario anónimo
Iniciar sesión | Regístrate gratis
nav1nav2nav3
Especial Hardware

Núcleos físicos vs. virtuales en videojuegos: qué es el HyperThreading/AMD SMT

En qué consiste esta tecnología en la CPU y cómo influye en nuestros juegos.

Por / 19 comentarios
Núcleos físicos vs. virtuales en videojuegos: qué es el HyperThreading/AMD SMT

A lo largo de los años, fabricantes y desarrolladores de la industria tecnológica se han ido encontrando con diversos muros técnicos a superar para mejorar el rendimiento de los nuevos productos que se han lanzado para poblar el mercado. Una suerte de línea de meta que superar para colocarse a la cabeza del mercado en cuanto a desempeño y especificaciones.


Durante la primera década de los 2000, en el movido mundo de los procesadores, esta línea roja estaba muy marcada por los núcleos, hilos y el aprovechamiento de estos recursos. La respuesta de Intel ante esta situación fue el rescate del HyperThreading, tecnología que más tarde veríamos también en AMD a través del SMT.


Los núcleos de nuestros procesadoresPara entender el HyperThreading (HT) es necesario comprender cómo gestiona las instrucciones una CPU. Nuestro procesadores trabajan mediante conjuntos de instrucciones, que constituyen qué es capaz de hacer este componente, y que son ejecutadas y leídas a través de los núcleos de la CPU.


Teóricamente, y sin profundizar en el funcionamiento de esta pieza, necesitas un núcleo por cada instrucción que quieras completar de forma simultánea, por lo que, añadiendo más núcleos mejoramos la capacidad del componente de afrontar diferentes conjuntos de instrucciones. Sin embargo, cada núcleo ocupa un espacio físico dentro del procesador, por lo que el número de núcleos que somos capaces de añadir en un mismo chip es limitado.


Interior del DIE de un i7-5960X con leyendas de los elementos que aparecen.Interior del DIE de un i7-5960X con leyendas de los elementos que aparecen.

Actualmente, con procesos de fabricación de 14, 10 y 7nm este número es bastante amplio, pudiendo ver procesadores de 12 núcleos en gama doméstica; pero en los 2000, con litografías de 45nm, añadir un núcleo extra podía ser un problema. Era necesario desarrollar una tecnología para afrontar las instrucciones con más holgura, siendo la respuesta de Intel el HT.



En qué consiste el HyperThreading/AMD SMTAsí llegamos al HyperThreading, una tecnología que simula cada núcleo físico de nuestro procesador como dos núcleos lógicos. Cada núcleo lógico es capaz de enfrentarse a diferentes sets de instrucciones de manera independiente, de forma que, si nuestro procesador encuentra un tiempo muerto mientras trabaja en una instrucción en uno de sus núcleos lógicos, otro proceso entra en acción para completar otra instrucción distinta. Del mismo modo, de parte de AMD tenemos el SMT, una tecnología que consigue el mismo resultado para procesadores de la compañía roja.


Diagrama sobre el resultado del uso de HT-SMT.Diagrama sobre el resultado del uso de HT-SMT.

Pongamos un ejemplo. Una fábrica produce 100 zapatillas y 100 sandalias a lo largo de un día, cada 20 zapatillas algunos de los operarios tienen que reponer materiales en el almacén para continuar el trabajo, y durante ese tiempo, los operarios que quedan a los mandos aprovechan para producir sandalias con el material restante en vez de esperar a terminar las zapatillas. Como resultado, evitan el tiempo muerto de ir a por materiales al almacén, aceleran el proceso de producción, y tienen antes el número de zapatillas y sandalias necesarias.


Cómo gestiona los recursos un procesador con HT-SMT, donde cada color representa los recursos que necesita un proceso.Cómo gestiona los recursos un procesador con HT-SMT, donde cada color representa los recursos que necesita un proceso.

Al duplicar los núcleos lógicos, no estamos obteniendo verdaderos núcleos, aunque nuestro equipo los reconozca como tal, sino que estamos duplicando los procesos (hilos) que puede afrontar el procesador con los recursos que tiene. Sabiendo esto, una CPU con HT no dobla la velocidad del procesador en aplicaciones que se aprovechen de múltiples núcleos, como sí lo haría duplicar físicamente los núcleos del procesador; pero el HT sí que le da un extra en su rendimiento, en torno al 60% por núcleo físico.



¿Y cómo afecta a nuestros juegos?Núcleos físicos vs. virtuales en videojuegos: qué es el HyperThreading/AMD SMT

Como muchos ya sabemos, los videojuegos no son una tarea que se beneficie extensamente de muchos núcleos en nuestros procesadores, aunque a lo largo del tiempo ha ido aumentado el número de estos núcleos que sí son aprovechados por diferentes títulos.


Núcleos físicos vs. virtuales en videojuegos: qué es el HyperThreading/AMD SMT

Para poner a prueba el HT/SMT en videojuegos, hemos escogido nuestra lista habitual para pruebas y le hemos sumado algunos títulos que sí aprovechan la existencia de estos núcleos para mejorar su rendimiento, y hemos puesto cara a cara a dos procesadores: el i7-8700K de 6 núcleos físicos y 12 hilos, y el i7-9700K de 8 núcleos físicos.


Núcleos físicos vs. virtuales en videojuegos: qué es el HyperThreading/AMD SMT

Como podemos comprobar, los núcleos físicos son más relevantes en videojuegos que los físicos. El rendimiento entre los 12 núcleos lógicos del i7-8700K con el HT activado no dista mucho del rendimiento en sus 6 núcleos físicos, aún en títulos que aprovechan dichos recursos. Por otro lado, el i7-9700K, con sus núcleos físicos, iguala en muchos casos el rendimiento de los 12 hilos del i7-8700K. Si saltamos a otro tipo de aplicaciones, como los test sintéticos, este escenario cambia al aprovecharse mejor de los recursos que nos otorga el HT.


El HT/SMT es una tecnología muy útil para aprovechar los muchos recursos con los que cuentan los procesadores actuales, aunque sus bondades no se vean reflejadas en los videojuegos, donde los núcleos físicos priman en títulos donde sean aprovechados. En cualquier caso, esperamos que este especial haya sido de vuestro agrado y, como siempre, os invitamos a dejar tanto vuestras observaciones en los comentarios.


Más sobre: Cpu.