Crafty 25.1 Release

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

Moderators: hgm, Rebel, chrisw

User avatar
MikeB
Posts: 4889
Joined: Thu Mar 09, 2006 6:34 am
Location: Pen Argyl, Pennsylvania

Crafty 25.1 Release

Post by MikeB »

Bob Hyatt and team - Tracy Reigle, Peter Skinner and yours truly, are please to announce the release of Crafty-v25.1 The big news in 25.1 is the removal of the Nalimov DTM EGTB code and the addition to SYZYGY WDL/DTC tables instead (courtesy of Ronald de Man, and for Crafty , aided by the coding contributions of Basil Falcinelli ). J. Wesley Cleveland also contributed with his suggestion to modify the hash probe - see more details below. Our own tests indicate perhaps a 50 ELO gain, your mileage may vary.

Note: Due to the changes , please use the makefile included or modify the current makefile to suit your needs, but an old makefile will not work.

Main Site: http://craftychess.com
Direct link to source: http://craftychess.com/downloads/source/crafty-25.1.zip
Github: https://github.com/MichaelB7/Crafty

Code: Select all

*******************************************************************************
 *                                                                             *
 *  Crafty, copyright 1996-2016 by Robert M. Hyatt, Ph.D.                      *
 *                                                                             *
 *  Crafty is a team project consisting of the following members.  These are   *
 *  the people involved in the continuing development of this program, there   *
 *  are no particular members responsible for any specific aspect of Crafty,   *
 *  although R. Hyatt wrote 99%+ of the existing code, excepting the Magic .   *
 *  move stuff by Pradu Kaanan, syzygy code written by Ronald de Man, and the  *
 *  epd stuff written by S. Edwards.                                           *
 *                                                                             *
 *     Robert Hyatt, Pelham, AL.                                               *
 *     Mike Byrne, Pen Argyl, PA.                                              *
 *     Tracy Riegle, Hershey, PA.                                              *
 *     Peter Skinner, Edmonton, AB  Canada.                                    *
 *                                                                             *
 *  All rights reserved.  No part of this program may be reproduced in any     *
 *  form or by any means, for other than your personal use, without the        *
 *  express written permission of the authors.  This program may not be used   *
 *  in whole, nor in part, to enter any computer chess competition without     *
 *  written permission from the authors.  Such permission will include the     *
 *  requirement that the program be entered under the name "Crafty" so that    *
 *  the program's ancestry will be known.                                      *
 *                                                                             *
 *  Copies of the source must contain the original copyright notice intact.    *
 *                                                                             *
 *  Any changes made to this software must also be made public to comply with  *
 *  the original intent of this software distribution project.  These          *
 *  restrictions apply whether the distribution is being done for free or as   *
 *  part or all of a commercial product.  The authors retain sole ownership    *
 *  and copyright on this program except for 'personal use' explained below.   *
 *                                                                             *
 *  Personal use includes any use you make of the program yourself, either by  *
 *  playing games with it yourself, or allowing others to play it on your      *
 *  machine,  and requires that if others use the program, it must be clearly  *
 *  identified as "Crafty" to anyone playing it (on a chess server as one      *
 *  example).  Personal use does not allow anyone to enter this into a chess   *
 *  tournament where other program authors are invited to participate.  IE you *
 *  can do your own local tournament, with Crafty + other programs, since this *
 *  is for your personal enjoyment.  But you may not enter Crafty into an      *
 *  event where it will be in competition with other programs/programmers      *
 *  without permission as stated previously.                                   *
 *                                                                             *
 *  Crafty is the "son" (direct descendent) of Cray Blitz.  it is designed     *
 *  totally around the bit-board data structure for reasons of speed of ex-    *
 *  ecution, ease of adding new knowledge, and a *significantly* cleaner       *
 *  overall design.  it is written totally in ANSI C with some few UNIX system *
 *  calls required for I/O, etc.                                               *
 *                                                                             *
 ******************************************************************************* 
 *     25.1   Cleanup of NextMove() plus a minor ordering bug fix that would   *
 *           skip counter moves at ply = 2. Added NUMA code to force the hash  *
 *           tables to be spread across the numa nodes as equally as possible  *
 *           rather than all of the data sitting on just onenode.  This makes  *
 *           one specific user policy important.  BEFORE you set the hash size *
 *           for any of the four hash tables, you should ALWAYS set the max    *
 *           threads limit first, so that the NUMA trick works correctly.  Of  *
 *           course, if you do not use -DAFFINITY this is all irrelevant.  The *
 *           -DNUMA option has been removed.  I no longer use any libnuma      *
 *           routines.  A new "smpnuma" command is now used to enable/disable  *
 *           NUMA mode (which really only affects how the hash tables are      *
 *           cleared, all the other NUMA code works just fine no matter        *
 *           whether this is enabled or disabled.  Fixed a bug with the xboard *
 *           memory command that could overflow and cause preposterous malloc  *
 *           requests.  Change to LMP that now enables it in the last 16 plies *
 *           of search depth, although only the last 8-10 plies really have    *
 *           a chance for this to kick in unless there are more than 100 legal *
 *           moves to try.  Minor change to hash path in HashStore() that made *
 *           it hard to store entries on the first search after the table was  *
 *           cleared.  Removed Nalimov DTM EGTB code and converted to SYZYGY   *
 *           WDL/DTC tables instead (courtesy of Ronald de Man).  This         *
 *           correctly handles the 50 move rule  where the Nalimov tables      *
 *           would walk into forced draws (by 50 move rule) while convincing   *
 *           the search it was winning.  Swindle mode now also activates when  *
 *           in a drawn ending with a material plus for the side on move, as   *
 *           well as when the best root move is a "cursed win" (forced win,    *
 *           but drawn because of the 50 move rule).  This gives the non-EGTB  *
 *           opponent the opportunity to turn that 50 move draw into a loss.   *
 *           There are some changes in the scoring output as a result of this. *
 *           The usual +/-MatNN scores show up for real mates, but when in     *
 *           EGTB endings, the scores are of the form Win or Lose with the     *
 *           appropriate sign correction (-Win means black is winning, +Lose   *
 *           means white is losing.)  Basil Falcinelli contributed to the new  *
 *           syzygy code used in this version.  Minor change to skill code to  *
 *           avoid altering search parameters since the speed reduction and    *
 *           randomness in the eval is more than enough to reduce the Elo.     *
 *           Minor change to HashProbe() where I now only update the AGE of an *
 *           entry that matches the current hash signature if the entry        *
 *           actually causes a search termination, rather than updating it     *
 *           each time there is a signature match.  If the search is not       *
 *           terminated on the spot, we have to store an entry when the search *
 *           ends which will also overwrite the current exact match and update *
 *           the age as well.  Suggested by J. Wesley Cleveland on CCC.        *
 *                                                                             *
 *******************************************************************************
[/i]
User avatar
AdminX
Posts: 6339
Joined: Mon Mar 13, 2006 2:34 pm
Location: Acworth, GA

Re: Crafty 25.1 Release

Post by AdminX »

Hi Mike,

Small Typo on Github.

Image
"Good decisions come from experience, and experience comes from bad decisions."
__________________________________________________________________
Ted Summers
Gregory Owett
Posts: 249
Joined: Fri Mar 10, 2006 10:26 am
Location: France

Re: Crafty 25.1 Release

Post by Gregory Owett »

Hi,
Are we could have a .exe? Or it would be too easy? :roll:
Dann Corbit
Posts: 12537
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Crafty 25.1 Release

Post by Dann Corbit »

I'll post one in a little while.
I made one yesterday, but it was not from the official released sources.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
jpqy
Posts: 550
Joined: Thu Apr 24, 2008 9:31 am
Location: Belgium

Re: Crafty 25.1 Release

Post by jpqy »

Thanks Dann..if possible when make a windows compile to include a bmi2 compile!

JP.
Dann Corbit
Posts: 12537
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Crafty 25.1 Release

Post by Dann Corbit »

Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
Dann Corbit
Posts: 12537
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Crafty 25.1 Release

Post by Dann Corbit »

This machine is not BMI capable.
I won't release anything I can't test.

I built with these flags:


windows-gcc:
@rm -rf *.o
@rm -rf log.*
@rm -rf game.*
$(MAKE) -j target=WINDOWS \
CC=gcc CXX=gcc \
opt=' -DCPUS=24 -DSYZYGY -DEPD ' \
CFLAGS='-Wall -pipe -Wno-array-bounds -Ofast --param l1-cache-size=64 --param l2-cache-size=256 -l3-cache-size=12228 -march=native -O3 -msse4.2 -mpopcnt -Os -Ofast -O3 -fprofile-use -fprofile-correction \
-pthread' \
CXFLAGS='-Wall -pipe -Wno-array-bounds --param l1-cache-size=64 --param l2-cache-size=256 -l3-cache-size=12228 -march=native -msse4.2 -mpopcnt -Os -Ofast -O3 -fprofile-use -fprofile-correction \
-pthread' \
LDFLAGS='$(LDFLAGS) -fprofile-use -pthread -lstdc++' \
crafty-make
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
Dann Corbit
Posts: 12537
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Crafty 25.1 Release

Post by Dann Corbit »

I guess that probably Peter will produce the official Windows builds soon.
They are easy to make with Mingw anyway.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
Volker Pittlik
Posts: 619
Joined: Wed Mar 08, 2006 9:10 pm
Location: Murten / Morat, Switzerland
Full name: Volker Pittlik

Re: Crafty 25.1 Release

Post by Volker Pittlik »

Thank you Dann!

I'm to lazy to fiddle around with the compiler options so I'm glad I can use your executable.

Volker
leslies
Posts: 22
Joined: Fri Jan 11, 2013 5:04 pm

Re: Crafty 25.1 Release

Post by leslies »

like wise for me also.thanks dann