En qué se diferencia el SMT de AMD del HyperThreading de Intel

Los términos HyperThreading y SMT son muy conocidos en la industria del hardware, y más concretamente en la de los procesadores. Ambas son tecnologías de Intel y AMD respectivamente que se basan en la patente de 1994 de Sun Microsystems llamada MultiThreading, que permite duplicar las unidades lógicas de cada núcleo, es decir, permite a un núcleo realizar dos tareas simultáneas. Pero, ¿en qué se diferencian el HyperThreading de Intel del SMT de AMD?

HyperThreading y SMT: tecnologías prácticamente idénticas

Dado que tanto el Simultaneous MultiThreading (SMT) de AMD como el HyperThreding de Intel se basan en el mismo concepto, realmente las diferencias entre ambas tecnologías son nimias. En otras palabras, la finalidad y el resultado de ambas tecnologías es esencialmente idéntico: logran que un solo núcleo del procesador sea capaz de realizar dos tareas al mismo tiempo.

Esto significa que un procesador de dos núcleos sería capaz de realizar cuatro tareas simultáneas, por lo que se dice que tiene cuatro hilos de proceso (thread = hilo). Si el procesador fuera quad-core, estaríamos hablando de ocho hilos de proceso. Así, si un procesador tiene HyperThreading o SMT, siempre tendrá el doble de hilos de proceso que núcleos tenga.

Para entender cómo funcionan estas tecnologías, vamos a poner un ejemplo. Cuando estás revisando tu correo, el procesador está ejecutando una serie de instrucciones, y aunque un procesador sea capaz de procesar millones de instrucciones por segundo, esto lleva tiempo. Pero dado que las instrucciones suelen ser diferentes, se procesan en diferentes partes del núcleo del procesador, y es ahí donde entran en juego el HyperThreading y el SMT.

Con HT y SMT, el sistema operativo verá dos núcleos de CPU «lógicos» por cada núcleo físico, y será el sistema operativo quien reparta el trabajo entre ellos. En otras palabras, si uno de los núcleos ya está ocupado haciendo sus operaciones, se le asignará el trabajo al siguiente. Y claro, teniendo dos hilos de proceso por núcleo, realmente el sistema operativo ve, de manera literal, el doble de núcleos a los que asignar trabajo.

Simultaneous MiltiThreading de AMD

La efectividad de estas dos tecnologías dependerá en gran medida del sistema operativo, el juego o la aplicación que estemos utilizando, y de si los procesos que estemos ejecutando son o no paralelizables. Es decir, si estamos ejecutando un proceso que no admite que los cálculos se realicen en paralelo, en realidad estas tecnologías no están sirviendo de nada. No es lo común, pues hoy en día casi todo es ya compatible con ellas.

Entonces, ¿no hay diferencias entre HyperThreading y SMT?

En esencia y de cara al usuario o al software, no, no hay diferencia. Internamente, como es lógico, sí que las hay, dado que tanto Intel como AMD han realizado su propia implementación basándose en la primera patente de Sun Microsystems (MultiThreading), es decir, que en cada uno de sus procesadores funciona a su manera. Prueba de ello es que esta tecnología multi hilo no escala igual en los procesadores de una y otra marca.

Pero como el resultado final es que el sistema operativo detecta el doble de procesadores lógicos que físicos y los tiene a su disposición para asignarles tareas, todo termina dependiendo del sistema operativo, y ni Windows, ni MacOS ni Linux hacen distinciones al respecto sea HyperThreading o SMT. Por lo tanto la conclusión definitiva es que son tecnologías basadas en el mismo principio que se comportan igual, y que dan el mismo resultado.