Carnivor, another unheard of chess engine!

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

Michael Sherwin
Posts: 3196
Joined: Fri May 26, 2006 3:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Carnivor, another unheard of chess engine!

Post by Michael Sherwin »

Christopher Conkie wrote:
Michael Sherwin wrote:
Hey Chris,

You have a good memory! I did not think that anyone would remember, Carnivor. Carnivor can play chess and uses my special precomputed move matrix that is similar to GNU Chess 4 and below, but faster. Halfwit is bitboard and perft's at twice the rate of Crafty, but can not play.

Carnivor has a node rate of about 10,000,000 nodes per second while searching the opening position on an athlon 3400+. The operable phrase is, 'Carnivor does not have' as in Carnivor does not have an evaluation function, etc. Still it can beat TSCP on a good day!

Mike
I did a little comparison for you.

Halfwit

White1> perft 6
Nodes = 125039194, msec. = 17439, nps = 7170089.34

Carnivor

White1> bench 6
nodes=125049325 time=10458
nodes/sec = 11957288

Conundrum

White 1 > perft 6
Nodes = 125049325, msec. = 10505, nps = 11903790.92

8-)

Christopher
Thanks!

Your Numbers are a little off compared to mine. What processor and what is the clock rate?

For an Athlon 3400+ the numbers are about: (match running on the athlon now)

Halfwit:
perft 6 -- 9M n/s

Carnivor:
bench 6 -- 17M n/s

Conundrum:
perft 6 -- 16M n/s

And don't forget Godzilla:
perft 6 -- 20M n/s

On an athlon 1500+ 6 deep

Halfwit: 4757778.93

Carnivor: 6719830

Conundrum: 7939639.20

Godzilla: 11069250

On an athlon 1500+ 5 deep

Halfwit: 4587128.73

Carnivor: 7075920

Conundrum: 7936952.80

Godzilla: 10847732
If you are on a sidewalk and the covid goes beep beep
Just step aside or you might have a bit of heat
Covid covid runs through the town all day
Can the people ever change their ways
Sherwin the covid's after you
Sherwin if it catches you you're through
Christopher Conkie
Posts: 6074
Joined: Sat Apr 01, 2006 9:34 pm
Location: Scotland

Re: Carnivor, another unheard of chess engine!

Post by Christopher Conkie »

Here is 7 deep for all 4 of them.

Microsoft Windows Vista Ultimate x64
AMD Turion 64 X2 TL-56, 1800 Mhz, Dual Core

Halfwit

White1> perft 7
Nodes = 3346860669, msec. = 468787, nps = 7139405.55

Carnivor

White1> bench 7
nodes=-947237441 time=257784
nodes/sec = 12986568

Conundrum

White 1 > perft 7
Nodes = 3347729704, msec. = 273786, nps = 12227541.12

Godzilla

White[1] bench 7
nodes=3347729855 time=210030
nodes/sec = 15939292
Michael Sherwin
Posts: 3196
Joined: Fri May 26, 2006 3:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Carnivor, another unheard of chess engine!

Post by Michael Sherwin »

:D

But, I guess it should be added that no tricks have been used to enhance the node rate, i.e. alll moves made and unmade and no hash tables to store and retrieve node counts.

It would be easy to add the first trick, just to see the difference!

Any takers that have the time to modify the code?

Anyone want to add hash tables so the second trick can be tried?

I estimated once that with both tricks, Godzilla's node rate would register at over 5 times greater! :D Just a guess on my part though. :oops:
If you are on a sidewalk and the covid goes beep beep
Just step aside or you might have a bit of heat
Covid covid runs through the town all day
Can the people ever change their ways
Sherwin the covid's after you
Sherwin if it catches you you're through
User avatar
hgm
Posts: 28386
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Carnivor, another unheard of chess engine!

Post by hgm »

Still the numbers aren't extremely fast, given that this is a special move generation method with pre-calculated tables. For a carefully written plain 16x12 move generator, without any perft tricks, I get on a Pentium IV, 2.8 GHz:

Code: Select all

$ ./sPerft 7
 - - - - - - - - - - - -
 - - - - - - - - - - - -
 - - R N B Q K B N R - -
 - - P P P P P P P P - -
 - - . . . . . . . . - -
 - - . . . . . . . . - -
 - - . . . . . . . . - -
 - - . . . . . . . . - -
 - - p p p p p p p p - -
 - - r n b q k b n r - -
 - - - - - - - - - - - -
 - - - - - - - - - - - -

