mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 16:53:09 +00:00
Reduce SMP contention on TT
Move TT object away from heavy write accessed NodesSincePoll and also, inside TT isolate the heavy accessed writes variable. No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
8bec65029d
commit
630fda2e2c
2 changed files with 10 additions and 4 deletions
|
@ -189,6 +189,9 @@ namespace {
|
|||
// Remaining depth: 1 ply 1.5 ply 2 ply 2.5 ply 3 ply 3.5 ply
|
||||
const Value RazorApprMargins[6] = { Value(0x520), Value(0x300), Value(0x300), Value(0x300), Value(0x300), Value(0x300) };
|
||||
|
||||
// The main transposition table
|
||||
TranspositionTable TT;
|
||||
|
||||
|
||||
/// Variables initialized by UCI options
|
||||
|
||||
|
@ -268,9 +271,6 @@ namespace {
|
|||
int NodesSincePoll;
|
||||
int NodesBetweenPolls = 30000;
|
||||
|
||||
// The main transposition table
|
||||
TranspositionTable TT;
|
||||
|
||||
|
||||
/// Functions
|
||||
|
||||
|
|
8
src/tt.h
8
src/tt.h
|
@ -92,7 +92,13 @@ public:
|
|||
private:
|
||||
inline TTEntry* first_entry(const Key posKey) const;
|
||||
|
||||
unsigned size, writes;
|
||||
// Be sure 'writes' is at least one cacheline away
|
||||
// from read only variables.
|
||||
unsigned char pad_before[64 - sizeof(unsigned)];
|
||||
unsigned writes; // heavy SMP read/write access here
|
||||
unsigned char pad_after[64];
|
||||
|
||||
unsigned size;
|
||||
TTEntry* entries;
|
||||
uint8_t generation;
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue