Nous utilisons des cookies pour améliorer votre expérience.

MacBidouille

Les optimisations RC5 expliquées par leur auteur

Afin d'avoir des précisions sur les résultats obtenus par le G5, j'ai pu interviewer Kakace sur IRC, l'auteur des partie du code du client dnetc qui contiennent les optimisations pour G4, G5 et Altivec. Je vous rappelle que le challenge RC5-72 consiste à réunir le maximum de ressource pour casser un cryptage en 72 bits.
Pourquoi le 970 est moins performant que le G4 à ton avis ?

Dans l'absolu, le keyrate d'un G5 1.6 GHz est du niveau d'un G4 1 GHz (un G4 1.25 atteint 13.3 MKeys/s par CPU).
A part ça, j'ai essayé d'écrire un core spécifique pour le G5, mais je suis forcé d'admettre qu'il n'est pas pris en compte (plus lent que le core G4e). Il faut que je fasse un nouveau cruncher pour le G5 (beaucoup plus compliqué). Mon générateur de code actuel ne permet pas de le faire, donc ça va prendre du temps.

Quels sont les points faibles de l'actuel ? pourquoi n'est-il pas efficace ?
Les unités AltiVec du G5 ont un pipeline légèrement plus long, ce qui fait qu'elles sont très sensibles aux dépendances entre instructions. Donc avec un cruncher AltiVec classique, le G5 tourne à 60% par rapport à un G4 de même fréquence. Pour contrecarrer ces dépendances, je vais être obligé d'écrire un cruncher beaucoup plus complexe (ce que j'appelle un 4-pipe/3 stages pipelined core).

Quelles seront les gains à attendre de ce nouveau crunsher ?
Le G4 sort une instruction AltiVec par cycle d'horloge, alors que le G5 est plus proche d'une instruction tous les 2 cycles.
Le but du nouveau cruncher est d'éliminer les dépendances entre les instructions pour obtenir du full-speed. Si je réussi mon coup, le G5 devrait être légèrement plus rapide qu'un G4 de même fréquence.

Combien de temps ça t'a pris pour faire l'optimisation actuelle pour le G5 ?
Ca m'a pris presque rien :) J'ai écris un outil qui génère le code ASM pour les crunchers G4. J'ai juste modifié quelques trucs pour essayer de bourrer les pipelines du G5. M'enfin ça marche pas comme prévu :-/

Donc on peut dire que c'est de l'optimisation ratée :-)
Oui, c'est une adaptation ratée. Le but était d'essayer d'améliorer les perfs, autant que possible, sans avoir à écrire un nouveau cruncher. Mais c'est difficile à faire sans avoir de G5 sous la main :-) J'ai fait ça en aveugle, d'après les specs du 970.
Autrement dit, le cruncher 970 actuel est un cruncher G4e modifié, donc non-optimum

Comment tu comptes t'y prendre pour pouvoir écrire ce nouveau crunsher ? Combien de temps ça va prendre ?
Dès que les G5 auront été livrés, j'essayerai d'écrire un nouveau cruncher spécifique. Il me suffira de fournir un client de test à quelqu'un ayant un G5 pour faire un bench. A partir de là, j'analyse les résultats par rapport au code et aux specs théoriques.
Combien de temps ça va me prendre ? j'en sais rien... j'ai tout à refaire, donc ça peut prendre plus d'un mois, facile.

Dernière question, qu'apporterait une optimisation 64 bits de ton code, sachant que le G5 est un processeur 64 bits ?
Rien du tout (au contraire). L'algo est prévu pour du 32 bits. En mode 64 bits, il faut réduire le résultat de chaque opération pour qu'il soit modulo 2^32, ce qui fait perdre du temps.

Que veux-tu dire ?
Le challenge consiste à décrypter un message suivant une formule basée sur des calculs exclusivement 32 bits. Il faudrait que RSA propose un nouveau challenge avec un cryptage basé sur des calculs modulo 2^64.

Merci beaucoup Didier pour ces précisions, et on compte sur toi pour nous faire le crunsher qui permettra à Apple de justifier que sa machine est "l'ordinateur personnel le plus puissant du monde".
Pour tout te dire, un gros G4 pulvérise déjà n'importe quoi. Il suffit d'aller voir les stats sur distributer.net pour s'en apercevoir. Donc on ne pourra que faire mieux avec le G5 (ne serait-ce que par la monté en fréquence).

Vous pourrez consulter ces stats sur le site de distributed.net. Je vous rappelle aussi que vous pouvez participer au challenge RC5-72 avec la team Macbidouille.
Partager sur
Sondage

Etes-vous tenté par le nouveau Mac mini M4 ?