Parallélisme au niveau mémoire : Comparaison des performances entre l'Apple M2 et l'Apple M4
Les processeurs Apple M2 (2022) et Apple M4 (2024), basés sur l'architecture ARM, partagent une conception unifiée de la mémoire, utilisant la même mémoire pour le GPU et le CPU. Le M2 utilise la mémoire LPDDR5 tandis que le M4 exploite la LPDDR5X, offrant un débit légèrement supérieur. Cependant, cet article se concentre sur les performances d'accès aléatoire en single-core.
Pour mesurer ces performances, l'auteur a créé un benchmark de 'pointer chasing' en construisant un grand tableau d'index formant une boucle aléatoire. Cette méthode simule des structures de données complexes avec des pointeurs imbriqués, révélant la latence mémoire et la capacité du processeur à gérer plusieurs requêtes simultanément.
Le concept clé évalué est le 'memory-level parallelism' (MLP), c'est-à-dire la capacité du sous-système mémoire à traiter plusieurs tâches en parallèle. Le benchmark a été divisé en 'voies' (lanes), permettant de démarrer la lecture à plusieurs positions simultanément. Jusqu'à 28 voies ont été testées pour limiter le bruit dans les mesures.
Les résultats montrent que les deux processeurs gèrent efficacement 28 voies, avec un écart de performance d'environ 15% en faveur du M4. Chaque accès mémoire est considéré comme équivalent au chargement d'une ligne de cache de 128 octets. Le tableau utilisé contient plus de 33 millions de mots de 64 bits.
Cette analyse, publiée le 9 juillet 2025 par Daniel Lemire, professeur d'informatique à l'Université du Québec (TELUQ), démontre que l'amélioration entre les générations M2 et M4 reste modeste pour ce type de charge de travail. Le code du benchmark est disponible pour consultation.