Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Crafty 1910 SE vs Ruffian2 I hate this , but

Author: Mike Byrne

Date: 18:41:52 02/04/04

Go up one level in this thread


On February 04, 2004 at 21:32:54, Peter Skinner wrote:

>On February 04, 2004 at 21:16:26, Mike Byrne wrote:
>
>
>>Different books, no pondering etc etc impact Crafty.  Skinner optimizes his
>>Crafty for his machine -- I optimized Crafty for my macnhine -- so depending
>>where your processor falls - his might be better for your machine, mine might be
>>better for some else's machine.  A lot of variables, not very many games,
>>everybody's's else mileage may vary , yadda, yadda - the main thing to remember
>>is to try to have fun!
>
>Well actually the one I release is optimized for the PII/III/IV lines of
>processors. I build myself a completely different one optimized for my system
>(Changes within Crafty's variables, and settings) It is possible that you are
>just using different options to compile. This is the makefile I use for the exe
>I distribute:
>
># Makefile version 3 for Crafty 16.15
># Crafty v16.x makefile for Windows NT Intel
># Written by Jason Deines (jdeines@mindspring.com) April 1998
># Version modified by Gregor Overney (gregor_overney@hp.com) Nov 1998
># Version modified by Peter Karrer (pkarrer@active.ch) Dec 1998
># Version modified by Gregor Overney (gregor_overney@hp.com) Sep 1999
>#
># This makefile is designed to be used from the command line with
># Microsoft's nmake.  Either rename this # file to "Makefile" or name it
># explicitly when invoking nmake:
>#     nmake -f Makefile.nt
>#
># The makefile is set up for Microsoft Visual C++ 6.0 Intel.
>#
># The default target produces a file called "wcrafty.exe".  This compiles
># all the .c files separately, producing individual .obj files, which are
># then linked to create the executable.  You can also specify a target
># called "wcraftyx".  This creates a file called "wcraftyx.exe" by combining
># all of the .c files into two large .c files before the compile step.
># The large files generally provides more optimization possibilities for
># the compiler, and usually results in slightly faster code.  To try it,
># type "nmake wcraftyx" instead of just "nmake".  The .c files x1.c and x2.c
># will be created if needed and built automatically.
>
>
># Build target is defined here.
>TARGET   = NT_i386
>
># Command-line compiler and linker invocation commands:
>CC       = cl
>LD       = link
>
># Base compiler flags needed for build:
>BFLAGS = /D_CONSOLE /DWIN32
>
># Compiler flags:
># /O2    optimize for speed
># /Oa    assume no aliasing (no good for VC 6 without SP3)
># /Gr    fastcall calling convention
># /G5    target Pentium (but will run on all x86 architectures)
># /G6    target Pentium Pro (but will run on all x86 architectures)
># /Ob2   inline function calls if suitable
>#
># For debugging use these flags instead:
># CFLAGS  = /Od /Zi
># LDFLAGS  = /DEBUG /DEBUGTYPE:CV
>#
>
>#CFLAGS   = /O2 /G6 /Gr /Ob2
>#CFLAGS   = /Od /Zi
>CFLAGS   = /Ox /G6 /Gr /Ob2 /DEPD /DTOXIC /DFUTILITY

you got me -- what is /DTOXIC
also,are you  using Intel 6, 7, or 9?

can you send me your latest exe?

Thanks,

Mike

>
># Linker flags, normally not needed except for debug builds:
>LDFLAGS  =
>#LDFLAGS  = /DEBUG /DEBUGTYPE:CV
>
># See the default crafty makefile for a description of the options below.
># With VC++, defines like COMPACT_ATTACKS, etc, makes the code slower, so
># those # options are disabled by default.  FAST is normally not defined
># so that hash statistics are reported -- for the fastest possible
># executable, define FAST below.  for 6 piece EGTB support, add /DEGTB6.
>
>COPTS    = /DFAST /DEGTB6
>
># For an SMP build use/add the following build options.
># NT_INTEREX is defined if you want to use the built-in InterlockedExchange()
># function for thread resource locking, instead of the inline asm routine.
># (This shouldn't be needed, at least on Intel.)
># /MT is a compiler flag needed for multithreaded builds.
>
>#COPTS    = /MT /DSMP /DCPUS=4 /DNT_INTEREX
>#COPTS    = /MT /DSMP /DCPUS=2
>
># If you are using any external assembler routines, put the name of the
># object code file(s) here.  Any such files will need to be generated
># separately -- there is no assembler step defined in the makefile.
>
>asmobjs  =
>
># To enable assembly optimizations in vcinline.h, use /DVC_INLINE_ASM.
>
>AOPTS    = /DVC_INLINE_ASM /DUSE_ASSEMBLY
>
>ALLOPTS  = $(COPTS) $(AOPTS) /D$(TARGET)
>
>cobjs    = analyze.obj annotate.obj attacks.obj bench.obj book.obj boolean.obj \
>           data.obj drawn.obj edit.obj epd.obj                                 \
>           epdglue.obj evaluate.obj evtest.obj hash.obj history.obj init.obj   \
>           input.obj interupt.obj iterate.obj learn.obj make.obj main.obj      \
>           movgen.obj next.obj nexte.obj nextr.obj option.obj output.obj       \
>           phase.obj ponder.obj preeval.obj quiesce.obj repeat.obj resign.obj  \
>           root.obj search.obj singular.obj searchmp.obj searchr.obj           \
>           setboard.obj swap.obj test.obj thread.obj time.obj unmake.obj       \
>           utility.obj valid.obj testepd.obj validate.obj probe.obj
>
>xcobjs   = x1.obj
>
>allobjs  = $(cobjs) $(asmobjs) egtb.obj
>
>xallobjs = $(xcobjs) $(asmobjs) egtb.obj
>
>includes = chess.h data.h epd.h epddefs.h epdglue.h evaluate.h vcinline.h
>
>wcrafty  : $(allobjs)
>           $(LD) $(LDFLAGS) $(allobjs) /out:wcrafty.exe
>
>wcraftyx : $(xallobjs)
>           $(LD) $(LDFLAGS) $(xallobjs) /out:wcraftyx.exe
>
>$(cobjs) : $(includes)
>
>.c.obj   :
>           $(CC) $(BFLAGS) $(CFLAGS) $(ALLOPTS) /c $*.c
>
>.cpp.obj :
>           $(CC) $(BFLAGS) $(CFLAGS) $(ALLOPTS) /Zm500 /c $*.cpp
>
>$(xcobjs): $(includes)
>
>x1.c:      searchr.c search.c repeat.c next.c nextr.c history.c nexte.c \
>           quiesce.c evaluate.c movgen.c make.c unmake.c attacks.c swap.c \
>           boolean.c utility.c valid.c searchmp.c thread.c book.c data.c \
>           drawn.c edit.c epd.c epdglue.c init.c input.c interupt.c iterate.c \
>           main.c option.c output.c phase.c ponder.c preeval.c resign.c root.c \
>           learn.c setboard.c test.c time.c validate.c annotate.c analyze.c \
>           evtest.c bench.c hash.c probe.c
>           copy /b book.c+data.c+drawn.c+edit.c+epd.c+epdglue.c+\
>           init.c+input.c+interupt.c+iterate.c+main.c+option.c+output.c+\
>           phase.c+ponder.c+preeval.c+resign.c+root.c+learn.c+setboard.c+\
>           test.c+time.c+validate.c+annotate.c+analyze.c+evtest.c+bench.c+\
>           hash.c+probe.c+boolean.c+swap.c+attacks.c+evaluate.c+make.c+\
>           unmake.c+movgen.c+quiesce.c+search.c+next.c+searchr.c+repeat.c+\
>           nextr.c+history.c+nexte.c+utility.c+valid.c+searchmp.c+\
>           thread.c x1.c
>clean:
>	   del /q $(cobjs)
>	   del /q egtb.obj
>	   del /q $(xcobjs)
>	   del /q log.*
>	   del /q game.**
>	   del /q *.bak
>	   del /q x1.c
>
>I copy all the c nodes into one main x1.c then compile and it produces a faster
>exe in my testing. The default is 2 c nodes, then a compile. Maybe your doing it
>differently than I am.
>
>Peter



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.