IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Les CPU de nos Mac : Rosetta 2 et le code x86, Réactions à la publication du 29/06/2025
Options
Paul Emploi
posté 29 Jun 2025, 07:25
Message #1


Macbidouilleur d'Or !
*****

Groupe : Rédacteurs
Messages : 1 823
Inscrit : 19 Nov 2020
Membre no 212 895



Rosetta 2 est apparu sur le Mac mini DTK, avant même son arrivée sur le MacBook Air M1.
Nous avions reporté à l'époque via @Lionel la surprise de son niveau de performance sur du code x86, proche de 85% des performances natives.
Les limites étant le code AVX (vectoriel) et les logiciels créant dynamiquement du code comme le moteur JavaScript de Chrome compilant ce code en x86 dynamiquement.

Contrairement à Rosetta [1] lors du passage à Intel qui interprétait le code PowerPC "a mano" et émulait son fonctionnement, Rosetta 2 est totalement différent.
Bien sur Rosetta [1] exécutait du code PowerPC sur les Mac Intel, mais Rosetta 2 n'exécute aucune code.
Rosetta 2 prend le code pour Mac Intel et le transpile pour Mac ARM: il analyse le code Intel 64 bits et le recompile pour l'architecture ARM 64 bits.
Le code étant alors exécuté nativement, puisque recompilé nativement pour ARM.

Quand Rosetta [1] émulait tel-que un logiciel pour Mac ARM à chaque exécution, Rosetta 2 au premier lancement investi du temps pour le transformer en son équivalent ARM ou plutôt Apple Silicon.
Après le premier lancement, Rosetta [1] continue à émuler lentement, Rosetta 2 n'intervient plus le code étant déjà traduit pour Apple Silicon et stocké sur le SSD.

Sauf que quand le code était émulé instruction par instruction par Rosetta [1], cacochyme, Rosetta 2 offrait 85% des performances natives (hors AVX vectoriel et code dynamiquement créé) sur les Mac ARM. Quasiment l'expérience native sur le DTK!
Ça a tout changé!

Le Mac mini A12z DTK offrait nativement des performances similaires à mon MacBook Pro 15" 2017 Core-i7.
Pour le coup une vraie puce d'iPhone ou d'iPad. Légèrement plus rapide.
Mais les logiciels x86 ne se trainaient pas dessus, ce qui était une vraie surprise, et la faible perte de performance peu visible, voire pas du tout hors certains cas particuliers.

Il y a une astuce propriétaire Apple dans tout cela, car le x86 a des drapeaux créés lors d'opérations arithmétiques qui n'existent pas dans les architectures ARM, ni 32 bits ni 64 bits.
Apple a créé un mode d'exécution propriétaire dans le A12 puis les Apple Silicon Mx, qui n'existe pas dans aucune CPU ARM, pour générer ces drapeaux "en vol" sans incidence sur les performances.

Les SoC Apple ARM sont absolument uniques en ce sens, propriétaires et créés pour Rosetta 2, une très légère modification que normalement ARM interdit absolument. Mais Apple est un des créateur d'ARM!
Ça explique aussi que lorsque Rosetta 2 offre 85% des performances natives, l'émulation Intel de Microsoft sur les PC ARM est très lente car n'implémentant pas d'extension propriétaire.
ARM a accepté qu'Apple ne respecte pas ses règles, mais aucun autre créateur de puces ou SoC ARM n'en a le droit!

La technologie de Rosetta 2 est parfaite, elle a permis de rendre le passage aux Mac ARM indolore pour la plupart, et ça a probablement pour moi été la plus grande surprise venue avec le Mac mini DTK destiné aux développeurs.

Rosetta 2 + M1 ? Pour le prochain épisode!

Lien vers le billet original



--------------------
La liberté d'expression c'est l'extrémisme. La censure c'est la liberté.
Go to the top of the page
 
+Quote Post
Hebus
posté 29 Jun 2025, 08:27
Message #2


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 7 735
Inscrit : 24 Sep 2015
Lieu : Pays d'Aix
Membre no 196 570



Clairement impressionnant d’efficacité quand couplé au boulot fait avec docker je peux compiler du code 32 bits dans du Linux Intel … RockyLinux ou autres déclinaisons et faire tout mon dev en local sur un Mac Apple Silicon

Super outils de travail dans un MBP M4 pro avec 48GB !


--------------------
Bobo du Pays d'Aix et Fanboy Apple/NeXT
Pas d'actions Apple ou de rémunération quelconque !
Go to the top of the page
 
