Maximum speed

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Henk
Posts: 7216
Joined: Mon May 27, 2013 10:31 am

Maximum speed

Post by Henk »

What's the maximum speed ever say measured relative to speed of Fairy max 4.8 on the same computer using one thread ? Requirement: the chess engine should play or look like it plays normal chess.
Henk
Posts: 7216
Joined: Mon May 27, 2013 10:31 am

Re: Maximum speed

Post by Henk »

If the question is too difficult to answer: what is at this moment the fastest engine measured in nodes / second.

Slowest is probably Skipper with speed four or five times less than Fairy Max although I improved it lately.
mar
Posts: 2554
Joined: Fri Nov 26, 2010 2:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: Maximum speed

Post by mar »

Henk wrote:What's the maximum speed ever say measured relative to speed of Fairy max 4.8 on the same computer using one thread ? Requirement: the chess engine should play or look like it plays normal chess.
It depends, problem is many engines count nodes differently (some count moves made etc.)
From what I've seen, Crafty is very fast in terms of raw nps, so perhaps that's the engine you're looking for.
Henk
Posts: 7216
Joined: Mon May 27, 2013 10:31 am

Re: Maximum speed

Post by Henk »

Ok if Crafty is 5 times faster than Stockfish and looks like Stockfish is 1.5 or 2 times faster than Fairy max on my computer then Crafty is 7.5 to 10 times faster than Fairy max.

So maximum is 10 and minimum 0.2 multiplied by 10 gives speed range [2, 100].

Current speed of Skipper is at this moment two times speed of Fairy max = 20. But I removed almost all evaluation code. So it's artificial and temporary.
matthewlai
Posts: 793
Joined: Sun Aug 03, 2014 4:48 am
Location: London, UK

Re: Maximum speed

Post by matthewlai »

Henk wrote:Ok if Crafty is 5 times faster than Stockfish and looks like Stockfish is 1.5 or 2 times faster than Fairy max on my computer then Crafty is 7.5 to 10 times faster than Fairy max.

So maximum is 10 and minimum 0.2 multiplied by 10 gives speed range [2, 100].

Current speed of Skipper is at this moment two times speed of Fairy max = 20. But I removed almost all evaluation code. So it's artificial and temporary.
I happen to have quite a few engines in my gauntlet, so I ran a search from start position on all of them. All single threaded.

Arasan: 878 knps
Betsabe II: 1339 knps
Cheng: 1307 knps
Crafty: 2434 knps
Diablo: 966 knps
EXchess: 749 knps
Fairymax: 677 knps
GNU Chess 6: 1221 knps
GreKo: 1567 knps
Phalanx: 752 knps
RobboLito: 1551 knps
Scorpio: 1071 knps
Senpai: 717 knps
Sloppy: 1407 knps
Smash: 587 knps
Stockfish: 1110 knps
Sungorus: 3074 knps
Texel: 1016 knps
ZCT: 752 knsp

And of course my own engines:
Brainless: 1291 knps
Giraffe: 126 knps

I didn't realize my old engine is so fast. Maybe that's why it's already beaten by Giraffe by almost 100 Elo :).
Disclosure: I work for DeepMind on the AlphaZero project, but everything I say here is personal opinion and does not reflect the views of DeepMind / Alphabet.
Henk
Posts: 7216
Joined: Mon May 27, 2013 10:31 am

Re: Maximum speed

Post by Henk »

matthewlai wrote:
Henk wrote:Ok if Crafty is 5 times faster than Stockfish and looks like Stockfish is 1.5 or 2 times faster than Fairy max on my computer then Crafty is 7.5 to 10 times faster than Fairy max.

So maximum is 10 and minimum 0.2 multiplied by 10 gives speed range [2, 100].

Current speed of Skipper is at this moment two times speed of Fairy max = 20. But I removed almost all evaluation code. So it's artificial and temporary.
I happen to have quite a few engines in my gauntlet, so I ran a search from start position on all of them. All single threaded.

Arasan: 878 knps
Betsabe II: 1339 knps
Cheng: 1307 knps
Crafty: 2434 knps
Diablo: 966 knps
EXchess: 749 knps
Fairymax: 677 knps
GNU Chess 6: 1221 knps
GreKo: 1567 knps
Phalanx: 752 knps
RobboLito: 1551 knps
Scorpio: 1071 knps
Senpai: 717 knps
Sloppy: 1407 knps
Smash: 587 knps
Stockfish: 1110 knps
Sungorus: 3074 knps
Texel: 1016 knps
ZCT: 752 knsp

And of course my own engines:
Brainless: 1291 knps
Giraffe: 126 knps

I didn't realize my old engine is so fast. Maybe that's why it's already beaten by Giraffe by almost 100 Elo :).
It's easier if divided by 100 knps and figures are rounded. So we get:

