El Apple M1 que alimenta todos los Apple Silicon Macs lanzados hasta ahora, así como el último iPad Pro, está equipado con una CPU de ocho núcleos, cuatro rápidos y cuatro económicos. Estos son menos potentes, pero también consumen significativamente menos y se utilizan para extender la autonomía del dispositivo para tareas secundarias, las que requieren menos energía y las que se ejecutan en segundo plano.
Este diseño asimétrico es bien conocido en el mundo móvil, ya que Apple lo ha estado usando en todos sus chips de iPhone y iPad desde 2016. Su llegada a macOS ofrece una nueva oportunidad: podemos analizar lo que está sucediendo a nivel de CPU, ya que cada se utiliza el tipo de núcleo y también la potencia relativa de los dos tipos. Se llevaron a cabo varias pruebas teóricas, pero el desarrollador Howard Oakley encontró un método para realizar una prueba en condiciones reales.
Este desarrollador ha vuelto a explorar el método de Calidad de servicio (QoS) para obligar a macOS a ejecutar código en núcleos potentes, llamados Firestorm, y luego en núcleos económicos, llamados Icestorm. Esta calidad de servicio es una forma de decirle al sistema la prioridad de una tarea, y eso es lo que explica por qué los Mac Apple M1 parecen tan fluidos, como detallamos en un artículo anterior:
Cómo el iPhone le enseñó a la Mac a usar mejor el corazón
Usando esta técnica, midió el tiempo requerido para que cada cuarteto de corazones realizara cuatro tareas básicas. Esto ocurre siempre que se realiza un cálculo en números de punto flotante, una tarea básica que se utiliza a menudo para medir el rendimiento de un procesador. Se utilizaron cuatro métodos diferentes para este cálculo, desde el nivel más bajo (código ensamblador) hasta el más alto, con código Swift como el que vería en una aplicación macOS. El rendimiento se midió cada vez en un Mac con una instalación básica de macOS, sin tocar el sistema y sin agregar extensiones de kernel adicionales, que fue el caso de las pruebas más teóricas realizadas hasta ahora.
Los resultados obtenidos por el desarrollador muestran que los núcleos económicos son en realidad más lentos, pero la diferencia puede limitarse con un código bien optimizado. Con el metodo Apple si, una solución de gama baja proporcionada por el fabricante, los cuatro económicos son solo el doble de lentos que los rápidos, un buen rendimiento si se considera que solo requieren una cuarta parte de la energía de los núcleos rápidos.
La brecha se amplía a medida que nos alejamos de los lenguajes de bajo nivel. Con Swift básico, los núcleos ahorrativos son tres veces más lentos, pero cuando agrega un código más complejo que a menudo es esencial en las aplicaciones, son cinco veces y media más lentos. En uso, los núcleos rápidos siempre mantienen la ventaja y eso tiene sentido, pero incluso con tareas cinco veces más lentas cuando se realizan en núcleos económicos, la asimetría del Apple M1 sigue siendo útil.
Las computadoras dedican mucho tiempo a realizar tareas que no son urgentes y pueden requerir más tiempo para completarse sin problemas. Para macOS, este es particularmente el caso de la indexación de Spotlight o incluso el análisis de la biblioteca de fotos, para dar dos ejemplos. Estas pruebas demuestran que, en algunos casos, un desarrollador también puede optimizar su código para cerrar la brecha y aprovechar al máximo los núcleos rentables de su aplicación.
“Apasionado especialista en tocino. Defensor de Internet. Adicto a la cerveza. Amable aficionado a los zombis. Experto en Internet”.