mirror of
https://github.com/official-stockfish/Stockfish.git
synced 2026-07-23 13:17:12 +00:00
Replicate network weights only to used NUMA nodes
On a system with multiple NUMA nodes, this patch avoids unneeded replicated (e.g. 8x for a single threaded run), reducting memory use in that case. Lazy initialization forced before search. Passed STC: https://tests.stockfishchess.org/tests/view/66a28c524ff211be9d4ecdd4 LLR: 2.96 (-2.94,2.94) <-1.75,0.25> Total: 691776 W: 179429 L: 179927 D: 332420 Ptnml(0-2): 2573, 79370, 182547, 78778, 2620 closes https://github.com/official-stockfish/Stockfish/pull/5515 No functional change
This commit is contained in:
committed by
Joost VandeVondele
parent
2343f71f3f
commit
8e560c4fd3
@@ -102,6 +102,8 @@ void Thread::run_custom_job(std::function<void()> f) {
|
||||
cv.notify_one();
|
||||
}
|
||||
|
||||
void Thread::ensure_network_replicated() { worker->ensure_network_replicated(); }
|
||||
|
||||
// Thread gets parked here, blocked on the condition variable
|
||||
// when the thread has no work to do.
|
||||
|
||||
@@ -400,4 +402,9 @@ std::vector<size_t> ThreadPool::get_bound_thread_count_by_numa_node() const {
|
||||
return counts;
|
||||
}
|
||||
|
||||
void ThreadPool::ensure_network_replicated() {
|
||||
for (auto&& th : threads)
|
||||
th->ensure_network_replicated();
|
||||
}
|
||||
|
||||
} // namespace Stockfish
|
||||
|
||||
Reference in New Issue
Block a user