Arasan: 9
Betsabe II: 13
Cheng: 13
Crafty: 24
Diablo: 10
EXchess: 7
Fairymax: 7
GNU Chess 6: 12
GreKo: 16
Phalanx: 8
RobboLito: 16
Scorpio: 11
Senpai: 7
Sloppy: 14
Smash: 6
Stockfish: 11
Sungorus: 31
Texel: 10
ZCT: 8
Brainless: 13
Giraffe: 1

Might be also interesting to know if they use pure bitboards or not. Perhaps if you use a hybrid design you may never reach top speed. By the way what was it twice the speed = 70 ELO ?
Henk
Posts: 7216
Joined: Mon May 27, 2013 10:31 am

Re: Maximum speed

Post by Henk »

Henk wrote:
matthewlai wrote:
Henk wrote:Ok if Crafty is 5 times faster than Stockfish and looks like Stockfish is 1.5 or 2 times faster than Fairy max on my computer then Crafty is 7.5 to 10 times faster than Fairy max.

So maximum is 10 and minimum 0.2 multiplied by 10 gives speed range [2, 100].

Current speed of Skipper is at this moment two times speed of Fairy max = 20. But I removed almost all evaluation code. So it's artificial and temporary.
I happen to have quite a few engines in my gauntlet, so I ran a search from start position on all of them. All single threaded.

Arasan: 878 knps
Betsabe II: 1339 knps
Cheng: 1307 knps
Crafty: 2434 knps
Diablo: 966 knps
EXchess: 749 knps
Fairymax: 677 knps
GNU Chess 6: 1221 knps
GreKo: 1567 knps
Phalanx: 752 knps
RobboLito: 1551 knps
Scorpio: 1071 knps
Senpai: 717 knps
Sloppy: 1407 knps
Smash: 587 knps
Stockfish: 1110 knps
Sungorus: 3074 knps
Texel: 1016 knps
ZCT: 752 knsp

And of course my own engines:
Brainless: 1291 knps
Giraffe: 126 knps

I didn't realize my old engine is so fast. Maybe that's why it's already beaten by Giraffe by almost 100 Elo :).
It's easier if divided by 100 knps and figures are rounded. So we get:

Arasan: 9
Betsabe II: 13
Cheng: 13
Crafty: 24
Diablo: 10
EXchess: 7
Fairymax: 7
GNU Chess 6: 12
GreKo: 16
Phalanx: 8
RobboLito: 16
Scorpio: 11
Senpai: 7
Sloppy: 14
Smash: 6
Stockfish: 11
Sungorus: 31
Texel: 10
ZCT: 8
Brainless: 13
Giraffe: 1

Might be also interesting to know if they use pure bitboards or not. Perhaps if you use a hybrid design you may never reach top speed. By the way what was it twice the speed = 70 ELO ?
And divide by 7 to get the stars:

Arasan: 1
Betsabe II: 2
Cheng: 2
Crafty: 3
Diablo: 1
EXchess: 1
Fairymax: 1
GNU Chess 6: 2
GreKo: 2
Phalanx: 1
RobboLito: 2
Scorpio: 2
Senpai: 1
Sloppy: 2
Smash: 1
Stockfish: 2
Sungorus: 4
Texel: 1
ZCT: 1
Brainless: 2
Giraffe: 0
User avatar
WinPooh
Posts: 267
Joined: Fri Mar 17, 2006 8:01 am
Location: Russia
Full name: Vladimir Medvedev

Re: Maximum speed

Post by WinPooh »

matthewlai wrote:I happen to have quite a few engines in my gauntlet, so I ran a search from start position on all of them. All single threaded.
This approach can be a little bit misleading if different engines count nodes in different ways.
User avatar
stegemma
Posts: 859
Joined: Mon Aug 10, 2009 10:05 pm
Location: Italy
Full name: Stefano Gemma

Re: Maximum speed

Post by stegemma »

What CPU?
Author of Drago, Raffaela, Freccia, Satana, Sabrina.
http://www.linformatica.com
matthewlai
Posts: 793
Joined: Sun Aug 03, 2014 4:48 am
Location: London, UK

Re: Maximum speed

Post by matthewlai »

Henk wrote:Might be also interesting to know if they use pure bitboards or not. Perhaps if you use a hybrid design you may never reach top speed. By the way what was it twice the speed = 70 ELO ?
Most of them are hybrid designs I think. At least both Brainless and Giraffe are.

They both use bitboards for all move generation, and arrays only for parts of eval. Eval terms use whatever representation is faster. Both representations are updated incrementally by make/unmake. I believe this is how all top engines do it.

I believe it's about 70 Elo on the low end, and close to 50 Elo on the higher end.

The difference between 200 knps and 100 knps is bigger than the difference between 2000 knps and 1000 knps.
Disclosure: I work for DeepMind on the AlphaZero project, but everything I say here is personal opinion and does not reflect the views of DeepMind / Alphabet.