+Quote Post
g4hd
posté 29 Jun 2025, 10:42
Message #3


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 10 360
Inscrit : 9 Nov 2001
Lieu : Pays d’Aix
Membre no 1 255



Rosetta 2 mérite le Nobel des Systèmes !
Sauf qu'Apple est bien capable de le tuer à tout moment, sur un coup de tête imprévisible. mad.gif
Et ça peut arriver au prochain macOS Mac silicon only.

Les éditeurs des applis x86 qui n'auront toujours pas été réécrites sont les responsables pas coupables, selon la phraséologie bien connue en France !
Go to the top of the page
 
+Quote Post
FredStrasbourg
posté 30 Jun 2025, 07:37
Message #4


Macbidouilleur d'argent !
***

Groupe : Membres
Messages : 693
Inscrit : 30 Jun 2004
Lieu : Strasbourg
Membre no 20 594



Citation (g4hd @ 29 Jun 2025, 11:42) *
Sauf qu'Apple est bien capable de le tuer à tout moment, sur un coup de tête imprévisible. mad.gif
Et ça peut arriver au prochain macOS Mac silicon only.


Apparemment, pas avant Mac OS 28 (ça laisse encore deux ans, ça devrait suffire pour tout mettre à jour).


--------------------
MacMini M4 Pro (CPU 14 coeurs / GPU 20 coeurs) - 48 Go RAM - SSD 512 Go
iMac 2019 - 27" 5K - i9 3,66 Ghz - 64 Go RAM - Radeon Pro Vega 48 (VRAM 8 Go) -> passé sous Windows pour le gaming
iMac 2020 - 27" 5K - i7 3,8 Ghz - 72 Go RAM - Radeon Pro 5700XT avec (VRAM 16 Go)
Mac Mini 2014 i5 2.6 Ghz - 8Go Ram - SSD Samsung 850 EVO 512Go - High Sierra
iPhone 12 Pro Max, 128 Go
iPad mini 2024
Et quelques HomePod mini...
Go to the top of the page
 
+Quote Post
linus
posté 30 Jun 2025, 10:20
Message #5


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 807
Inscrit : 24 Jun 2004
Lieu : Grenoble
Membre no 20 409



Citation (Paul Emploi @ 29 Jun 2025, 08:25) *
Rosetta 2 prend le code pour Mac Intel et le transpile pour Mac ARM: il analyse le code Intel 64 bits et le recompile pour l'architecture ARM 64 bits.
Le code étant alors exécuté nativement, puisque recompilé nativement pour ARM.

Dans ces conditions, pourquoi ne peut on utiliser Rosetta 2 pour convertir une appli x86 en appli Apple Silicon distribuable telle que pour tous ? Pourquoi faut il cette conversion sur chaque machine qui utilise l'application en non pas une conversion une fois pour toute par le développeur avant distribution ?
Go to the top of the page
 
+Quote Post
Paul Emploi
posté 30 Jun 2025, 11:57
Message #6


Macbidouilleur d'Or !
*****

Groupe : Rédacteurs
Messages : 1 823
Inscrit : 19 Nov 2020
Membre no 212 895



Citation (linus @ 30 Jun 2025, 11:20) *
Citation (Paul Emploi @ 29 Jun 2025, 08:25) *
Rosetta 2 prend le code pour Mac Intel et le transpile pour Mac ARM: il analyse le code Intel 64 bits et le recompile pour l'architecture ARM 64 bits.
Le code étant alors exécuté nativement, puisque recompilé nativement pour ARM.

Dans ces conditions, pourquoi ne peut on utiliser Rosetta 2 pour convertir une appli x86 en appli Apple Silicon distribuable telle que pour tous ? Pourquoi faut il cette conversion sur chaque machine qui utilise l'application en non pas une conversion une fois pour toute par le développeur avant distribution ?

Le développeur n'existe peut-être déjà plus. L'éditeur ne supporte peut-être plus son application, en tout cas dans cette version. etc etc.

Du coté d'Apple cela leur aurait enlevé le contrôle sur ce point. Et Apple aime le contrôle.
On aurait aussi vu fleurir des logiciels "ARM" qui ne seraient que des transpilations par Rosetta 2 et bien moins performants pour certains (AVX sous x86 non traduits par exemple) que de véritables logiciels natifs...
Le dernier point aurait posé un problème d'image et de communication sévère.

