Well, if the answer is really "Yes", I am not sure it is,Zerbinati wrote: ↑Mon Apr 26, 2021 6:12 pmYes Joerg,Joerg Oster wrote: ↑Mon Apr 26, 2021 5:52 pmStockfish doesn't use the search threads to clear the Hash Table.syzygy wrote: ↑Mon Apr 26, 2021 5:15 pmIt means that 32 threads are assigned to group 0 and 32 threads are assigned to group 1. This should be fine.Zerbinati wrote: ↑Mon Apr 26, 2021 8:41 am Ronald does this mean that in each group I have 32 physical and 32 logical threads?
Code: Select all
Cfish 110421 64 AVX2 NUMA by Syzygy based on Stockfish info string NUMA enabled. setoption name Threads value 64 go depth 10 info string Binding thread 0 to node 0 in group 0. info string Binding thread 1 to node 0 in group 0. info string Binding thread 2 to node 0 in group 0. info string Binding thread 3 to node 0 in group 0. info string Binding thread 4 to node 0 in group 0. info string Binding thread 5 to node 0 in group 0. info string Binding thread 6 to node 0 in group 0. info string Binding thread 7 to node 0 in group 0. info string Binding thread 8 to node 0 in group 0. info string Binding thread 9 to node 0 in group 0. info string Binding thread 10 to node 0 in group 0. info string Binding thread 11 to node 0 in group 0. info string Binding thread 12 to node 0 in group 0. info string Binding thread 13 to node 0 in group 0. info string Binding thread 14 to node 0 in group 0. info string Binding thread 15 to node 0 in group 0. info string Binding thread 16 to node 0 in group 0. info string Binding thread 17 to node 0 in group 0. info string Binding thread 18 to node 0 in group 0. info string Binding thread 19 to node 0 in group 0. info string Binding thread 20 to node 0 in group 0. info string Binding thread 21 to node 0 in group 0. info string Binding thread 22 to node 0 in group 0. info string Binding thread 23 to node 0 in group 0. info string Binding thread 24 to node 0 in group 0. info string Binding thread 25 to node 0 in group 0. info string Binding thread 26 to node 0 in group 0. info string Binding thread 27 to node 0 in group 0. info string Binding thread 28 to node 0 in group 0. info string Binding thread 29 to node 0 in group 0. info string Binding thread 30 to node 0 in group 0. info string Binding thread 31 to node 0 in group 0. info string Binding thread 32 to node 1 in group 1. info string Binding thread 33 to node 1 in group 1. info string Binding thread 34 to node 1 in group 1. info string Binding thread 35 to node 1 in group 1. info string Binding thread 36 to node 1 in group 1. info string Binding thread 37 to node 1 in group 1. info string Binding thread 38 to node 1 in group 1. info string Binding thread 39 to node 1 in group 1. info string Binding thread 40 to node 1 in group 1. info string Binding thread 41 to node 1 in group 1. info string Binding thread 42 to node 1 in group 1. info string Binding thread 43 to node 1 in group 1. info string Binding thread 44 to node 1 in group 1. info string Binding thread 45 to node 1 in group 1. info string Binding thread 46 to node 1 in group 1. info string Binding thread 47 to node 1 in group 1. info string Binding thread 48 to node 1 in group 1. info string Binding thread 49 to node 1 in group 1. info string Binding thread 50 to node 1 in group 1. info string Binding thread 51 to node 1 in group 1. info string Binding thread 52 to node 1 in group 1. info string Binding thread 53 to node 1 in group 1. info string Binding thread 54 to node 1 in group 1. info string Binding thread 55 to node 1 in group 1. info string Binding thread 56 to node 1 in group 1. info string Binding thread 57 to node 1 in group 1. info string Binding thread 58 to node 1 in group 1. info string Binding thread 59 to node 1 in group 1. info string Binding thread 60 to node 1 in group 1. info string Binding thread 61 to node 1 in group 1. info string Binding thread 62 to node 1 in group 1. info string Binding thread 63 to node 1 in group 1.
With 128 threads, it is 64 and 64 threads assigned to groups 0 and 1.
So as far as I can tell, Cfish on your machine is not hindered by the limitations of Windows.
You probably know this, of course.
Am I right that the thread-binding inside the TT.clear() method destroys all binding of the search threads?Code: Select all
/// TranspositionTable::clear() initializes the entire transposition table to zero, // in a multi-threaded way. void TranspositionTable::clear() { std::vector<std::thread> threads; for (size_t idx = 0; idx < Options["Threads"]; ++idx) { threads.emplace_back([this, idx]() { // Thread binding gives faster search on systems with a first-touch policy if (Options["Threads"] > 8) WinProcGroup::bindThisThread(idx); // Each thread will zero its part of the hash table const size_t stride = size_t(clusterCount / Options["Threads"]), start = size_t(stride * idx), len = idx != Options["Threads"] - 1 ? stride : clusterCount - start; std::memset(&table[start], 0, len * sizeof(Cluster)); }); } for (std::thread& th : threads) th.join(); }
therefore some modification would be necessary
to make the engine take advantage of the increase in cores from 64 to 128
with an increment of nodes?
then you can simply delete the 2 lines of code for thread-binding and retry.