Tecnología

El M1 de Apple es una CPU rápida, pero los Mac M1 se sienten aún más rápidos debido a la QoS

Varias imágenes publicitarias de Apple se apilan una encima de la otra.
Agrandar /. El Apple M1 es un procesador de clase mundial, pero es siente incluso más rápido de lo que sugieren las ya excelentes especificaciones. Howard Oakley hizo una investigación en profundidad para averiguar por qué.

El procesador M1 de Apple es un procesador de escritorio y portátil premium. Sin embargo, cuando se trata de sistemas generales para usuarios finales, hay algo mejor que ser rápido. Nos referimos, por supuesto sentimiento rápido, que tiene más que ver con un sistema que cumple de manera predecible y confiable las expectativas del usuario que con la velocidad.

Howard Oakley, autor de varias utilidades nativas de Mac como Cormorant, Spundle y Stibium, investigó un poco para descubrir por qué su Mac M1 se sentía más rápido que los Mac Intel y concluyó que la respuesta era QoS. Si el término es nuevo para usted, significa Calidad de servicio, y se trata de programar tareas.

Más rendimiento no siempre significa usuarios más felices

Existe una tendencia muy común a equiparar el «rendimiento» con el rendimiento; en términos generales, las tareas que se realizan por unidad de tiempo. Si bien el rendimiento es generalmente la métrica más fácil de medir, no encaja muy bien con la percepción humana. Lo que las personas generalmente notan no es el rendimiento, es la latencia, no la cantidad de veces que se puede realizar una tarea, sino el tiempo que lleva completar una sola tarea.

Aquí en Ars, nuestras propias métricas de prueba de Wi-Fi siguen este concepto: medimos el tiempo que lleva cargar una página web emulada en condiciones de red razonablemente normales, en lugar de medir cuántas veces se puede cargar una página web (u otra cosa) por segundo. al irse.

También podemos ver un ejemplo negativo, uno en el que el rendimiento más rápido coincidió claramente con los usuarios desafortunados, con la introducción de la cola completamente justa alrededor de 2006 (cfq) Programador de E / S en el kernel de Linux. cfq se puede optimizar ampliamente, pero en su configuración lista para usar, maximiza el rendimiento al reorganizar las lecturas y escrituras de disco para minimizar la búsqueda, y luego proporciona un servicio de operación por turnos a todos los procesos activos.

Desafortunadamente durante cfq En realidad, el rendimiento máximo se mejoró considerablemente, con una latencia cada vez mayor de las tareas. Esto significaba que un sistema con carga moderada se sentiría lento y no respondería a sus usuarios, lo que generaría una gran cantidad de quejas.

Aunque cfq podría configurarse para una latencia más baja, la mayoría de los usuarios desafortunados simplemente lo han reemplazado por completo con un programador de la competencia como noop o deadline En cambio, y a pesar del menor rendimiento máximo, la disminución de la latencia individual hizo que los usuarios interactivos / de escritorio estuvieran más satisfechos con la rapidez con que se sentían sus computadoras.

Después de ver cómo el rendimiento máximo subóptimo se maximizó a expensas de la latencia, la mayoría de las distribuciones de Linux se alejaron de cfq tenía la misma cantidad de usuarios. Red Hat abandonado cfq hacia deadline 2013, así como RHEL 7, y Ubuntu le siguió poco después en 2014 Trusty Tahr (14.04) Publicación. A partir de 2019, Ubuntu está desactualizado cfq Completamente.

QoS con Big Sur y Apple M1

Cuando Oakley notó la cantidad de veces que los usuarios de Mac elogiaron las Mac M1 por sentirse increíblemente rápidas, a pesar de las mediciones de rendimiento que no siempre respaldan esos sentimientos, echó un vistazo más de cerca a la programación de tareas nativas de macOS.

MacOS ofrece cuatro niveles de priorización de tareas directamente especificados, de menor a mayor background, utility, userInitiated, y userInteractive. También hay un quinto nivel (la configuración predeterminada si no se especifica ningún nivel de QoS manualmente) que macOS puede usar para decidir por sí mismo qué tan importante es una tarea.

Estos cinco niveles de QoS son los mismos independientemente de si su Mac funciona con Intel o Apple Silicon. Sin embargo, la forma en que se configura QoS está cambiando. Si el sistema está inactivo en una CPU Intel Xeon W con ocho núcleos, macOS programa todas las tareas en los ocho núcleos, independientemente de la configuración de QoS. Pero en un M1, incluso cuando el sistema está completamente inactivo, background Las tareas prioritarias se realizan exclusivamente con los cuatro grados de eficiencia / baja energía del M1 Icestorm Núcleos para que los cuatro más poderosos Firestorm Núcleos inactivos.

Aunque esto hizo que las tareas de menor prioridad que Oakley usaba para probar el sistema al comprimir un archivo de prueba de 10GB fueran más lentas en el Mac M1 que en el Mac Intel, las cosas estaban muy ocupadas en todo el espectro, desde «sistema inactivo» hasta «muy ocupado». Sistema. «mas consistente. «»

Operaciones con más alto La configuración de QoS también se ejecutó de manera más consistente en el M1 que en el Intel Mac: la preparación de macOS para transferir tareas con menor prioridad al M1 Icestorm Los núcleos dejaron solo el rendimiento más alto Firestorm Núcleos descargados y listos para responder rápida y consistentemente cuando userInitiated y userInteractive Había que hacer las tareas.

Conclusiones

La estrategia de QoS de Apple para el Mac M1 es un gran ejemplo de cómo evolucionar el verdadero problema en una carga de trabajo en lugar de seguir métricas arbitrarias. Dejando alto rendimiento Firestorm Núcleos inactivos cuando se ejecutan background Tareas significa que puede dedicarle todo su esfuerzo userInitiated y userInteractive Las tareas, tan pronto como llegan, evitan la percepción de que el sistema no responde o «ignora» al usuario.

Vale la pena señalar que Big Sur ciertamente lo hace podría Utilice la misma estrategia con un procesador Intel de ocho núcleos. Si bien no existe un desglose similar grande / pequeño del rendimiento del núcleo en x86, nada impide que un sistema operativo declare arbitrariamente una cierta cantidad de núcleos como tales background sólo. Lo que hace que el Apple M1 sea tan rápido no es el hecho de que cuatro de sus núcleos son más lentos que los demás, es la voluntad del sistema operativo de sacrificar el rendimiento máximo en favor de una latencia de tareas más baja.

También vale la pena señalar que las mejoras de interactividad que ven los usuarios de Mac M1 dependen principalmente de que las tareas se programen correctamente, cuando los desarrolladores no están dispuestos a usar la prioridad baja. background Haga cola si es apropiado porque no quieren que su aplicación parezca lenta, todos pierden. Es probable que la pila de software inusualmente vertical de Apple ayude mucho aquí, ya que los desarrolladores de Apple tienden a priorizar la capacidad de respuesta del sistema en general, incluso si su código puede verse «mal» en una inspección más cercana.

Si desea obtener más información sobre los detalles exactos de cómo se aplican los niveles de QoS a M1 e Intel Macs y sus implicaciones, le recomendamos encarecidamente que lea el artículo original de Oakley aquí y aquí con las capturas de pantalla del historial de la CPU de la actividad de macOS, lea Monitorear cómo Oakley está realizando tareas con diferentes prioridades en las dos arquitecturas diferentes.

Más populares

To Top