Psion Chess 2.13 : un 286 à 1800 MHz
Le programme de Richard Lang de 1987 tourne ici sur un PC 286 émulé cent douze fois trop rapide. Même binaire, même pendule, 232 points Elo de plus — et une leçon assez nette sur ce que la vitesse pure finit par ne plus rapporter.
Le même programme, deux horloges
Psion Chess 2.13 est un programme DOS de 1987. Il ne sait rien de l'ordinateur sur lequel il tourne : il demande l'heure au BIOS, remplit sa table de transposition et calcule. C'est tout l'intérêt de l'émulation — pour l'accélérer, il n'y a rien à modifier dans le programme, il suffit de changer la vitesse de la machine sous lui.
Le PC 286 est émulé par QEMU, qui compte le temps en instructions plutôt qu'en secondes réelles : l'option -icount attribue à chaque instruction une durée virtuelle fixe. À 16 MHz, c'est 256 nanosecondes par instruction, soit 3,8 millions d'instructions par seconde — exactement le débit d'un vrai 80286 à 16 MHz pour ce programme, dont le coût moyen mesuré sur le 286 de MAME est de 4,19 cycles par instruction. Pour la version accélérée, la même instruction ne coûte plus que 2 nanosecondes, avec un facteur de bridage de 0,86 pour tomber juste : 429 millions d'instructions par seconde au lieu de 3,8 millions.
Les mêmes adversaires, deux fois
Les deux versions n'ont pas affronté le même plateau : le gauntlet de classement place chaque moteur face à des adversaires de son niveau, et le Psion accéléré est monté de deux étages dans l'échelle. Onze adversaires se retrouvent pourtant dans les deux listes, et ce sont eux qui donnent la mesure propre.
| Adversaire | Cote | 16 MHz | % | 1800 MHz | % | Écart (pts de %) |
|---|---|---|---|---|---|---|
| Fruit 2.1 ARM9 30 MHz | 2310 | 0 / 3 | 0 % | 2,5 / 10 | 25 % | +25 |
| Fruit 2.1 68040 40 MHz | 2240 | 1 / 10 | 10 % | 4,5 / 10 | 45 % | +35 |
| MChess 1.71 486DX 33 MHz | 2193 | 1 / 10 | 10 % | 4 / 10 | 40 % | +30 |
| Mephisto RISC II | 2228 | 4 / 10 | 40 % | 3,5 / 10 | 35 % | −5 |
| Rebel 6 486DX 33 MHz | 2180 | 3 / 10 | 30 % | 7 / 10 | 70 % | +40 |
| Saitek Sparc (rev. 518) | 2165 | 2 / 10 | 20 % | 7 / 10 | 70 % | +50 |
| Fidelity Elite Avantgarde V9 | 2125 | 2 / 10 | 20 % | 5 / 10 | 50 % | +30 |
| Mephisto Berlin 68000 | 2120 | 1,5 / 10 | 15 % | 5 / 10 | 50 % | +35 |
| Novag Sapphire | 2101 | 3,5 / 10 | 35 % | 5,5 / 10 | 55 % | +20 |
| Fidelity Designer Mach IV | 2079 | 3,5 / 10 | 35 % | 8,5 / 10 | 85 % | +50 |
| Fidelity Designer Mach III | 2029 | 2 / 10 | 20 % | 7,5 / 10 | 75 % | +55 |
| Total (11 adversaires communs) | 23,5 / 103 | 23 % | 60 / 110 | 55 % | +32 |
Sur ces onze adversaires et 213 parties, le score passe de 22,8 % à 54,5 %. Traduit en points Elo, cela fait +243 — en bon accord avec les +232 que donne le classement complet, calculé sur l'ensemble des 456 parties avec toutes les autres connexions du plateau.
Deux lignes méritent une réserve. Le 0/3 contre Fruit 2.1 sur ARM9 ne vaut rien statistiquement : trois parties. Et le Mephisto RISC II est le seul adversaire contre lequel l'accélération n'a rien apporté — 40 % à 16 MHz, 35 % à 1800 MHz. Sur dix parties l'écart n'est pas significatif, mais c'est la seule ligne du tableau qui descend, et elle mérite d'être refaite sur un échantillon plus large.
Ce que coûte un doublement
Le laboratoire compte maintenant plusieurs machines mesurées à deux vitesses. En rapportant le gain au nombre de doublements d'horloge, on obtient un prix du doublement — et il n'est pas constant.
| Machine | Horloge | Rapport | Cote | Gain | Elo par doublement |
|---|---|---|---|---|---|
| Saitek Turbo 16K | 12 MHz → 125 MHz | ×10,4 | 1437 → 1724 | +287 | 85 |
| Fidelity Par Excellence (B) | 5 MHz → 73 MHz | ×14,6 | 1739 → 2090 | +351 | 91 |
| Novag Constellation Forte A | 5 MHz → 91 MHz | ×18,2 | 1803 → 2057 | +254 | 61 |
| Saitek RISC 2500 v1.04 | 14 MHz → 400 MHz | ×28,6 | 2180 → 2440 | +260 | 54 |
| Psion Chess 2.13 (286) | 16 MHz → 1800 MHz | ×112,5 | 1924 → 2157 | +232 | 34 |
La tendance est claire dès qu'on dépasse le facteur vingt : au-delà, chaque doublement rapporte de moins en moins. Les deux premières lignes sont à distance de bruit l'une de l'autre et la cote de base du Turbo 16K est à prendre avec des pincettes — 8 % sur 358 parties, c'est un plancher où l'échelle Elo se comprime. Mais entre le Forte A à ×18 et le Psion à ×112, il n'y a plus d'ambiguïté : 34 points par doublement contre 61.
L'explication la plus simple est la bonne. Psion 2.13 est un programme de 1987 à recherche sélective : il élague beaucoup, voit loin dans quelques variantes et ignore le reste. Donner cent fois plus de temps à un tel programme approfondit les lignes qu'il regarde déjà, mais ne l'amène pas à regarder ailleurs. Les erreurs qui lui restent ne sont pas des erreurs de profondeur, et aucune quantité de mégahertz ne les corrigera.
Ce que la vitesse change dans les parties
Les parties s'allongent : 58 coups en médiane à 16 MHz, 66 à 1800 MHz. Le programme accéléré ne gagne pas plus vite, il perd moins vite — il tient des positions que la version d'époque lâchait au trentième coup.
Le mode de décision ne change pas : presque tout se termine par mat, 249 parties sur 283 pour la version lente, 156 sur 173 pour l'accélérée. Ces programmes et ces machines n'abandonnent pas, ils jouent jusqu'au bout.
Et il y a ce que l'accélération ne change pas du tout : sur ses 56 victoires, le Psion accéléré n'en a pas une seule remportée depuis un déficit matériel durable. Pas un sacrifice spéculatif tenu plus de quatre coups. Il gagne du matériel, puis il le convertit. C'est un matérialiste, et le rester à 1800 MHz en dit plus long sur la fonction d'évaluation de 1987 que sur la machine qui l'exécute.
Là où le gain est le plus visible, c'est contre les machines dédiées des années 1990 — Designer Mach III de 20 à 75 %, Mach IV de 35 à 85 %, Saitek Sparc de 20 à 70 % — plus que contre les programmes DOS, qui résistent mieux. Et il bat désormais des choses qui n'existaient pas quand il a été écrit : Stockfish 11 porté sur un 68020, Fruit 2.1 sur 68040, Rebel 6 sur 486.
Trois parties
Les trois qui suivent viennent toutes de la version à 1800 MHz. Les évaluations citées sont celles de Stockfish 16 à profondeur 22, en pions ; un signe positif est à l'avantage de Psion.
1. Contre Stockfish 11 sur 68020
Psion Chess 2.13 (1800 MHz) – Stockfish 11 68020 16 MHz, 1–0, 50 coups. Gambit dame refusé, variante d'échange.
L'adversaire le plus fort que le Psion accéléré ait battu : un Stockfish 11 compilé pour un 68020 à 16 MHz, coté 2383. La partie se décide en deux coups.
Après 1.d4 d5 2.c4 e6 3.Cc3 Cf6 4.Fg5 Fe7 5.e3 O-O 6.Tc1 Cc6, les noirs bouchent leur pion c, ce qui n'est pas la meilleure idée dans cette structure. Suit 7.Cf3 Te8 8.Fd3 h6 9.Fxf6 Fxf6 10.O-O b6 11.cxd5 exd5 12.Db3 Ce7 13.Dc2 c5 14.dxc5 bxc5 15.Tfd1, et la position est strictement égale : +0,07.
15...a6 est le coup qui perd la partie. Il ne fait rien, et il laisse la tour a8 défendue par la seule dame le long de la huitième rangée — où le fou c8 fait obstacle. Stockfish donne +1,80 aux blancs après le coup suivant, contre +0,67 à la deuxième meilleure option : l'écart est déjà décisif.
16.Ce4! Le cavalier s'offre au pion d5. S'il est pris, c'est le fou d3 qui vient occuper la case e4 — et de là, la grande diagonale e4-a8 s'ouvre sur la tour.
16...dxe4 17.Fxe4 et la tour est perdue. 17...Db6 18.Fxa8.
Le reste est de la technique, et Psion la fait proprement. 18...Ff5 19.Fe4 Fxe4 20.Dxe4 Dxb2 21.Da4 Db5 22.Dxb5 axb5 23.Txc5 : les dames partent, ce qui est exactement ce qu'il faut faire avec une tour de plus. Les noirs s'agitent encore — 32...Txe4 33.Txa5 Txg4+ — mais 35.Txa4 Cxa4 36.Ce5 liquide les dernières pièces.
39...Ce5 40.Cxe5 fxe5 et le pion h se met en route, escorté par son roi : 41.Rg4 Rf8 42.h4 Re8 43.Rh5 Rd8 44.Rxh6 Rc8 45.h5 Rd8 46.Rg5 Rc8 47.Tg7 Rb8 48.h6 e4 49.h7 e3 50.h8=D#. Le roi blanc a traversé l'échiquier de g1 à g5 en passant par h3, g4, h5 et h6 : une marche de roi de huit coups menée sans faute par un programme de 1987.
2. Contre Fritz 3 sur 486
Fritz 3 486DX 33 MHz – Psion Chess 2.13 (1800 MHz), 0–1, 58 coups. Ouverture Dunst.
Fritz 3 est de 1994 et tourne sur un 486DX à 33 MHz, coté 2252. Il ouvre par 1.Cc3, ce que le laboratoire voit rarement. Psion répond classiquement : 1...e5 2.Cf3 Cc6 3.e4 Cf6 4.Fb5 Fb4 5.O-O O-O 6.d3 d6 7.Fg5 Fxc3 8.bxc3 De7.
Suit une longue manœuvre. Fritz double ses tours sur la colonne b et pousse une tour en b7 ; Psion prend la colonne f et ouvre le jeu par 18...f5. Au trentième coup, l'évaluation est à +0,90 pour les noirs : un petit avantage, rien de plus.
31.g3 affaiblit les cases blanches autour du roi, et 31...Dh3 vient s'y installer.
32.Df2 est l'erreur décisive. Stockfish donne −1,33 après 32.Rg1 et −6,24 après 32.Df2 : cinq points perdus d'un seul coup. Psion ne laisse pas passer.
32...Ch5 33.g4 Txg4! La tour prend le pion et s'offre sur la colonne g, face au roi blanc en g1.
34.Tf8 Cg3+ 35.Rg1 Ce4+ — et voilà le point de la combinaison : en quittant g3, le cavalier découvre l'échec de la tour g4 sur la colonne g, et se pose en e4 où il attaque la dame f2. Les blancs doivent parer l'échec, ce qui veut dire prendre la tour : 36.fxg4 Cxf2 37.Fxf2. Une tour contre une dame.
La conversion est longue mais nette : 37...e4 38.dxe4 Dxc3 39.Tf7 Dxc4 40.Te7 Fxe4, puis la poussée du pion c, 48...c4 49.Te3 Fxf3 50.Rxf3 c3 51.Re4 c2 52.Tc3 Dd2 53.Tc4 c1=D 54.Txc1 Dxc1. Le roi blanc part alors chercher les pions noirs — 55.Rf5 De3 56.Rg4 Rg6 57.Rxh4 — et ne revient pas : 57...Rf5 58.h3 Dg5#.
3. Contre le Mephisto Berlin Pro
Psion Chess 2.13 (1800 MHz) – Mephisto Berlin Pro 68020, 1–0, 73 coups. Défense Alekhine.
Celle-ci est la plus instructive des trois, parce que Psion y est d'abord moins bien. Le Berlin Pro est une machine dédiée à 68020, cotée 2315, et elle sort mieux de l'ouverture.
1.e4 Cf6 2.e5 Cd5 3.d4 d6 4.Cf3 g6 5.c4 Cb6 6.Cc3 Fg7 7.Ff4 Cc6 8.h3 Ff5 9.a3 O-O 10.b4 dxe5 : les blancs ont poussé leurs pions à l'aile dame sans rien consolider, et le pion e5 tombe.
L'évaluation est à −2,10 : deux pions d'équivalent, contre une machine plus forte. Ce qui suit est la chose la plus utile que Psion fasse dans cette partie — il liquide. 11.dxe5 Dxd1+ 12.Txd1 Tfd8 13.Txd8+ Txd8 14.b5 Cd4 15.Cxd4 Txd4 16.Fe3 Fxe5 17.Fxd4 Fxd4 18.Cd5 Cxd5 19.cxd5 : les dames, deux paires de tours et deux cavaliers quittent l'échiquier en neuf coups. Il reste une finale de fous et de pions, matériellement équilibrée, où l'avantage positionnel noir ne vaut plus grand-chose.
Au trentième coup, l'évaluation est à zéro. Psion a effacé son retard en simplifiant.
Puis vient une manœuvre de quarante coups. Le roi blanc entre dans la position — d2, d3, d4, c5, d6 — la tour va et vient sur la septième rangée, et le Berlin Pro épuise peu à peu ses coups utiles. Au passage, 24.bxc6 est une prise en passant, ce qui n'est pas si courant chez les programmes de cette génération. 48...d4 est le relâchement qui donne la partie.
Au cinquante-troisième coup, Psion joue 53.Tb5 — le premier choix de Stockfish 16 à profondeur 22, à +4,83. Ensuite tout s'enchaîne : 53...h5 54.gxh5 g4 55.hxg4 Rh6 56.a5 d3 57.Fxd3, et le pion a court. 60.a6 Fc4 61.a7 Fxb5 62.a8=D Fxd3+ 63.Rxd3 Rxg4 64.h6 Rxf5 65.h7, une deuxième dame à 72.h8=D+, et mat au coup suivant.
Soixante-treize coups, dont cinquante de finale, sans une faute qui coûte. Ce n'est pas brillant, c'est de l'endurance — et c'est précisément ce que l'accélération achète.
Ce que ça dit du programme
À 2157, le Psion 2.13 accéléré se situe autour du niveau d'un Mephisto RISC II ou d'un Saitek Sparc, soit des machines de 1992-1993. Un programme de 1987 poussé cent douze fois au-delà de son matériel d'origine rattrape donc environ six ans de progrès — et s'arrête là, alors qu'il reste de la marge d'horloge.
C'est la conclusion la moins spectaculaire et la plus solide de cette mesure : la vitesse achète de la profondeur, la profondeur achète de l'endurance, et l'endurance s'épuise. Ce qui sépare Psion 2.13 des programmes de la fin des années 1990 n'est pas une question de mégahertz.
- Mesures : gauntlets de classement du laboratoire, 283 parties à 16 MHz et 173 à 1800 MHz, cadence 60 coups en 15 minutes, livre d'ouvertures Perfect 2023 limité à 10 coups.
- Cotes : classement du site, ajustement Ordo sur l'ensemble des parties du laboratoire.
- Analyses des parties : Stockfish 16, profondeur 22 pour les positions citées.
- Émulation : QEMU avec
-icount, étalonnage du 80286 en cycles par instruction mesuré sur le pilote 286 de MAME.
