Merge branch 'eval_cache'
authorMarco Costalba <mcostalba@gmail.com>
Tue, 4 Dec 2012 06:57:46 +0000 (07:57 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Tue, 4 Dec 2012 07:05:15 +0000 (08:05 +0100)
Use an eval cache instead of TT to store node
position evaluations.

It is already an improvment and, because it frees
two TT entry slots, paves the way to extend TT to
store both upper and lower bounds.

After 4855 games, single thread, 15"+0.05
Mod vs Orig 1165 -920 - 2770 ELO +18

bench: 5149248

1  2 
src/thread.h

diff --combined src/thread.h
index 4b0a5026d9bc2396617e0c1bcce09ef901555837,488feeb50053541b45c86bb02db7d151d22934a3..6c3c18affdb0a134b08f4f23cbb87a5a87a40dd6
  
  #include <vector>
  
+ #include "evaluate.h"
  #include "material.h"
  #include "movepick.h"
  #include "pawns.h"
  #include "position.h"
  #include "search.h"
  
 -const int MAX_THREADS = 32;
 +const int MAX_THREADS = 64; // Because SplitPoint::slavesMask is a uint64_t
  const int MAX_SPLITPOINTS_PER_THREAD = 8;
  
  struct Mutex {
@@@ -108,6 -109,7 +109,7 @@@ public
    void wait_for_stop_or_ponderhit();
  
    SplitPoint splitPoints[MAX_SPLITPOINTS_PER_THREAD];
+   Eval::Table evalTable;
    MaterialTable materialTable;
    PawnTable pawnTable;
    size_t idx;