mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-20 09:06:45 +08:00
Per-thread TB hit counters
Use a per-thread counter to reduce contention with many cores and endgame positions. Measured around 1% speed-up on a 12 core and 8% on 28 cores with 6-men, searching on: 7R/1p3k2/2p2P2/3nR1P1/8/3b1P2/7K/r7 b - - 3 38 Also retire the unused set_nodes_searched() and fix a couple of return types and naming conventions. No functional change.
This commit is contained in:
@@ -35,7 +35,7 @@ ThreadPool Threads; // Global object
|
||||
Thread::Thread() {
|
||||
|
||||
resetCalls = exit = false;
|
||||
maxPly = callsCnt = 0;
|
||||
maxPly = callsCnt = tbHits = 0;
|
||||
history.clear();
|
||||
counterMoves.clear();
|
||||
idx = Threads.size(); // Start from 0
|
||||
@@ -158,15 +158,26 @@ void ThreadPool::read_uci_options() {
|
||||
|
||||
/// ThreadPool::nodes_searched() returns the number of nodes searched
|
||||
|
||||
int64_t ThreadPool::nodes_searched() {
|
||||
uint64_t ThreadPool::nodes_searched() {
|
||||
|
||||
int64_t nodes = 0;
|
||||
uint64_t nodes = 0;
|
||||
for (Thread* th : *this)
|
||||
nodes += th->rootPos.nodes_searched();
|
||||
return nodes;
|
||||
}
|
||||
|
||||
|
||||
/// ThreadPool::tb_hits() returns the number of TB hits
|
||||
|
||||
uint64_t ThreadPool::tb_hits() {
|
||||
|
||||
uint64_t hits = 0;
|
||||
for (Thread* th : *this)
|
||||
hits += th->tbHits;
|
||||
return hits;
|
||||
}
|
||||
|
||||
|
||||
/// ThreadPool::start_thinking() wakes up the main thread sleeping in idle_loop()
|
||||
/// and starts a new search, then returns immediately.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user