Apple presenta por fin sus esperados M3 para Mac
Apple acaba de presentar junto a los nuevos MacBook y un nuevo modelo de iMac, su gama de procesadores M3 que veremos en los Macintosh y otros dispositivos de la marca, al menos en los dos próximos años y se puede decir que traen novedades importantes en cuanto a diseño y arquitectura respecto a sus antecesores.
Índice de contenidos
Especificaciones generales de los M3 de Apple
Los M3 de Apple vienen con tres configuraciones distintas: las cuales son las siguientes:
- M3
- 8 núcleos de CPU:
- 4 de rendimiento.
- 4 de eficiencia.
- GPU de 10 núcleos.
- Hasta 24 GB de memoria unificada
- M3 Pro
- 12 núcleos de CPU
- 6 de rendimiento.
- 6 de eficiencia.
- GPU de 18 núcleos.
- Hasta 36 GB de memoria unificada.
- M3 Max
- 16 núcleos de CPU
- 12 de rendimiento y 4 de eficiencia
- 40 núcleos de GPU.
- Hasta 128 GB de memoria unificada.
Sin embargo, no se trata de un simple traslado del nodo de 5 nm al nodo de 3 nm como muchos especulaban, al menos si hacemos caso a lo que afirma la propia Apple, y es que el rendimiento de los núcleos de rendimiento ha subido un 30% respecto a los M1, mientras que los eficientes un 50% solo, también respecto al mismo chip. Un salto por encima del estancamiento de Intel donde el salto generacional desde los Core 12 a los Core 14 ha sido casi nulo.
Además, los M3 de Apple traen la misma arquitectura de GPU que los A17 Pro, lo cual significa que han integrado tecnología como los Mesh Shaders, el Ray Tracing y el Variable Rate Shading. Es decir, que por fin están al día después de casi un lustro desde que salieron estas tecnologías. Es decir, estamos hablando de la misma GPU que hace unas semanas mostraron ejecutando versiones, optimizadas a medida eso sí, de la nueva versión de Resident Evil 4, Death Stranding y Resident Evil Village.
Dynamic Caching en la GPU
Claro está, que no es el único cambio y el que más destaca de todos ellos es la llamada Dynamic Caching en la GPU de la serie M3 de Apple, una idea que consiste en poder manejar la memoria local del procesador como si fuese una caché, y creednos que se trata de algo nunca visto y totalmente revolucionario en lo que al diseño de procesadores se refiere.
Para entenderlo hemos de separar lo que es la caché de la memoria local, la primera contiene una copia parcial de la RAM del sistema para acceder a la información más rápido y se autogestiona. La segunda, en cambio, funciona como la RAM convencional, pero dentro del chip, por lo que tiene una latencia casi nula, pero su acceso a ella no es a través de la caché
El problema es que se ha gestionar manualmente, es decir, ha de ser el propio programa el que llene y vacíe la caché o en su defecto el sistema operativo, el caso es que no suele existir un mecanismo de gestión de la memoria local. Pues bien, aprovechando su integración vertical completa, Apple ha incorporado un mecanismo en los M3 que permite que la memoria local se gestione sola. Algo que de haber existido en los tiempos del CBEA de PS3, entonces otro gallo hubiese cantado.
Desde el momento en que la GPU de los M3 de Apple es un Tile Renderer, esto significa que divide cada frame en tiles o cuadrados más pequeños para gestionarlos internamente en memorias locales. El problema viene cuando la gestión de la memoria interna ha de depender de los juegos o del propio driver gráfico. ¿La solución? Dejar que lo haga una pieza de hardware, lo que no solo elimina males de cabeza a los desarrolladores, sino también a los de Cupertino.
Interesante, o sea que si no entendí mal, la memoria interna sobre la que se procesa el tile, que históricamente desde los PowerVR es una scratchpad, ahora se la puede configurar para que opere como una caché y liberar de la gestión manual de esta. Me genera varias dudas:
Cómo es que no se hizo antes o desde un principio, por temas de espacio?Esto no sería un problema?, ya que el tile puede no estar en cache y se necesita que siempre esté.Pasa a ser lo mismo que el tile caching a efectos prácticos?
En fin, saludos.
El mecanismo de gestión de una caché es bastante complejo.