En 2003, Apple lançait des machines équipées d’un processeur 64 bits, le PowerPC 970, alias G5 dans le jargon Apple, même si ce n’est pas réellement la cinquième génération de PowerPC. Avant de faire un sujet plus long sur le support du 64 bits dans Mac OS X, je me suis posé une simple question : existe-t-il des applications 64 bits pour PowerPC ?
J’ai donc installé Leopard (le dernier OS pour les PowerPC chez Apple) sur un Power Mac G5 (deux CPU à 2 GHz, 3,5 Go de RAM) et lancé la commande qui permet de vérifier la présence d’un binaire 64 bits.
locate -0 app/Contents/MacOS/ | xargs -0 file | grep ppc64
Surprise : il n’y en a que deux. Un truc lié aux scanners et le jeu d’échec de Mac OS X, qui contient d’ailleurs aussi des binaires PowerPC 32 bits, x86 (32 bits) et x86-64. J’en reparlerais, mais c’est pire avec les OS précédents : Jaguar et Panther ne permettent pas de proposer des applications 64 bits et Tiger ne prend pas en charge l’interface graphique avec les applications 64 bits.
Après quelques recherches, je découvre que Sjeng intègre un benchmark. Il suffit de lancer le moteur en ligne de commande et de taper la commande speed
. Pour passer d’une architecture à une autre, il faut lancer le programme avec un argument avant.
En 32 bits :
arch -ppc /Applications/Chess.app/Contents/Resources/sjeng.ChessEngine
En 64 bits (par défaut) :
arch -ppc64 /Applications/Chess.app/Contents/Resources/sjeng.ChessEngine
Au passage, si vous voulez connaître les binaires proposés, la commande suivante fonctionne bien.
lipo -detailed_info /path/
Le côté amusant de la chose, c’est que la version 32 bits, qui n’est pas lancée par défaut, donc, est plus rapide que la version 64 bits, avec une avance parfois élevée.
Sjeng: speed (32 bits // 64 bits)
Movegen speed : 906143/s // 476458/s
Make+unmake speed : 8849842/s // 8649209/s
Movecycle speed : 6640627/s // 5521961/s
Eval speed : 900434/s // 808991/s
Plus clairement, Apple aurait pu utiliser des processeurs 32 bits capable d’adresser sur plus de 32 bits (au hasard, une partie des x86 de l’époque) sans que ça change réellement quelque chose. Le G5 a l’avantage d’être un bon processeur, même en 32 bits, et heureusement. Le 64 bits, c’était surtout du marketing, et il a fallu attendre Moutain Lion pour qu’Apple y passe totalement.
Utiliser des binaires 64 bits implique que tout soit en 64 bits, y compris les pointeurs mémoire, ce qui a des conséquences négatives niveau performance.
L’avantage du 64 bits sur Intel, c’est qu’on passe de 8 à 16 registres exploitables, ce qui apporte un gain de performance conséquent là où sur un PowerPC, on a accès à 32 registres, qu’on soit en 32 comme en 64 bits.
D’ou la phrase du directeur marketing de Qualcomm lors des annonces des 64-Bit du processeur de l’iPhone 5S : du marketing !
Enfin pour Qualcomm, c’est une peu spécial : il allait pas dire que ça servait à quelque chose étant donné qu’il en avait pas (et pas en projet). Et le marketing en question les a forcé à utiliser du 64 bits d’origine ARM avec le Snapdragon 810 et on voit le résultat…
D0D : Le 64Bits sur iPhone et iOS va déjà plus loin que ce que le Mac proposait lors de la transition. Sans 64Bits pas de Touch ID et pas de Pay car Secure Enclave n’est possible qu’avec un CPU 64Bits alors que sur le Mac c’était juste pour permettre aux Pro de consommer plus de 3,3Go de RAM et calculer plus vite en Floating Point.
D’ailleurs il est amusant de remarquer que le S1 de Watch est déjà une architecture 64Bits pour la même raison. (Du coup tu peux te retrouver à utiliser un périphérique 64Bits sur un iPhone 5 32Bits ^^) alors que toutes les SmartWatches du marché sont 32Bits et que du coup les Apps devront vivre encore une fois la transition.
Pour plus d’infos : http://www.digitaltrends.com/mobile/iphone-5s-64-bit-a7-processor/ (Note que cet article date du 5S et qu’il est assez prémonitoire pour Pay).