Laboratoire · machines virtuelles · octobre 2026
Cray Blitz sur quatre processeurs : 486, Pentium 90, ARM9 à 30 et à 300 MHz
Le programme des Cray, champion du monde des ordinateurs en 1983 et 1986, a été embarqué tel quel, en Fortran, dans quatre machines dédiées qui n’ont jamais existé. Les quatre gauntlets sont finis : 1861 sur l’ARM9 à 30 MHz, 1869 sur le 486DX à 33 MHz, 2022 sur le Pentium 90, 2034 sur l’ARM9 à 300 MHz. Le même programme, le même livre, la même cadence ; seul le processeur change, et c’est ce qui permet de peser les processeurs eux-mêmes.
De quoi on parle
Cray Blitz est le programme de Robert Hyatt, Harry Nelson et Albert Gower, écrit en Fortran pour les superordinateurs Cray. Il a remporté le Championnat du monde des ordinateurs à New York en 1983 et à Cologne en 1986, avant de céder le titre à Deep Thought en 1989. La version utilisée ici est la 4.9h, datée du 9 décembre 1990 : c’est la version publiée par Hyatt, celle de la fin de carrière du programme, qui tournait alors sur les Cray Y-MP. Son successeur direct est Crafty, du même auteur, mesuré sur la même machine ARM9.
Ce Fortran de supercalculateur a été compilé pour trois processeurs qu’il n’a jamais connus, et chargé en cartouche dans quatre machines dédiées virtuelles. Ce sont des sœurs des machines 68020, 68040 et ARM9 décrites dans Stockfish 11 & Fruit 2.1 : 68020, 68040 & ARM : un processeur, de la mémoire, une horloge en millisecondes et un port série pour parler au monde ; pas de système d’exploitation, pas de disque, pas d’écran. Le programme démarre « à nu », comme le ferait le logiciel d’un Mephisto ou d’un Fidelity.
- ARM9 à 30 MHz (ARMv5TE), émulé par MAME, bridé au temps réel : la machine réfléchit exactement comme le ferait le matériel. 30 MHz est la fréquence du TASC R30 de 1993, valeur d’époque pour une machine dédiée.
- 486DX à 33 MHz, Pentium à 90 MHz et ARM9 à 300 MHz, émulés par QEMU. MAME interprète ces processeurs instruction par instruction et ne tient pas le temps réel au-delà de quelques dizaines de mégahertz ; QEMU traduit le code et va bien plus vite. Son horloge virtuelle avance d’un pas fixe par instruction exécutée, et ce temps est ramené à celui du vrai processeur par une échelle étalonnée contre la machine MAME, sur les mêmes recherches. Le relais retient ensuite le coup jusqu’à ce que le temps réel écoulé soit celui du matériel : la pendule est débitée comme sur une vraie machine.
Cray Blitz ne parle pas UCI : c’est un programme de console qui pose des questions à un opérateur. Un relais Python y répond, lui pose la position, lui transmet le coup adverse et lui fixe un temps par coup ; il traduit ses coups en notation UCI pour cutechess. Deux traits du programme d’origine ont été conservés : il ne peut pas être interrompu, le coup arrive quand il a fini ; et, comme sur le Cray, il s’autorise à dépasser le temps accordé pour ne pas perdre de matériel. Le relais en tient compte dans le temps qu’il lui donne. Son livre d’ouvertures est celui de Cray Blitz, 68 679 positions, d’où les 1.b3 et les 1…b6 que l’on va voir.
Les tests BT-2450 et BT-2630 ont été passés sur le 486DX 33 MHz émulé par MAME et sur celui émulé par QEMU : 2008 et 2075 pour l’un, 2007 et 2074 pour l’autre, avec les mêmes positions résolues (18 et 14 sur 30). L’étalonnage de l’horloge virtuelle tient : les deux machines résolvent les mêmes positions dans les mêmes temps.
Le résultat
Quatre gauntlets selon la règle habituelle du laboratoire : une échelle d’adversaires à cote fixe, dix parties par marche, arrêt quand l’échelle est perdue, puis un complément contre les adversaires du milieu de l’échelle. Cadence 60 coups en 15 minutes, 15 secondes par coup en pratique. Les cotes sont celles de la liste Performance Elo, recalculées par Ordo avec toutes les parties du laboratoire.
| Machine | Émulation | Parties | Score | Elo labo | BT-2450 | BT-2630 | Prof. |
|---|---|---|---|---|---|---|---|
| Cray Blitz 49h ARM9 300 MHz | QEMU | 160 | 82,5 · 52 % | 2034 | 2174 · 24/30 | 2219 · 18/30 | 6,5 |
| Cray Blitz 49h Pentium 90 MHz | QEMU | 250 | 158 · 63 % | 2022 | 2028 · 17/29 | 2090 · 13/29 | 5,7 |
| Cray Blitz 49h 486DX 33 MHz | QEMU | 208 | 117 · 56 % | 1869 | 2007 · 18/30 | 2074 · 14/30 | 4,9 |
| Cray Blitz 49h ARM9 30 MHz | MAME | 226 | 126 · 56 % | 1861 | 2009 · 18/30 | 2076 · 14/30 | 4,8 |
| Cray Blitz 49h, PC 1 thread | Ryzen 9 7950X3D | 105 | 84 · 80 % | 2544 | · | · | · |
Elo labo : liste Performance Elo du 20 octobre 2026. BT : tests BT-2450 et BT-2630 du laboratoire, 15 minutes par position, avec le nombre de positions résolues (le Pentium a sauté une position). Prof. : profondeur moyenne annoncée par le programme sur ses coups de plus de 8 secondes. La version compilée pour le PC est donnée pour mémoire : ses conditions d’exécution n’ont jamais été stabilisées et le laboratoire ne la juge pas fiable ; elle est écartée de toutes les comparaisons qui suivent.
Deux groupes, nets. Le 486 à 33 MHz et l’ARM9 à 30 MHz jouent à huit points l’un de l’autre, et résolvent les tests BT à deux points près : pour Cray Blitz, ces deux processeurs sont la même machine. Le Pentium 90 et l’ARM9 à 300 MHz sont à douze points l’un de l’autre, 160 points plus haut. À l’intérieur de chaque groupe, l’écart est bien en dessous de l’incertitude des mesures (une vingtaine de points à 1 σ sur 150 à 250 parties).
La profondeur suit : 4,8 à 4,9 demi-coups en moyenne sur les machines lentes, 5,7 sur le Pentium, 6,5 sur l’ARM9 rapide. Cray Blitz n’itère pas finement : à 15 secondes il termine sa profondeur 5 ou sa profondeur 6, et c’est le passage de l’une à l’autre, plus que les nœuds par seconde, qui fait les 160 points. Le programme utilise sa pendule avec régularité : 14,2 à 14,6 secondes par coup en moyenne, 7 % des coups au-delà de 20 secondes (le dépassement autorisé quand une pièce est en jeu), et aucune partie perdue au temps en 844 parties.
Cray Blitz et ses adversaires sont déterministes, et le livre de Cray Blitz ne tire pas au sort : quand la même ligne d’ouverture revient contre le même adversaire, la partie entière se répète. Sur les quatre gauntlets, 229 des 844 parties sont la copie exacte d’une autre (56 sur 208 pour le 486, 58 sur 226 pour l’ARM9 30 MHz, 87 sur 250 pour le Pentium, 28 sur 160 pour l’ARM9 300 MHz). Ordo les compte toutes, comme pour les machines CB-Emu de la liste, qui ont le même travers. L’échantillon utile est donc d’environ 615 parties distinctes, et les scores contre un adversaire donné (dix parties, souvent trois ou quatre lignes différentes) ne veulent pas dire grand-chose pris un par un.
Ce que valent les processeurs, vus par Cray Blitz
C’est le véritable objet de ces quatre gauntlets. Un même programme sur plusieurs machines sépare la force du programme de celle du matériel. Avec le 486DX 33 MHz comme origine :
Cotes de la liste Performance Elo du 20 octobre 2026. L’échelle commence à 1700.
- Pentium 90 contre 486DX 33 : +153. Les douze programmes DOS mesurés sur les deux machines (Rebel, Fritz, Chess Genius et MChess) donnent +165 en moyenne, de +43 pour MChess Pro 6 à +240 pour Rebel 6. Cray Blitz est dans la moyenne : le passage de génération x86 lui profite comme aux autres.
- ARM9 300 contre ARM9 30 : +173 pour dix fois l’horloge, soit 52 points par doublement de vitesse. C’est un peu moins que les 60 à 70 points par doublement observés sur les machines dédiées accélérées du laboratoire. Les tests BT disent la même chose : +165 et +143 points BT entre les deux fréquences.
- ARM9 30 MHz contre 486DX 33 : −8. Rien. À fréquence égale, Cray Blitz ne fait aucune différence entre le RISC de 1997 et le CISC de 1989.
Ce dernier point est celui qui compte, parce qu’un autre programme dit le contraire. Stockfish 11, sur les mêmes machines : 2695 sur le 486DX 33 MHz, 2829 sur l’ARM9 à 30 MHz, soit +134 pour l’ARM. Pour Stockfish, l’ARM9 à 30 MHz vaut presque un Pentium 90 ; pour Cray Blitz, il vaut un 486. Le gain d’un processeur n’est pas une propriété du processeur : c’est une propriété du couple programme-processeur.
Une hypothèse, à vérifier avec le profileur du pilote MAME : Stockfish passe son temps dans des bitboards 64 bits qu’il manipule par multiplications (les magic bitboards) et par recherche du premier bit ; l’ARM9 a une multiplication 32×32→64 en quelques cycles et une instruction CLZ, là où le 486 multiplie en treize cycles et plus et cherche un bit lentement. Cray Blitz, écrit pour un Cray, manipule aussi des mots de 64 bits, mais à la manière de 1980 : sans multiplication magique, avec des tables et des décalages que le compilateur Fortran traduit à peu près de la même façon pour les deux processeurs. Le code Fortran, de surcroît, passe par un compilateur dont la génération ARM n’a pas été réglée pour lui. Rien de tout cela n’est prouvé ; c’est l’objet d’un article à venir.
État du classement des plateformes
En réunissant tous les programmes mesurés sur au moins deux machines (les douze programmes DOS, Fruit 2.1, Stockfish 11, Rebel 6 natif et Cray Blitz), un ajustement par moindres carrés donne à chaque plateforme un bonus, le 486DX 33 MHz servant d’origine. Les quatre cotes de Cray Blitz entrent dans ce calcul ; c’est lui, pour l’instant, le seul pont vers l’ARM9 à 300 MHz.
| Plateforme | Bonus vs 486DX 33 | Programmes qui la relient |
|---|---|---|
| 68020 à 16 MHz | −342 | Fruit 2.1, Stockfish 11 |
| 68040 à 40 MHz | −153 | Fruit 2.1, Stockfish 11 |
| 486DX à 33 MHz | 0 | douze programmes DOS, Cray Blitz, Stockfish 11 |
| ARM9 à 30 MHz | +19 | Cray Blitz, Fruit 2.1, Stockfish 11 |
| Pentium à 90 MHz | +165 | douze programmes DOS, Cray Blitz |
| ARM9 à 300 MHz | +178 | Cray Blitz seul |
| PC Ryzen, 1 thread | +465 | Fruit 2.1, Rebel 6 |
Moindres carrés pondérés sur 37 cotes de 15 programmes, liste du 20 octobre 2026. Les résidus les plus forts sont justement ceux de l’ARM9 à 30 MHz : Stockfish y fait +78 de mieux que le modèle, Fruit −64. Les gauntlets de Stockfish 11 sur Pentium 90 et sur ARM9 300 MHz, en cours, donneront un second pont pour ces deux plateformes.
La partie remarquable : deux tours pour un roi
Mephisto Nigel Short – Cray Blitz 49h ARM9 300 MHz · gauntlet du 18 octobre 2026 · anglaise, 1…b6 · 0-1 en 38 coups
Le Mephisto Nigel Short (Ed Schröder, 1993) est coté 1956, à peu près le niveau de Cray Blitz sur le Pentium ; sur l’ARM9 à 300 MHz, Cray Blitz lui a pris les dix parties. Celle-ci est la plus courte et la plus brutale. Elle est aussi la plus instructive sur la manière de jouer du programme : une ouverture de livre douteuse, vingt coups de résistance passive pendant que le Mephisto s’installe, puis, dès que l’adversaire relâche la pression, une combinaison à deux sacrifices de tour que Cray Blitz calcule jusqu’au mat en quelques secondes. Les évaluations entre crochets sont celles de Stockfish 16 à 600 000 nœuds par coup ; les évaluations « annoncées » sont celles des deux programmes pendant la partie.
1.c4 b6 2.Cc3 Cc6 3.d4 e6 4.e4 Cge7 5.Cf3 f5 ?! Le livre de Cray Blitz, puis ses premiers coups à lui : les Noirs ont deux cavaliers mal placés et ouvrent la diagonale de leur roi [+3,0]. 6.Fg5 Le Mephisto, à profondeur 2 annoncée, ne trouve pas 6.d5 et laisse filer la moitié de l’avantage [+1,1]. 6…fxe4 7.Cxe4 h6 8.Fh4 Fb7 9.Fd3 Dc8 10.Ce5 Cxe5 11.dxe5 h5 12.O-O Cf5 13.Fg5 Fe7 14.Fxe7 Cxe7 15.f4 Cf5 16.Dd2 Fc6 17.b4 h4 18.a4 O-O 19.Cg5 De8 20.Tfd1 Td8 21.a5 De7 22.axb6 axb6 23.Ta7 d6 24.b5 Fe8 Les Blancs ont tout : la septième rangée, le pion e5 qui étouffe, un cavalier en g5, le fou d3 qui vise f5 [+3,1]. Cray Blitz annonce −0,89 et attend.
25.Tda1 ? Le Mephisto double les tours sur la colonne a au lieu de prendre en f5, et l’avantage passe aux Noirs d’un seul coup [−1,2] : le centre blanc tombe. 25…dxe5 26.De2 exf4 27.Fxf5 Dxg5 28.Fxe6+ Rh8 29.Txc7 ?? Un pion de plus, et la perte de la partie [−7,1]. Il fallait 29.Dg4 pour contenir le pion f. 29…f3 ! Cray Blitz passe de −0,67 à +2,62 annoncés : il a vu. 30.Df1 Td2 ! La tour entre sur la deuxième rangée [−9,7]. 31.g3
31…Txh2 !! Première tour. Cray Blitz l’annonce avec +3,70 à profondeur 4 : il ne voit pas encore le mat, il voit un roi nu. Stockfish 16 donne le mat en neuf. 32.Rxh2 hxg3+ [#−8] Cray Blitz annonce maintenant +9,57. 33.Rh3 Tf4 ! La deuxième tour vient prendre part, et le programme annonce le mat : +300 à profondeur 3, en 1,3 seconde. 34.Dxf3 Dh4+ 35.Rg2 Dh2+ 36.Rf1 Txf3+ 37.Re1 Tf1+ ! Deuxième sacrifice de tour, pour attirer le roi sur la case du mat. 38.Rxf1 Df2 mat.
Cette partie dit l’essentiel de ce qu’est Cray Blitz à 15 secondes par coup sur ces machines : un programme qui ne comprend pas grand-chose à la position tant que rien ne bouge, et qui calcule très juste dès qu’il y a quelque chose à calculer. Les 25 premiers coups sont ceux d’un joueur de 1800 ; les treize derniers, ceux d’un programme de championnat du monde.
Les adversaires
Les quatre échelles n’ont pas les mêmes marches : les deux machines lentes sont parties plus bas et se sont arrêtées plus tôt. Le tableau donne, pour chaque adversaire, le score de Cray Blitz sur chacune des quatre machines.
| Adversaire | Elo | 486DX 33 | ARM9 30 | Pentium 90 | ARM9 300 |
|---|---|---|---|---|---|
| Rebel 6 486DX 33MHz | 2206 | · | · | · | 1,5/10 · 15 % |
| MChess 1.71 486DX 33MHz | 2198 | · | · | · | 1,5/10 · 15 % |
| Saitek RISC 2500 v1.04 | 2182 | · | · | 3/10 · 30 % | · |
| Saitek Sparc (rev.518) | 2175 | · | · | 1/10 · 10 % | 0,5/10 · 5 % |
| Fidelity Elite Avantgarde V9 | 2125 | · | · | 0/10 · 0 % | 3,5/10 · 35 % |
| Mephisto Berlin 68000 v0.03 | 2124 | · | · | 5,5/10 · 55 % | 2/10 · 20 % |
| Novag Sapphire | 2106 | · | · | 5,5/10 · 55 % | 2,5/10 · 25 % |
| Fidelity Designer Mach IV | 2091 | · | 0/6 · 0 % | 0/10 · 0 % | 2,5/10 · 25 % |
| Fidelity Designer Mach III | 2029 | 0/8 · 0 % | 1/10 · 10 % | 4/10 · 40 % | 9/10 · 90 % |
| Novag Zircon II | 1968 | 2,5/10 · 25 % | 3/10 · 30 % | 5,5/10 · 55 % | 5/10 · 50 % |
| Mephisto Mondial 68000 XL | 1966 | 0/10 · 0 % | 1,5/10 · 15 % | 9,5/10 · 95 % | 3,5/10 · 35 % |
| Mephisto Nigel Short | 1956 | 4/10 · 40 % | 3/10 · 30 % | 4,5/10 · 45 % | 10/10 · 100 % |
| Saitek Maestro D++ | 1922 | 1,5/10 · 15 % | 0/10 · 0 % | 6/10 · 60 % | 7,5/10 · 75 % |
| Novag Super Expert C v3.6 | 1882 | 6/10 · 60 % | 2,5/10 · 25 % | 7,5/10 · 75 % | 7,5/10 · 75 % |
| Saitek President | 1877 | 10/10 · 100 % | 9/10 · 90 % | 9,5/10 · 95 % | 10/10 · 100 % |
| Novag Super Forte C v3.6 | 1872 | 7,5/10 · 75 % | 4/10 · 40 % | 9/10 · 90 % | 6,5/10 · 65 % |
| Saitek Corona II (ver. D+) | 1856 | 5,5/10 · 55 % | 6/10 · 60 % | 6,5/10 · 65 % | 9,5/10 · 95 % |
| Mephisto Modena (set 3) | 1834 | 3,5/10 · 35 % | 6/10 · 60 % | 9/10 · 90 % | · |
| Mephisto MM V (v5.1) | 1824 | 6/10 · 60 % | 8/10 · 80 % | 7/10 · 70 % | · |
| Saitek Turbo King II (D+) | 1816 | 2,5/10 · 25 % | 6,5/10 · 65 % | 9/10 · 90 % | · |
| Novag Constellation Forte A | 1803 | 6/10 · 60 % | 5,5/10 · 55 % | 3/10 · 30 % | · |
| Mephisto MM IV (v7.10) | 1790 | 7/10 · 70 % | 7/10 · 70 % | 9/10 · 90 % | · |
| Fidelity Designer 2100 | 1775 | 8/10 · 80 % | 9/10 · 90 % | 9/10 · 90 % | · |
| Saitek Simultano (ver. B) | 1749 | 7,5/10 · 75 % | 6/10 · 60 % | 9,5/10 · 95 % | · |
| Fidelity Par Excellence (B) | 1727 | 8/10 · 80 % | 7,5/10 · 75 % | 9,5/10 · 95 % | · |
| Saitek Prisma | 1724 | 6,5/10 · 65 % | 8,5/10 · 85 % | 8/10 · 80 % | · |
| Fidelity Designer 2000 | 1672 | 9,5/10 · 95 % | 10/10 · 100 % | 8/10 · 80 % | · |
| Novag Super VIP v3.7 | 1640 | 7,5/10 · 75 % | 7/10 · 70 % | · | · |
| Tandy Chess Champion 2150 | 1577 | 8/10 · 80 % | 8/10 · 80 % | · | · |
| Saitek Turbo 16K | 1437 | · | 7/10 · 70 % | · | · |
Cotes des adversaires : liste Performance Elo du 20 octobre 2026. Les séries de plus de dix parties viennent du complément. Les écarts d’un adversaire à l’autre entre le Pentium et l’ARM9 300 MHz (Mondial 68000 XL 9,5/10 contre 3,5/10, Nigel Short 4,5/10 contre 10/10) montrent ce que valent dix parties avec des doublons : rien de plus qu’un ordre de grandeur. Les totaux, eux, concordent.
Ce qu’il reste à faire
- Stockfish 11 sur Pentium 90 et sur ARM9 300 MHz, dans la file des gauntlets : un second programme sur les quatre mêmes machines, et l’article sur le classement des plateformes.
- Cray Blitz à 300 MHz contre Crafty à 30 MHz : les deux programmes de Hyatt sont désormais tous deux mesurés sur l’ARM9 ; Crafty à 30 MHz (2221) rend 187 points à son aîné à 300 MHz, et en prend 360 à horloge égale.
- Passer le profileur du pilote MAME sur Cray Blitz et sur Stockfish, à 30 MHz, pour savoir où va le temps de chacun et vérifier l’hypothèse des multiplications.
Sources
- PGN des quatre gauntlets, laboratoire chess.lumn.eu, 18–19 octobre 2026 ; cotes de la liste Performance Elo du 20 octobre 2026.
- Stockfish 11 & Fruit 2.1 : 68020, 68040 & ARM, chess.lumn.eu : les machines dédiées virtuelles et leur relais.
- Crafty 19.15 sur ARM9 : une machine dédiée qui n’a jamais existé, chess.lumn.eu, octobre 2026.
- Un représentant par famille : Rebel, Fritz, Chess Genius et MChess sur 486 et Pentium, chess.lumn.eu, octobre 2026.
- Les tests BT, mesurés en série, chess.lumn.eu, octobre 2026.
- Cray Blitz, Chess Programming Wiki ; sources de Cray Blitz publiées par Robert Hyatt.
- Analyses de la partie : Stockfish 16, 600 000 nœuds par coup.
chess.lumn.eu · laboratoire de calibration · 20 octobre 2026
