Los ‘benchmarks’ en tiempos del M1: reinterpretando el rendimiento de Apple Silicon
El M1 ya lleva un año entre nosotros. Cuando los primeros compradores y prensa comenzaron a recibir sus unidades de MacBook Pro, Mac mini y MacBook Air, lo primero que muchos hicieron fue comprobar su rendimiento e intentar averiguar por sí mismos si todas esas cifras que Apple nos dio en su presentación de X veces más rápido (que la generación anterior del mismo equipo), son ciertas o no.
Las primeras pruebas del mismo fueron llegando, de discos SSD, de GPUs, tanto por software como Cinebench, GeekBench, o incluso pruebas empíricas de tareas concretas comparadas con otros grandes equipos de la marca y mucho más caros. Sin duda los resultados son espectaculares y nos presentan un chip, un sistema en un chip (SoC, System on a Chip) con unas características increíbles. Más cuando tenemos ya en el mercado los chips M1 Pro y M1 Max.
Pero, ¿cómo podemos interpretar todas estas pruebas? ¿Es cierto que el M1 es el procesador más rápido en procesos de un solo núcleo, por encima de cualquier ordenador Mac presentado hasta la fecha con Intel?
La respuesta es simple: NO. No lo es. El Apple M1 es un chip, que no procesador, de gama consumo. En palabras de Craig Federighi, vicepresidente de ingeniería de software de Apple, gama de entrada del mercado y ese es su objetivo: ser eficiente energéticamente y dar solución a usuarios convencionales o de sector consumo. ¿Entonces? ¿Por qué los tests y pruebas dicen lo contrario? ¿Por qué nos dicen que el M1 es más que esto? Bien, vamos a explicarlo para que entendamos dónde están las virtudes del Apple M1 y por qué ya no sirve la forma convencional de medir el rendimiento de un equipo. Por qué el M1 ha redefinido la informática y la forma de concebirla hasta hoy.
RISC vs CISC, conjunto de instrucciones de Intel y Apple
Intel fabrica CPUs. Procesadores. Un tipo de chip que engloba todas las funciones posibles en uno solo. Su arquitectura es CISC o de conjunto complejo de instrucciones. Eso implica que su potencia, su versatilidad, se basa en proporcionar distintos tipos de conjuntos de instrucciones para el procesador, que no solo permitan realizar las tareas básicas. También tiene conjuntos de ayuda a tareas secundarias. Como conjuntos de instrucciones para virtualización de sistemas, de ayuda a la codificación y decodificación de vídeo, de cálculo matemático, de optimización del uso de memoria… en definitiva, es un chip único que lo hace todo, con muchas instrucciones complejas que le permiten hacer muchas cosas en una única llamada. Pero todo lo hace la CPU.
Apple fabrica SoC. Un sistema en un chip. No es solo una CPU, es un conjunto de componentes. Su CPU es de arquitectura RISC o conjunto reducido de instrucciones. Estos, priman el ahorro de energía, teniendo conjuntos más básicos de instrucciones en el procesador. No tienen tanta versatilidad ni pueden hacer tantas cosas en una sola instrucción.
Lo que una CPU de Intel es capaz de hacer en una o pocas instrucciones dada su enorme cantidad de las mismas y en diferentes conjuntos, en una CPU de Apple se necesitarán más instrucciones. Al final, ambos pueden hacer las mismas tareas al 99,9%, pero mientras Intel necesita menos pasos (pero genera más calor y gasto energético porque las instrucciones complejas derivan en procesos más costosos para la CPU), un SoC como el M1 o el A14 requiere de más pasos porque sus instrucciones son más simples. Pero cada instrucción consume menos y en conjunto es más eficiente energéticamente.
Esa diferencia es esencial para entender las capacidades de cada chip y cómo una comparativa de capacidad de proceso, no va a darnos un dato significativo porque aunque un equipo RISC y otro CISC sean capaces de dar la misma cantidad de pasos en el mismo tiempo, un CISC siempre necesitará menos pasos para llegar a la misma tarea. Es como si comparamos los pasos que dan dos personas en el tiempo, sin tener en cuenta la longitud de su paso. Alguien de 2 metros recorrerá más distancia en los mismos pasos en el mismo tiempo, que alguien de 1 metro y medio.
Computación heterogénea, la ventaja de RISC
Una CPU Intel es solo ella. E intenta ayudar a tareas concretas con conjuntos de instrucciones como ya hemos comentado. Además, una CPU de Intel no puede tener distintos tipos de núcleos en el mismo chip: todos han de ser exactamente iguales. Pero los chips de Apple no: usan el concepto de la computación heterogénea. Esto implica dos cosas distintas.
La primera es que pueden tener distintos tipos de núcleos con distinta velocidad y configuración dentro de la misma CPU. De esta forma, el Apple M1 nos proporciona 8 núcleos donde 4 tienen un alto rendimiento y mayor velocidad de reloj (aunque consumen más energía), mientras otros 4 son más lentos y están destinados a tareas más livianas.
La segunda característica de la computación heterogénea es la más importante y la que marca una diferencia clave para entender cómo medir el rendimiento de los Apple M1. Hablamos de la incorporación de componentes específicos dentro del SoC que ayuden a tareas concretas del día a día. No es un conjunto de instrucciones como en Intel que se ejecutan todos sobre la misma CPU. Son componentes completamente separados e independientes, que tienen tareas concretas, donde la CPU no hace nada más que coordinar. Este tipo de componentes son mucho más eficientes que cualquier tipo de instrucción dentro de una CPU de uso genérico como las de Intel.
Así, cuando yo creo o trabajo con un vídeo 4K, la CPU del Apple M1 está liberada de cualquier tarea porque hay un chip específico que se encarga de hacer esta con un rendimiento muy alto. Si hago trabajo criptográfico, como descomprimir un fichero XIP (un ZIP cifrado y firmado digitalmente), hay otro componente que es un acelerador de cálculo criptográfico, que igualmente realiza esa tarea.
En esos componentes es donde radican muchas de las diferencias de rendimiento de un Apple M1 que no pueden ser medidas de una forma convencional. Porque ese es “el truco” que permite tener un rendimiento muy alto en un chip que sea de gama de entrada o consumo como el Apple M1.
Lo que debemos tener presente es que una CPU de Intel de un equipo como un MacBook Pro de 16” o un iMac de 27” 5K, es mucho más potente que un Apple M1. Estamos hablando de gamas muy distintas. Pero cuando intentamos medir su rendimiento, es cuando las diferencias que hemos explicado o la inclusión de componentes para tareas concretas marcan la diferencia. Ese es el nuevo concepto de computación que nos presenta Apple.
Los componentes del Apple M1 y para qué sirven
Apple nos ofrece una CPU menos potente aunque más eficiente energéticamente. Pero en el SoC tiene un número de componentes claves que suplen esa menor potencia, ayudando en tareas concretas del día a día. Cuando sumamos esto, es cuando tenemos un resultado que reinventa y revoluciona el mundo de la informática de consumo, porque es otro concepto más centrado en un equipo de distintos elementos y no un solo elemento de fuerza bruta como en Intel.
Para que nos hagamos una idea, el Apple M1 incorpora los siguientes componentes de ayuda al sistema:
- Gestor energético avanzado: permite medir el consumo del equipo y dar la energía que necesita cada proceso o tarea en cada momento.
- Cachés de banda ancha: almacena en memoria de alta velocidad los últimos resultados o datos con que se ha trabajado. Cuando un proceso pide repetir una operación igual a otra cuyo resultado ya está almacenado, se devuelve en vez de volver a realizar el proceso.
- Acelerador de criptografía: permite acelerar las operaciones de cálculo criptográfico con estándares AES o Chacha.
- Aceleradores de aprendizaje automático: este componente permite acelerar las operaciones de cálculo para entrenamientos de modelos. No hablamos del motor neural que ejecuta los modelos (los infiere). Hablamos del cálculo computacional que permite entrenar dichos modelos.
- Motor avanzado de pantalla: los datos que se envían a las pantallas y el control de su refresco para ser capaz de soportar pantallas hasta 6K en 60Hz, dependen de un componente específico. Pero ojo: los Apple M1 no soportan la conexión de más de 2 pantallas. 2 para el Mac mini, 1 más aparte de la propia en los portátiles. Ten en cuenta esto a la hora de valorar estos equipos.
- Procesador de vídeo HDR: el trabajo con vídeo de 10 bits de color y el procesamiento de metadatos de HDR de estándares Dolby Vision o HDR10, dependen de este componente que libera a la CPU de dicha tarea.
- Procesador siempre encendido: este componente always-on es que el se encarga de gestionar los estados de suspensión, de la misma forma en que funciona un iPad o un iPhone. Lo que nos mostró Craig Federighi con un mood sensual y música de Barry White.
- Procesador de señales de imagen de alta calidad: El mismo chip de procesamiento de imagen que tienen los A14, están en el Apple M1. Aunque en principio se usa para mejorar la calidad de las cámaras 720p del equipo (corramos un tupido velo), este elemento podría servir también para mejorar y realizar tareas pesadas sobre fotografías en software de retoque.
- Secure Enclave: el chip de seguridad encargado de gestionar el arranque seguro del equipo, el Touch ID y toda la capa de seguridad del sistema y validación de firmas digitales de los componentes software.
- Gestor del almacenamiento NVMe: los Apple M1 tienen discos NVMe de alta velocidad, con lectura y escritura de hasta 3,4GB/s. Para gestionarlo, tiene un componente que se encarga de controlar este almacenamiento.
- Reproducción de vídeo de baja energía: un componente clave para esas 20 horas de batería que Apple anuncia en sus MacBook Pro. Este chip tendría capacidad de decodificar sin cargar a la CPU de ello, no solo estándares H264 y H265 (HEVC). También soporte VC-1, AV1 (el nuevo códec destinado a ser el nuevo estándar abierto) o el VP9 que usa YouTube.
- Edición de vídeo de alto rendimiento: un acelerador que permite trabajar con las pistas de vídeo en programas de edición, liberando a la CPU de tener que gestionar la decodificación y el moverse por los timelines. Es lo que permite que un MacBook Air sin ventilador pueda editar múltiples streams de vídeo 4K a la vez.
- Controlador Thunderbolt/USB 4: la gestión de puertos de conexión es gestionada por otro componente de forma independiente, pero dentro del SoC. Los Apple M1 soportan sobre el mismo puerto USB-C, los estándares Thunderbolt 3 y USB 4, ambos con limites de 40GB/S.
- Procesador de audio de alta eficiencia: Tenemos un chip de sonido para gestionar este en los equipos. Un chip con capacidad de 24 bits a 48Khz y aceleradores al tratamiento del sonido, grabación y reproducción. Con soporte nativo de las instrucciones de la API Core Audio.
- Motor neural: componente con 16 núcleos que permite la ejecución de modelos de aprendizaje automático ya entrenados, dando un rendimiento muy por encima de cualquier CPU. Los registros de este tipo de equipos usan tensores, registros de 4 dimensiones, en vez de datos escalares (de una sola dimensión) como una CPU convencional.
- Procesador HDR de imagen: al igual que tiene un componente para la gestión de HDR en vídeo, también lo tiene para imagen, acelerando el tratamiento de este tipo de fotografías.
- Controlador PCI Express 4.0: el bus de datos del SoC es PCIe 4.0, lo que permite tener una mejor comunicación entre los diferentes componentes.
- Controlador de rendimiento: este componente decide a qué tipo de núcleo debe enviar cada tarea (alto rendimiento o eficiencia energética), además de si alguna debe ir a un componente de ayuda concreto. Se apoya en modelos de aprendizaje automático, el acelerador ML y el motor neural, para ir mejorando y aprendiendo de forma más eficaz, que componente es mejor para cada tarea.
Y a todo esto hay que sumar la memoria RAM unificada. La memoria RAM convencional del equipo está dentro del SoC en vez de fuera como suele ser lo habitual. Además, en un Apple M1 es más rápida pues usa memoria GDDR de GPU, a una velocidad superior para que la GPU (también integrada en el SoC) pueda trabajar a la velocidad que necesita y no cree cuello de botella. Eso beneficia a todo el sistema al tener una memoria más rápida.
La CPU pone unos datos en la memoria, el acelerador de aprendizaje automático los lee de ahí directamente y cuando acaba, el motor neural los recoge y procesa sobre ese mismo resultado. Al final, el ahorrarnos copiar datos de un lado otro entre diferentes componentes, nos da una mayor velocidad de proceso. Algo que no es medible como tal pero que sí aporta una mejora en el uso del equipo y hace que los benchmarks salga más altos.
Cómo se mide el rendimiento de un equipo con GeekBench
El famoso Geekbench mide el rendimiento del equipo en base al resultado de una serie de operaciones que ellos clasifican de uso real del equipo. Lo divide en cargas de criptografía, de valores enteros y de valores de coma flotante.
En criptografía realiza cálculos en AES-XTS, con un peso del 5% a la puntuación. En cargas de números enteros (con un peso del 65% del resultado), valora el rendimiento en compresión de texto (con algoritmos LZMA), de imágenes (JPG a PNG), navegación (calcula rutas entre dos puntos geográficos con más de 200.000 nodos), HTML5 y ejecución de Javascript, uso de SQLite 3 (base de datos), render de ficheros PDF y de texto, compilación con CLang y trabajo de la cámara.
En coma flotante (peso del 30%) hace una carga de simulación gravitacional 3D con físicas N-Body, en 2D con cuerpos rígidos, aplica blur gausiano a una imagen de 24 megapíxeles, detecta caras en fotografías de muestra, detecta el horizonte en una fotografía y lo corrige, corrige una fotografía borrando contenido de ella como haría Photoshop, procesa imágenes con HDR, genera una escena de más de 3.500 triángulos texturizados donde aplica Ray Tracing (rayos de luz que permiten iluminar la escena de forma más realista), realiza una simulación de uso de realidad aumentada, simula una carga de reconocimiento del habla y ejecuta una red neural convolucional (MobileNet v1) sobre una imagen de 224x224.
De todas estas tareas, hay unas cuantas, diría que casi la mitad, que tienen ayudas específicas en los Apple M1. De forma que podemos entender cómo la forma de medir el rendimiento de un equipo ha cambiado. Porque mientras en un Intel todo esto lo hace la propia CPU, con tareas que se le van a dar mejor o peor, en el Apple M1 gran parte de estas tareas tienen componentes específicos que las realizan. Por eso dan esas puntuaciones tan altas, pero que podemos entender que en realidad están desvirtuadas. Básicamente, la forma de medir no sirve si queremos centrarnos solo en la potencia.
Hace mucho que dejó de servir medir los equipos por los ciclos de reloj (los gigahercios) y ahora, tampoco podemos medir el rendimiento de un equipo por la fuerza bruta de su CPU, porque en el caso del M1 tenemos un montón de componentes que ayudan en el día a día.
Conclusiones
Esa es la brillante idea que Apple ha aplicado: suplir la falta de potencia bruta de una CPU de gama de entrada, con una serie de ayudas que le asisten en tareas convencionales, que le permiten dar un rendimiento medio más alto que la gama donde se sitúa. ¿Imaginan qué nos puede esperar el futuro si solo acabamos de empezar a ver las posibilidades?
Si quieren saber más, les invito a oír mi análisis en Apple Coding de los chips M1, donde desgrano todo con mucho más detalle, y si les ha gustado el artículo, otro día les hablaré de la GPU del Apple M1 y cómo funciona y se compara con el resto de ellas del mercado.
-
La noticia Los ‘benchmarks’ en tiempos del M1: reinterpretando el rendimiento de Apple Silicon fue publicada originalmente en Applesfera por Julio César Fernández .
Fuente: Applesfera
Enlace: Los ‘benchmarks’ en tiempos del M1: reinterpretando el rendimiento de Apple Silicon
Comentarios
Publicar un comentario