Quand le M1 de base, l'entrée-de-gamme sur MacBook Air M1 ou Mac mini M1, cette "puce de smartphone" a totalement explosé les standards, changé la donne, et a contribué à faire exploser Intel en plein vol (qui se débrouillait très bien pour se saborder tout seul pourtant!).
J'ai hâte de vous parler du M1, peut-être trop performant à son époque, trop parfait, ce qui a coûté à Apple!


--------------------
La liberté d'expression c'est l'extrémisme. La censure c'est la liberté.
Go to the top of the page
 
+Quote Post
linus
posté 1 Jul 2025, 11:21
Message #7


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 807
Inscrit : 24 Jun 2004
Lieu : Grenoble
Membre no 20 409



Citation (Paul Emploi @ 30 Jun 2025, 12:57) *
Citation (linus @ 30 Jun 2025, 11:20) *
Citation (Paul Emploi @ 29 Jun 2025, 08:25) *
Rosetta 2 prend le code pour Mac Intel et le transpile pour Mac ARM: il analyse le code Intel 64 bits et le recompile pour l'architecture ARM 64 bits.
Le code étant alors exécuté nativement, puisque recompilé nativement pour ARM.

Dans ces conditions, pourquoi ne peut on utiliser Rosetta 2 pour convertir une appli x86 en appli Apple Silicon distribuable telle que pour tous ? Pourquoi faut il cette conversion sur chaque machine qui utilise l'application en non pas une conversion une fois pour toute par le développeur avant distribution ?

Le développeur n'existe peut-être déjà plus. L'éditeur ne supporte peut-être plus son application, en tout cas dans cette version. etc etc.

Du coté d'Apple cela leur aurait enlevé le contrôle sur ce point. Et Apple aime le contrôle.
On aurait aussi vu fleurir des logiciels "ARM" qui ne seraient que des transpilations par Rosetta 2 et bien moins performants pour certains (AVX sous x86 non traduits par exemple) que de véritables logiciels natifs...
Le dernier point aurait posé un problème d'image et de communication sévère.

Quand le M1 de base, l'entrée-de-gamme sur MacBook Air M1 ou Mac mini M1, cette "puce de smartphone" a totalement explosé les standards, changé la donne, et a contribué à faire exploser Intel en plein vol (qui se débrouillait très bien pour se saborder tout seul pourtant!).
J'ai hâte de vous parler du M1, peut-être trop performant à son époque, trop parfait, ce qui a coûté à Apple!

Donc, tu confirmes ce que je pensais, ce serait parfaitement possible mais ce n'est juste pas souhaitable pour Apple.
Dommage quand même.
Go to the top of the page
 
+Quote Post
Celeri
posté 1 Jul 2025, 12:36
Message #8


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 494
Inscrit : 13 Sep 2002
Membre no 3 488



A l'époque où le M1 venait d'apparaître, j'ai essayé de comprendre où et comment macOS stocke les version "ARMisées" des binaires après leur recompilation, mais personne ne semblait s'être réellement étudié la chose... Je ne sais pas ce qu'il en est aujourd'hui, mais je me dis qu'avec un peu de bidouille, on devrait pouvoir utiliser cette recompilation pour faire des conversions en ARM "sauvages", ce qui serait utile pour quand Rosetta 2 ne sera plus supporté... J'espère que la communauté des hackers se penchera sur la question à l'approche de cette échéance !


--------------------
Heureux papa d'un hackintosh mini-ITX (Z690M-ITX/ax + i5-12600 + Radeon 6600) silencieux et performant !
– Son grand-frère (Z370N WiFi + i5-8600 + RX580) ronronne toujours depuis fin 2018 et est préposé à faire tourner Windows et Mojave –

Rien n'est plus semblable à l'identique que ce qui est pareil à la même chose. (Pierre Dac)
Go to the top of the page
 
+Quote Post
Benzebut
posté 1 Jul 2025, 13:08
Message #9


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 5 568
Inscrit : 5 Mar 2003
Lieu : Ville de Notre-Dame
Membre no 6 523



Citation (linus @ 30 Jun 2025, 11:20) *
Dans ces conditions, pourquoi ne peut on utiliser Rosetta 2 pour convertir une appli x86 en appli Apple Silicon distribuable telle que pour tous ? Pourquoi faut il cette conversion sur chaque machine qui utilise l'application en non pas une conversion une fois pour toute par le développeur avant distribution ?

