Add large page support for NNUE weights and simplify TT mem management
authorSami Kiminki <skiminki@users.noreply.github.com>
Sun, 30 Aug 2020 16:41:30 +0000 (19:41 +0300)
committerJoost VandeVondele <Joost.VandeVondele@gmail.com>
Mon, 21 Sep 2020 06:43:48 +0000 (08:43 +0200)
commit485d517c687a2d3cb0b88cc8c198483759eaf2c7
treee648a61c4fcab05a25b57b35dff44ab6854305c0
parent16b4578cc1bb0cc0dead19e7d9248553c977f8ca
Add large page support for NNUE weights and simplify TT mem management

Use TT memory functions to allocate memory for the NNUE weights. This
should provide a small speed-up on systems where large pages are not
automatically used, including Windows and some Linux distributions.

Further, since we now have a wrapper for std::aligned_alloc(), we can
simplify the TT memory management a bit:

- We no longer need to store separate pointers to the hash table and
  its underlying memory allocation.
- We also get to merge the Linux-specific and default implementations
  of aligned_ttmem_alloc().

Finally, we'll enable the VirtualAlloc code path with large page
support also for Win32.

STC: https://tests.stockfishchess.org/tests/view/5f66595823a84a47b9036fba
LLR: 2.94 (-2.94,2.94) {-0.25,1.25}
Total: 14896 W: 1854 L: 1686 D: 11356
Ptnml(0-2): 65, 1224, 4742, 1312, 105

closes https://github.com/official-stockfish/Stockfish/pull/3081

No functional change.
README.md
src/misc.cpp
src/misc.h
src/nnue/evaluate_nnue.cpp
src/nnue/evaluate_nnue.h
src/tt.cpp
src/tt.h