Slow Perft by H.G. Muller
Perft mode: No hashing, make/unmake last ply

perft(1)=        20, x=         0, ep=     0, Q=     0, OO=     0 ( 0.000 sec)

perft(2)=       400, x=         0, ep=     0, Q=     0, OO=     0 ( 0.000 sec)

perft(3)=      8902, x=        34, ep=     0, Q=     0, OO=     0 ( 0.000 sec)

perft(4)=    197281, x=      1576, ep=     0, Q=     0, OO=     0 ( 0.016 sec)

perft(5)=   4865609, x=     82719, ep=   258, Q=     0, OO=     0 ( 0.312 sec)

perft(6)= 119060324, x=   2812008, ep=  5248, Q=     0, OO=     0 ( 8.860 sec)

perft(7)=3195901860, x= 108329926, ep=319617, Q=     0, OO=883453 (199.468 sec)
This translates to 16M nps, (leaf counts only), where it also takes full statistics (albeit in 32-bit ints). On a not-so-fast machine. (I gather that 3400+ means equivalent to a 3.4GHz P4, while mine is only 2.8GHz.) Plus that the numbers here are actually correct, this is fully legal move generation. Not having to test King moves and e.p. captures for legality would speed it up further.
Tony Thomas

Re: Carnivor, another unheard of chess engine!

Post by Tony Thomas »

hgm wrote:Still the numbers aren't extremely fast, given that this is a special move generation method with pre-calculated tables. For a carefully written plain 16x12 move generator, without any perft tricks, I get on a Pentium IV, 2.8 GHz:

Code: Select all

$ ./sPerft 7
 - - - - - - - - - - - -
 - - - - - - - - - - - -
 - - R N B Q K B N R - -
 - - P P P P P P P P - -
 - - . . . . . . . . - -
 - - . . . . . . . . - -
 - - . . . . . . . . - -
 - - . . . . . . . . - -
 - - p p p p p p p p - -
 - - r n b q k b n r - -
 - - - - - - - - - - - -
 - - - - - - - - - - - -

Slow Perft by H.G. Muller
Perft mode: No hashing, make/unmake last ply

perft(1)=        20, x=         0, ep=     0, Q=     0, OO=     0 ( 0.000 sec)

perft(2)=       400, x=         0, ep=     0, Q=     0, OO=     0 ( 0.000 sec)

perft(3)=      8902, x=        34, ep=     0, Q=     0, OO=     0 ( 0.000 sec)

perft(4)=    197281, x=      1576, ep=     0, Q=     0, OO=     0 ( 0.016 sec)

perft(5)=   4865609, x=     82719, ep=   258, Q=     0, OO=     0 ( 0.312 sec)

perft(6)= 119060324, x=   2812008, ep=  5248, Q=     0, OO=     0 ( 8.860 sec)

perft(7)=3195901860, x= 108329926, ep=319617, Q=     0, OO=883453 (199.468 sec)
This translates to 16M nps, (leaf counts only), where it also takes full statistics (albeit in 32-bit ints). On a not-so-fast machine. (I gather that 3400+ means equivalent to a 3.4GHz P4, while mine is only 2.8GHz.) Plus that the numbers here are actually correct, this is fully legal move generation. Not having to test King moves and e.p. captures for legality would speed it up further.
I thought that Athlon 3400+ was a 2200MHz machine were as your machine is significantly faster.
User avatar
hgm
Posts: 28386
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Carnivor, another unheard of chess engine!

Post by hgm »

But an Athlon does not have NetBurst architecture like the Pentium 4, so each clock cycle on the Athlon is worth about 1.5 cycles on the Pentium 4. The AMD K7 can in principle do 6 instructions per clock (3 Memory, 3 ALU). NetBurst could do only 3.

This is why they call it 3400+. If they would have called it Athlon 2200MHz everyone would have bought the Penium 4 2.8GHz, although the latter is in fact a slower machine.
Michael Sherwin
Posts: 3196
Joined: Fri May 26, 2006 3:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Carnivor, another unheard of chess engine!

Post by Michael Sherwin »