Le fonctionnement de Rosetta 2 transpile le code pour Mac ARM pour être exécuté nativement. Il n'y aurait donc pas de création du binaire de l'application, mais des fichiers "caches" qui associés aux binaires Intel permettent à l'application sous macOS de fonctionner sous cette nouvelle architecture en toute transparence.

S'il y avait une véritable conversion, cela ferait 2 binaires de l'application qui seraient indépendants et pourraient tourner sous 2 architectures. Comme le fait actuellement macOS ou précédemment les applications au format Universel lors du passage sous Intel.

Et en fonction, cela rendrait de fait la faisabilité de conversions "sauvages" impossibles, puisque les fichiers "cache" seraient alors dépendant de la machine qui les a créé et non pas génériques pour une architecture, tout en dépendant de la disponibilité de Rosetta 2... wink.gif


--------------------
Sur iMac Pro (fin-2017) en Xeon 8 coeurs à 3.2 GHz / 32 Go Ram / Radeon Pro Vega 56 8 Go / 1 To SSD
Sous macOS 10.14.6 (Mojave) à jour et en réseau Wifi 6 avec une boite fibre 5 Gbit/s (fin de l'ADSL à la capitale)

Ayant été anobli depuis le 1er septembre de l'an de grâce 2024 avec le titre de Harceleur 1er par la Belle Province sur ces merveilleux forums...

Nostalgique de l'Apple IIgs ? Un petit émulateur : www.casags.net
Go to the top of the page
 
+Quote Post
Hebus
posté 1 Jul 2025, 15:00
Message #10


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 7 735
Inscrit : 24 Sep 2015
Lieu : Pays d'Aix
Membre no 196 570



Un binaire n'est qu'un fichier ... c'est ensuite au système d'avoir une stratégie de quoi faire du contenu de document texte ou binaire qu'on lui soumet dans un certain contexte.

Pour macOS un script zsh est un exécutable
Pour windows un .bat est un executable

par exemple


Donc le cache produit par Rosetta2 est un exécutable en toute rigueur, au même titre que l'application origine.


--------------------
Bobo du Pays d'Aix et Fanboy Apple/NeXT
Pas d'actions Apple ou de rémunération quelconque !
Go to the top of the page
 
+Quote Post
Paul Emploi
posté 2 Jul 2025, 00:08
Message #11


Macbidouilleur d'Or !
*****

Groupe : Rédacteurs
Messages : 1 823
Inscrit : 19 Nov 2020
Membre no 212 895



Enfin ce n'est pas un "binaire" mais un fichier "exécutable". Comme un script shell par exemple. Ou du Java compilé pour la JVM.
Ou du code PowerPC, ou Intel.

Il manque pour moi clairement des solutions un peu plus universelles, tout en sachant que nombre d'anciennes interfaces ne sont plus supportées et qu'il faudrait les émuler ou les traduire.

Mais il n'y a techniquement aucune raison fondamentale pour que du code Mac PowerPC ne tourne pas sous Windows x86. Aucune.
Sauf que ça n'intéresse personne d'assurer l'interopérabilité sur la durée et au travers de différentes plateformes.


--------------------
La liberté d'expression c'est l'extrémisme. La censure c'est la liberté.
Go to the top of the page
 
+Quote Post
Benzebut
posté 2 Jul 2025, 14:24
Message #12


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 5 568
Inscrit : 5 Mar 2003
Lieu : Ville de Notre-Dame
Membre no 6 523



Citation (Hebus @ 1 Jul 2025, 16:00) *
Donc le cache produit par Rosetta2 est un exécutable en toute rigueur, au même titre que l'application origine.

Effectivement, mon exemple était trop simpliste, même si un .zsh et consorts sont des fichiers, il s'agit de fichiers particuliers qui sont dans la catégorie des exécutable pour un environnement donné.



Citation (Paul Emploi @ 2 Jul 2025, 01:08) *
Enfin ce n'est pas un "binaire" mais un fichier "exécutable". Comme un script shell par exemple. Ou du Java compilé pour la JVM.
Ou du code PowerPC, ou Intel.

Et c'est sur cette partie que cela fait une différence suite à ces 2 interventions.

Le fichier exécutable généré par Rosetta 2 peut-il fonctionner nativement sur l'architecture ARM indépendamment de Rosetta 2 ? Sinon cela serait comme du Java pour la JVM et avec les mêmes incidences pour une diffusion universelle de ces applications ou de leurs pérennisations entre environnements...


--------------------
Sur iMac Pro (fin-2017) en Xeon 8 coeurs à 3.2 GHz / 32 Go Ram / Radeon Pro Vega 56 8 Go / 1 To SSD
Sous macOS 10.14.6 (Mojave) à jour et en réseau Wifi 6 avec une boite fibre 5 Gbit/s (fin de l'ADSL à la capitale)

Ayant été anobli depuis le 1er septembre de l'an de grâce 2024 avec le titre de Harceleur 1er par la Belle Province sur ces merveilleux forums...

Nostalgique de l'Apple IIgs ? Un petit émulateur : www.casags.net
Go to the top of the page
 
+Quote Post
Paul Emploi
posté 2 Jul 2025, 14:56
Message #13


Macbidouilleur d'Or !
*****

Groupe : Rédacteurs
Messages : 1 823
Inscrit : 19 Nov 2020
Membre no 212 895



Citation (Benzebut @ 2 Jul 2025, 15:24) *
Le fichier exécutable généré par Rosetta 2 peut-il fonctionner nativement sur l'architecture ARM indépendamment de Rosetta 2 ? Sinon cela serait comme du Java pour la JVM et avec les mêmes incidences pour une diffusion universelle de ces applications ou de leurs pérennisations entre environnements...

Il ne semble pas que ça soit possible: une fois Rosetta 2 désinstallé, les exécutables Intel pourtant déjà traduits (transpilés) ne tournent plus, générant à la place la demande d'installer Rosetta 2!

sad.gif


--------------------
La liberté d'expression c'est l'extrémisme. La censure c'est la liberté.
Go to the top of the page
 
+Quote Post
Benzebut
posté 3 Jul 2025, 13:22
Message #14


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 5 568
Inscrit : 5 Mar 2003
Lieu : Ville de Notre-Dame
Membre no 6 523



Citation (Paul Emploi @ 2 Jul 2025, 15:56) *
Il ne semble pas que ça soit possible: une fois Rosetta 2 désinstallé, les exécutables Intel pourtant déjà traduits (transpilés) ne tournent plus, générant à la place la demande d'installer Rosetta 2!

sad.gif

Merci pour cette confirmation, je n'ai pas encore changé de machine pour tester cette nouvelle architecture ARM.
C'est donc comme Java pour la JVM et cela met fin au rêve de Celeri sur une pérennisation de ces "anciennes" applications macOS... huh.gif


--------------------
Sur iMac Pro (fin-2017) en Xeon 8 coeurs à 3.2 GHz / 32 Go Ram / Radeon Pro Vega 56 8 Go / 1 To SSD
Sous macOS 10.14.6 (Mojave) à jour et en réseau Wifi 6 avec une boite fibre 5 Gbit/s (fin de l'ADSL à la capitale)

Ayant été anobli depuis le 1er septembre de l'an de grâce 2024 avec le titre de Harceleur 1er par la Belle Province sur ces merveilleux forums...

Nostalgique de l'Apple IIgs ? Un petit émulateur : www.casags.net
Go to the top of the page
 
+Quote Post
jeandemi
posté 3 Jul 2025, 22:19
Message #15


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 633
Inscrit : 20 Aug 2020
Lieu : Belgique
Membre no 212 269



Probablement que toutes les librairies x86-64 vont disparaître de MacOS 27, ce qui empêcherait Rosetta 2 de fonctionner, donc ils l'enlèveront également
Go to the top of the page
 
+Quote Post
Hebus
posté 4 Jul 2025, 07:11
Message #16


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 7 735
Inscrit : 24 Sep 2015
Lieu : Pays d'Aix
Membre no 196 570



Citation (jeandemi @ 3 Jul 2025, 23:19) *
Probablement que toutes les librairies x86-64 vont disparaître de MacOS 27, ce qui empêcherait Rosetta 2 de fonctionner, donc ils l'enlèveront également


Le changement opérerait sur macOS 28, excepté pour certains jeux non maintenus … d’après le doc de la WWDC

https://developer.apple.com/documentation/a...ion-environment

J’espère qu’ils maintiendront les morceau nécessaires aussi à Docker, même si professionnellement je ne serai pas obligé de mettre à jour mon OS pendant un bon bout de temps. Jusqu’à la retraite dans 3/4 ans smile.gif



--------------------
Bobo du Pays d'Aix et Fanboy Apple/NeXT
Pas d'actions Apple ou de rémunération quelconque !
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
2 utilisateur(s) sur ce sujet (2 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 31st August 2025 - 12:45