Introduction
L'émulation Windows ARM permet de faire tourner des applications x86 sur des processeurs ARM, mais avec des performances qui peuvent varier en fonction des instructions utilisées. Une récente analyse a montré que les instructions AVX2 sont plus lentes que les instructions SSE2-4.x sous émulation Windows ARM.
Contexte Technique
Les instructions x86 ont évolué au fil du temps, avec des ajouts tels que les instructions SSE2, SSE4.x, AVX2, etc. Chacune de ces instructions offre des améliorations de performances pour les opérations de calcul. Cependant, l'émulation Windows ARM ne prend pas en charge toutes ces instructions de la même manière. Jusqu'à récemment, l'émulation ne prenait en charge que les instructions x64 de niveau 2 (SSE2 et 4.x), mais les versions plus récentes de Windows ont ajouté le support pour les instructions x64 de niveau 3 (AVX2 et FMA). Les benchmarks ont été effectués à l'aide d'une bibliothèque mathématique vectorisée qui prend en charge les instructions AVX2 et FMA.
Analyse et Implications
Les résultats des benchmarks montrent que les instructions AVX2 sont plus lentes que les instructions SSE2-4.x sous émulation Windows ARM, avec une différence de performances de l'ordre de 2/3. Cela signifie que les applications compilées pour AVX2 peuvent être plus lentes que celles compilées pour SSE2-4.x lorsqu'elles sont exécutées sous émulation Windows ARM. Cela a des implications importantes pour les développeurs qui souhaitent optimiser leurs applications pour les processeurs ARM. Les développeurs devraient prendre en compte les performances de l'émulation lorsqu'ils choisissent les instructions à utiliser pour leurs applications.
Perspective
Il est important de noter que ces résultats sont spécifiques à l'émulation Windows ARM et peuvent ne pas s'appliquer à d'autres plateformes. Les développeurs devraient surveiller les mises à jour de l'émulation Windows ARM et les améliorations des performances des instructions pour ajuster leurs stratégies de compilation en conséquence. De plus, les développeurs devraient considérer l'utilisation de bibliothèques mathématiques optimisées pour les processeurs ARM pour améliorer les performances de leurs applications.