Crafty 23.2 released.

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

Moderators: hgm, Rebel, chrisw

User avatar
Peter Skinner
Posts: 1763
Joined: Sun Feb 26, 2006 1:49 pm
Location: Edmonton, Alberta, Canada
Full name: Peter Skinner

Crafty 23.2 released.

Post by Peter Skinner »

Hello everyone,

Crafty 23.2 has been released.

Here are the changes since 23.1:

Code: Select all

*    23.2   Two changes related to draw handling.  First, the 50-move draw    *
 *           rule is tricky.  It is possible that the move on the 100th ply    *
 *           after the last non-reversible move might not be a draw, even if   *
 *           it is reversible itself, because it might deliver mate.  In this  *
 *           specific case, the mate will end the game as a win.  This has     *
 *           been fixed in Crafty to match this specific rule exception.  Also *
 *           draws by "insufficient material" have been changed to match the   *
 *           FIDE rules which say that mate can't be possible, even with worst *
 *           possible play by the opponent.  Crafty would claim a draw in a    *
 *           simple KN vs KN position, which is incorrect.  Even though        *
 *           neither side can force mate, mate is possible and so the position *
 *           is not a draw by FIDE rules.  Mobility scoring changed for        *
 *           sliding pieces.  Now the mobility scores are pre-computed and     *
 *           stored in a table that is addressed by the "magic number move     *
 *           generation idea".  This completely eliminates the computational   *
 *           cost of the mobility scoring since all of the scores are pre-     *
 *           computed before the game starts.  This was a modest speed         *
 *           improvement but really made the code simpler and smaller.  Change *
 *           to lazy eval cutoff code to improve accuracy.  BookUP() had a     *
 *           minor bug that caused it to not report how many moves were not    *
 *           included because of the "maxply" limit.  This has been fixed also *
 *           so that it now reports the correct value.  New xboard "cores" and *
 *           "memory" command support added.  Code to malloc() both was also   *
 *           rewritten completely to clean it up and simplify things.          *
 *                                                                             *
 *******************************************************************************
As always, I have built Win32/64 versions for those that can not compile for themselves.

http://www.webkikr.com

Peter
I was kicked out of Chapters because I moved all the Bibles to the fiction section.
Marc MP

Re: Crafty 23.2 released.

Post by Marc MP »

Great news!

Crafty is a must have in computer chess, no matter how "small" the improvements might be.
User avatar
Graham Banks
Posts: 41415
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: Crafty 23.2 released.

Post by Graham Banks »

Thanks to the Crafty team. :)
gbanksnz at gmail.com
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Crafty 23.2 released.

Post by bob »

Peter Skinner wrote:Hello everyone,

Crafty 23.2 has been released.

Here are the changes since 23.1:

Code: Select all

*    23.2   Two changes related to draw handling.  First, the 50-move draw    *
 *           rule is tricky.  It is possible that the move on the 100th ply    *
 *           after the last non-reversible move might not be a draw, even if   *
 *           it is reversible itself, because it might deliver mate.  In this  *
 *           specific case, the mate will end the game as a win.  This has     *
 *           been fixed in Crafty to match this specific rule exception.  Also *
 *           draws by "insufficient material" have been changed to match the   *
 *           FIDE rules which say that mate can't be possible, even with worst *
 *           possible play by the opponent.  Crafty would claim a draw in a    *
 *           simple KN vs KN position, which is incorrect.  Even though        *
 *           neither side can force mate, mate is possible and so the position *
 *           is not a draw by FIDE rules.  Mobility scoring changed for        *
 *           sliding pieces.  Now the mobility scores are pre-computed and     *
 *           stored in a table that is addressed by the "magic number move     *
 *           generation idea".  This completely eliminates the computational   *
 *           cost of the mobility scoring since all of the scores are pre-     *
 *           computed before the game starts.  This was a modest speed         *
 *           improvement but really made the code simpler and smaller.  Change *
 *           to lazy eval cutoff code to improve accuracy.  BookUP() had a     *
 *           minor bug that caused it to not report how many moves were not    *
 *           included because of the "maxply" limit.  This has been fixed also *
 *           so that it now reports the correct value.  New xboard "cores" and *
 *           "memory" command support added.  Code to malloc() both was also   *
 *           rewritten completely to clean it up and simplify things.          *
 *                                                                             *
 *******************************************************************************
As always, I have built Win32/64 versions for those that can not compile for themselves.

http://www.webkikr.com

Peter
Let me add a couple of notes...

If you use a newer xboard/winboard, crafty supports the new "cores" and "memory" GUI->engine commands. But with some exceptions.

If you want to use the winboard/xboard menu to set memory (which is combined hash + pawn hash) or number of threads, then you must _not_ use the mt=n command, nor set the hash=n or phash=n options in your .craftyrc/crafty.rc configuration file. If you specify hash sizes or max threads there, crafty will not use the winboard cores/memory commands. So make certain that if you want to use the new winboard options, you remove those lines from the crafty config file.

If you want to use the memory option from winboard/xboard, you specify the size in megabytes. You need to give some thought to this number. The regular hash table must be a power of 2. Ditto for the pawn hash. A good setting would be 288, which would be interpreted as follows:

1. Crafty finds the largest power of two value in that number (which is 256m above) and uses that for the primary hash.

2. It then subtracts 256m from the above value, and then finds the largest power of two remaining and uses that as the pawn hash size. Any extra memory is unused.

Not very elegant, but I could not think of a better solution. Probably is easier to use the .craftyrc file to set those options, which will make the xboard settings irrelevant.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Crafty 23.2 released.

Post by bob »

Marc MP wrote:Great news!

