Ouvrir le menu principal

MacGeneration

Recherche

Microsoft met en avant Prism, son équivalent de Rosetta 2, qui évolue un peu pour les jeux

Pierre Dandumont

lundi 09 décembre 2024 à 21:30 • 22

Logiciels

Une des plus grandes réussites d'Apple avec sa transition vers les puces ARM en 2020 est Rosetta 2 : l'émulateur d'Apple offre d'excellentes performances pour exécuter les applications pensées pour les CPU x86. Rosetta 2 a même été amélioré avec macOS Sequoia, pour prendre en compte les évolutions des applications. C'était prévu, et Microsoft vient de l'annoncer, Prism — son équivalent de Rosetta 2 — va suivre la même voie.

La modification principale de Prism avec la build 27744 de Windows 11 vient de la prise en charge de nouvelles instructions x86, ce qui nécessite quelques explications. Au fil des années, Intel a ajouté des instructions spécialisées dans ses processeurs. Jusqu'à maintenant, Prism ne prenait pas en compte l'AVX — apparu en 2011 avec les Core de 2e génération — et l'AVX2 (2013, Core de 4e génération). Si sur le papier les instructions sont optionnelles, c'est de moins en moins le cas dans la pratique : de nombreux jeux ne se lancent pas quand les instructions sont absentes. De même, les dernières versions des outils d'Adobe nécessitent un CPU compatible AVX2.

Adobe impose un CPU compatible AVX2.

La mise à jour de Microsoft ajoute donc l'AVX et l'AVX2, mais aussi les instructions BMI — dédiées aux manipulations de bits, elles sont apparues avec les Core de 4e génération en 2013 —, FMA (apparues avec les Core de 4e génération en 2013, encore) et F16C (Core de 3e génération, 2012). Les différents ajouts permettent donc aux processeurs ARM employés dans les PC (mais aussi aux puces d'Apple si vous virtualisez Windows) d'obtenir les mêmes fonctions que des processeurs d'il y a une dizaine d'années. Microsoft note tout de même que les ajouts se limitent au code 64 bits : les applications 32 bits (de plus en plus rares) ne peuvent pas en profiter.

Microsoft n'indique pas si les performances sont améliorées, et pour une bonne raison : ce n'est pas nécessairement le cas. L'exemple le plus évident est celui des instructions AVX2 : elles permettent de travailler sur des vecteurs de 256 bits dans le monde x86. Dans les CPU ARM, il n'y a pas d'équivalent direct actuellement, et la solution la plus évidente consiste à passer par les instructions SVE, ce qui pose deux problèmes. Le premier est évident : elles ne sont pas présentes dans toutes les puces. Les cœurs Oryon des Snapdragon X Elite ne sont pas compatibles, par exemple. Le second problème est que les instructions SVE se limitent à 128 bits, ce qui implique que l'émulation de l'AVX2 nécessite deux passes1. Dans certains cas, le code AVX2 peut donc être plus lent que du code sans AVX2 sur les PC sous Windows ARM… quand les deux versions existent. Mais comme nous l'avons indiqué plus haut, c'est de moins en moins souvent le cas.

Test de l

Test de l'Asus Vivobook S15 : enfin un PC Windows ARM qui tient la route grâce au Snapdragon X


  1. En résumé, chaque instruction AVX2 nécessitera au moins deux instructions SVE... ce qui ralentit évidemment les calculs.  ↩︎

Source : Image d'ouverture : CC BY-NC-ND 2.0

Rejoignez le Club iGen

Soutenez le travail d'une rédaction indépendante.

Rejoignez la plus grande communauté Apple francophone !

S'abonner