I am not sure that the 3400+ which, is determined by benchmarks, extends well to chess programming. However, your numbers are also very impressive! I think that I have downloaded your special perft code, so I will take a look at it.
If you are on a sidewalk and the covid goes beep beep
Just step aside or you might have a bit of heat
Covid covid runs through the town all day
Can the people ever change their ways
Sherwin the covid's after you
Sherwin if it catches you you're through
Michael Sherwin
Posts: 3196
Joined: Fri May 26, 2006 3:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Carnivor, another unheard of chess engine!

Post by Michael Sherwin »

3400+ is 2.41 GHZ

IIRC the 3500+ is 2.1 GHZ

3700+ is 2.39 GHZ

So, we are talking wildly different machines.
If you are on a sidewalk and the covid goes beep beep
Just step aside or you might have a bit of heat
Covid covid runs through the town all day
Can the people ever change their ways
Sherwin the covid's after you
Sherwin if it catches you you're through
Michael Sherwin
Posts: 3196
Joined: Fri May 26, 2006 3:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Carnivor, another unheard of chess engine!

Post by Michael Sherwin »

Michael Sherwin wrote:Very weak, but if anyone would like a copy of it, I will send it. Just send me a PM or post your email address here. The source is also available, on request.
I have had 5 request to send Carnivor, but at the moment I am jumping around here like a rabbit running from a cyottie. But, if anyone that has requested a copy does not recieve it by Tuesday night then please let me know. Thanks.
If you are on a sidewalk and the covid goes beep beep
Just step aside or you might have a bit of heat
Covid covid runs through the town all day
Can the people ever change their ways
Sherwin the covid's after you
Sherwin if it catches you you're through
Michael Sherwin
Posts: 3196
Joined: Fri May 26, 2006 3:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Carnivor, another unheard of chess engine!

Post by Michael Sherwin »

hgm wrote:Still the numbers aren't extremely fast, given that this is a special move generation method with pre-calculated tables. For a carefully written plain 16x12 move generator, without any perft tricks, I get on a Pentium IV, 2.8 GHz:

Code: Select all

$ ./sPerft 7
 - - - - - - - - - - - -
 - - - - - - - - - - - -
 - - R N B Q K B N R - -
 - - P P P P P P P P - -
 - - . . . . . . . . - -
 - - . . . . . . . . - -
 - - . . . . . . . . - -
 - - . . . . . . . . - -
 - - p p p p p p p p - -
 - - r n b q k b n r - -
 - - - - - - - - - - - -
 - - - - - - - - - - - -

Slow Perft by H.G. Muller
Perft mode: No hashing, make/unmake last ply

perft(1)=        20, x=         0, ep=     0, Q=     0, OO=     0 ( 0.000 sec)

perft(2)=       400, x=         0, ep=     0, Q=     0, OO=     0 ( 0.000 sec)

perft(3)=      8902, x=        34, ep=     0, Q=     0, OO=     0 ( 0.000 sec)

perft(4)=    197281, x=      1576, ep=     0, Q=     0, OO=     0 ( 0.016 sec)

perft(5)=   4865609, x=     82719, ep=   258, Q=     0, OO=     0 ( 0.312 sec)

perft(6)= 119060324, x=   2812008, ep=  5248, Q=     0, OO=     0 ( 8.860 sec)

perft(7)=3195901860, x= 108329926, ep=319617, Q=     0, OO=883453 (199.468 sec)
This translates to 16M nps, (leaf counts only), where it also takes full statistics (albeit in 32-bit ints). On a not-so-fast machine. (I gather that 3400+ means equivalent to a 3.4GHz P4, while mine is only 2.8GHz.) Plus that the numbers here are actually correct, this is fully legal move generation. Not having to test King moves and e.p. captures for legality would speed it up further.
Hi HG,

I can not find your perft code that I thought that I had downloaded--unfortuneatly. However, awhile back we were on opposite sides of an argument about whether the leaf node move should be made/unmade in a perft. Yourself and Uri were adamant that the leaf move need not be made/unmade and it made no sense to do so, while I was of the opinion that it should be made/unmade. Given that debate, I find it difficult to now believe that your perft code makes/unmakes the moves leading to the leafs. Unless you say otherwise!

If your perft code does not make/unmake the leaf moves then there is no comparison. Please let me know.

Mike
If you are on a sidewalk and the covid goes beep beep
Just step aside or you might have a bit of heat
Covid covid runs through the town all day
Can the people ever change their ways
Sherwin the covid's after you
Sherwin if it catches you you're through