Crafty is a must have in computer chess, no matter how "small" the improvements might be.
Most recent cluster testing results:

Crafty-23.2 2661 3 3 40000 60% 2583 23%
Crafty-23.1 2638 3 3 40000 57% 2583 23%

So just over +20. But the draw offer/claim fixes solve many past problems as well...
yanquis1972
Posts: 1766
Joined: Wed Jun 03, 2009 12:14 am

Re: Crafty 23.2 released.

Post by yanquis1972 »

20 elo is actually pretty impressive, imo. bob, do you have a guesstimate as to what crafty's human elo would be? i know come CC fans don't even think in such terms but i'd think as an author it would be one of the most interesting aspects to me. i guess computer chess has in some ways (certainly in strength) surpassed human chess though.
User avatar
Werner
Posts: 2871
Joined: Wed Mar 08, 2006 10:09 pm
Location: Germany
Full name: Werner Schüle

Re: Crafty 23.2 released.

Post by Werner »

Many thanks to the Crafty team!

I have one question to Peter:
Your crafty.rc download looks like that:
mt=2
egtb
hash=384M
hashp=128M
cache=32M
ponder=off
smpnice=1
log=off
exit

Why do you use still smpnice=1? Is it still necessary?

best wishes
Werner
User avatar
Peter Skinner
Posts: 1763
Joined: Sun Feb 26, 2006 1:49 pm
Location: Edmonton, Alberta, Canada
Full name: Peter Skinner

Re: Crafty 23.2 released.

Post by Peter Skinner »

bob wrote: Let me add a couple of notes...

If you use a newer xboard/winboard, crafty supports the new "cores" and "memory" GUI->engine commands. But with some exceptions.

If you want to use the winboard/xboard menu to set memory (which is combined hash + pawn hash) or number of threads, then you must _not_ use the mt=n command, nor set the hash=n or phash=n options in your .craftyrc/crafty.rc configuration file. If you specify hash sizes or max threads there, crafty will not use the winboard cores/memory commands. So make certain that if you want to use the new winboard options, you remove those lines from the crafty config file.

If you want to use the memory option from winboard/xboard, you specify the size in megabytes. You need to give some thought to this number. The regular hash table must be a power of 2. Ditto for the pawn hash. A good setting would be 288, which would be interpreted as follows:

1. Crafty finds the largest power of two value in that number (which is 256m above) and uses that for the primary hash.

2. It then subtracts 256m from the above value, and then finds the largest power of two remaining and uses that as the pawn hash size. Any extra memory is unused.

Not very elegant, but I could not think of a better solution. Probably is easier to use the .craftyrc file to set those options, which will make the xboard settings irrelevant.
I actually just realized that you _must_ set the engine parameters in Winboard no matter what. The Crafty.rc file isn't being used at all. If you try setting the Winboard parameters to nothing, it of course defaults to the last used.

I have set Winboard to use max 1024 for HASH, but have 2048 in my rc file. Winboard is controlling the hash at a max of 1024.

Either way, Winboard is controlling the settings, not Crafty at all.

I am not sure I like this. Those are supposed to be polyglot options, not options for _all_ engines, including Winboard engines.
I was kicked out of Chapters because I moved all the Bibles to the fiction section.
User avatar
Kirill Kryukov
Posts: 492
Joined: Sun Mar 19, 2006 4:12 am

Re: Crafty 23.2 released.

Post by Kirill Kryukov »

Peter Skinner wrote:
bob wrote: Let me add a couple of notes...

If you use a newer xboard/winboard, crafty supports the new "cores" and "memory" GUI->engine commands. But with some exceptions.

If you want to use the winboard/xboard menu to set memory (which is combined hash + pawn hash) or number of threads, then you must _not_ use the mt=n command, nor set the hash=n or phash=n options in your .craftyrc/crafty.rc configuration file. If you specify hash sizes or max threads there, crafty will not use the winboard cores/memory commands. So make certain that if you want to use the new winboard options, you remove those lines from the crafty config file.

If you want to use the memory option from winboard/xboard, you specify the size in megabytes. You need to give some thought to this number. The regular hash table must be a power of 2. Ditto for the pawn hash. A good setting would be 288, which would be interpreted as follows:

1. Crafty finds the largest power of two value in that number (which is 256m above) and uses that for the primary hash.

2. It then subtracts 256m from the above value, and then finds the largest power of two remaining and uses that as the pawn hash size. Any extra memory is unused.

Not very elegant, but I could not think of a better solution. Probably is easier to use the .craftyrc file to set those options, which will make the xboard settings irrelevant.
I actually just realized that you _must_ set the engine parameters in Winboard no matter what. The Crafty.rc file isn't being used at all. If you try setting the Winboard parameters to nothing, it of course defaults to the last used.

I have set Winboard to use max 1024 for HASH, but have 2048 in my rc file. Winboard is controlling the hash at a max of 1024.

Either way, Winboard is controlling the settings, not Crafty at all.

I am not sure I like this. Those are supposed to be polyglot options, not options for _all_ engines, including Winboard engines.
Is it possible to run this version throuh WB2UCI adapter? That's the only way I can test it, but how can it run if it does not use the crafty.rc file?
User avatar
Dr.Wael Deeb
Posts: 9773
Joined: Wed Mar 08, 2006 8:44 pm
Location: Amman,Jordan

Re: Crafty 23.2 released.

Post by Dr.Wael Deeb »

Thanks for the new release but I prefer to wait for JA compiles....
Dr.D
_No one can hit as hard as life.But it ain’t about how hard you can hit.It’s about how hard you can get hit and keep moving forward.How much you can take and keep moving forward….