mirror of
https://github.com/sockspls/badfish
synced 2025-05-01 17:19:36 +00:00
Small cleanups 12
- Clean signature of functions in namespace NNUE - Add comment for countermove based pruning - Remove bestMoveCount variable - Add const qualifier to kpp_board_index array - Fix spaces in get_best_thread() - Fix indention in capture LMR code in search.cpp - Rename TtmemDeleter to LargePageDeleter Closes https://github.com/official-stockfish/Stockfish/pull/3063 No functional change
This commit is contained in:
parent
485d517c68
commit
9a64e737cf
11 changed files with 36 additions and 41 deletions
|
@ -60,7 +60,7 @@ namespace Eval {
|
||||||
bool useNNUE;
|
bool useNNUE;
|
||||||
string eval_file_loaded = "None";
|
string eval_file_loaded = "None";
|
||||||
|
|
||||||
/// init_NNUE() tries to load a nnue network at startup time, or when the engine
|
/// NNUE::init() tries to load a nnue network at startup time, or when the engine
|
||||||
/// receives a UCI command "setoption name EvalFile value nn-[a-z0-9]{12}.nnue"
|
/// receives a UCI command "setoption name EvalFile value nn-[a-z0-9]{12}.nnue"
|
||||||
/// The name of the nnue network is always retrieved from the EvalFile option.
|
/// The name of the nnue network is always retrieved from the EvalFile option.
|
||||||
/// We search the given network in three locations: internally (the default
|
/// We search the given network in three locations: internally (the default
|
||||||
|
@ -68,7 +68,7 @@ namespace Eval {
|
||||||
/// in the engine directory. Distro packagers may define the DEFAULT_NNUE_DIRECTORY
|
/// in the engine directory. Distro packagers may define the DEFAULT_NNUE_DIRECTORY
|
||||||
/// variable to have the engine search in a special directory in their distro.
|
/// variable to have the engine search in a special directory in their distro.
|
||||||
|
|
||||||
void init_NNUE() {
|
void NNUE::init() {
|
||||||
|
|
||||||
useNNUE = Options["Use NNUE"];
|
useNNUE = Options["Use NNUE"];
|
||||||
if (!useNNUE)
|
if (!useNNUE)
|
||||||
|
@ -111,8 +111,8 @@ namespace Eval {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// verify_NNUE() verifies that the last net used was loaded successfully
|
/// NNUE::verify() verifies that the last net used was loaded successfully
|
||||||
void verify_NNUE() {
|
void NNUE::verify() {
|
||||||
|
|
||||||
string eval_file = string(Options["EvalFile"]);
|
string eval_file = string(Options["EvalFile"]);
|
||||||
|
|
||||||
|
|
|
@ -32,8 +32,6 @@ namespace Eval {
|
||||||
|
|
||||||
extern bool useNNUE;
|
extern bool useNNUE;
|
||||||
extern std::string eval_file_loaded;
|
extern std::string eval_file_loaded;
|
||||||
void init_NNUE();
|
|
||||||
void verify_NNUE();
|
|
||||||
|
|
||||||
// The default net name MUST follow the format nn-[SHA256 first 12 digits].nnue
|
// The default net name MUST follow the format nn-[SHA256 first 12 digits].nnue
|
||||||
// for the build process (profile-build and fishtest) to work. Do not change the
|
// for the build process (profile-build and fishtest) to work. Do not change the
|
||||||
|
@ -43,9 +41,9 @@ namespace Eval {
|
||||||
namespace NNUE {
|
namespace NNUE {
|
||||||
|
|
||||||
Value evaluate(const Position& pos);
|
Value evaluate(const Position& pos);
|
||||||
Value compute_eval(const Position& pos);
|
bool load_eval(std::string name, std::istream& stream);
|
||||||
void update_eval(const Position& pos);
|
void init();
|
||||||
bool load_eval(std::string streamName, std::istream& stream);
|
void verify();
|
||||||
|
|
||||||
} // namespace NNUE
|
} // namespace NNUE
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ int main(int argc, char* argv[]) {
|
||||||
Endgames::init();
|
Endgames::init();
|
||||||
Threads.set(size_t(Options["Threads"]));
|
Threads.set(size_t(Options["Threads"]));
|
||||||
Search::clear(); // After threads are up
|
Search::clear(); // After threads are up
|
||||||
Eval::init_NNUE();
|
Eval::NNUE::init();
|
||||||
|
|
||||||
UCI::loop(argc, argv);
|
UCI::loop(argc, argv);
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
|
|
||||||
namespace Eval::NNUE {
|
namespace Eval::NNUE {
|
||||||
|
|
||||||
uint32_t kpp_board_index[PIECE_NB][COLOR_NB] = {
|
const uint32_t kpp_board_index[PIECE_NB][COLOR_NB] = {
|
||||||
// convention: W - us, B - them
|
// convention: W - us, B - them
|
||||||
// viewed from other side, W and B are reversed
|
// viewed from other side, W and B are reversed
|
||||||
{ PS_NONE, PS_NONE },
|
{ PS_NONE, PS_NONE },
|
||||||
|
@ -136,10 +136,10 @@ namespace Eval::NNUE {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load eval, from a file stream or a memory stream
|
// Load eval, from a file stream or a memory stream
|
||||||
bool load_eval(std::string streamName, std::istream& stream) {
|
bool load_eval(std::string name, std::istream& stream) {
|
||||||
|
|
||||||
Initialize();
|
Initialize();
|
||||||
fileName = streamName;
|
fileName = name;
|
||||||
return ReadParameters(stream);
|
return ReadParameters(stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@ namespace Eval::NNUE {
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct TtmemDeleter {
|
struct LargePageDeleter {
|
||||||
void operator()(T* ptr) const {
|
void operator()(T* ptr) const {
|
||||||
ptr->~T();
|
ptr->~T();
|
||||||
aligned_large_pages_free(ptr);
|
aligned_large_pages_free(ptr);
|
||||||
|
@ -52,7 +52,7 @@ namespace Eval::NNUE {
|
||||||
using AlignedPtr = std::unique_ptr<T, AlignedDeleter<T>>;
|
using AlignedPtr = std::unique_ptr<T, AlignedDeleter<T>>;
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
using LargePagePtr = std::unique_ptr<T, TtmemDeleter<T>>;
|
using LargePagePtr = std::unique_ptr<T, LargePageDeleter<T>>;
|
||||||
|
|
||||||
} // namespace Eval::NNUE
|
} // namespace Eval::NNUE
|
||||||
|
|
||||||
|
|
|
@ -113,7 +113,7 @@ namespace Eval::NNUE {
|
||||||
PS_END2 = 12 * SQUARE_NB + 1
|
PS_END2 = 12 * SQUARE_NB + 1
|
||||||
};
|
};
|
||||||
|
|
||||||
extern uint32_t kpp_board_index[PIECE_NB][COLOR_NB];
|
extern const uint32_t kpp_board_index[PIECE_NB][COLOR_NB];
|
||||||
|
|
||||||
// Type of input feature after conversion
|
// Type of input feature after conversion
|
||||||
using TransformedFeatureType = std::uint8_t;
|
using TransformedFeatureType = std::uint8_t;
|
||||||
|
|
|
@ -225,7 +225,7 @@ void MainThread::search() {
|
||||||
Time.init(Limits, us, rootPos.game_ply());
|
Time.init(Limits, us, rootPos.game_ply());
|
||||||
TT.new_search();
|
TT.new_search();
|
||||||
|
|
||||||
Eval::verify_NNUE();
|
Eval::NNUE::verify();
|
||||||
|
|
||||||
if (rootMoves.empty())
|
if (rootMoves.empty())
|
||||||
{
|
{
|
||||||
|
@ -462,10 +462,7 @@ void Thread::search() {
|
||||||
++failedHighCnt;
|
++failedHighCnt;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
++rootMoves[pvIdx].bestMoveCount;
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
delta += delta / 4 + 5;
|
delta += delta / 4 + 5;
|
||||||
|
|
||||||
|
@ -1570,6 +1567,7 @@ moves_loop: // When in check, search starts from here
|
||||||
[pos.moved_piece(move)]
|
[pos.moved_piece(move)]
|
||||||
[to_sq(move)];
|
[to_sq(move)];
|
||||||
|
|
||||||
|
// CounterMove based pruning
|
||||||
if ( !captureOrPromotion
|
if ( !captureOrPromotion
|
||||||
&& moveCount
|
&& moveCount
|
||||||
&& (*contHist[0])[pos.moved_piece(move)][to_sq(move)] < CounterMovePruneThreshold
|
&& (*contHist[0])[pos.moved_piece(move)][to_sq(move)] < CounterMovePruneThreshold
|
||||||
|
|
|
@ -71,7 +71,6 @@ struct RootMove {
|
||||||
Value previousScore = -VALUE_INFINITE;
|
Value previousScore = -VALUE_INFINITE;
|
||||||
int selDepth = 0;
|
int selDepth = 0;
|
||||||
int tbRank = 0;
|
int tbRank = 0;
|
||||||
int bestMoveCount = 0;
|
|
||||||
Value tbScore;
|
Value tbScore;
|
||||||
std::vector<Move> pv;
|
std::vector<Move> pv;
|
||||||
};
|
};
|
||||||
|
|
|
@ -85,7 +85,7 @@ namespace {
|
||||||
Position p;
|
Position p;
|
||||||
p.set(pos.fen(), Options["UCI_Chess960"], &states->back(), Threads.main());
|
p.set(pos.fen(), Options["UCI_Chess960"], &states->back(), Threads.main());
|
||||||
|
|
||||||
Eval::verify_NNUE();
|
Eval::NNUE::verify();
|
||||||
|
|
||||||
sync_cout << "\n" << Eval::trace(p) << sync_endl;
|
sync_cout << "\n" << Eval::trace(p) << sync_endl;
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,8 +41,8 @@ void on_hash_size(const Option& o) { TT.resize(size_t(o)); }
|
||||||
void on_logger(const Option& o) { start_logger(o); }
|
void on_logger(const Option& o) { start_logger(o); }
|
||||||
void on_threads(const Option& o) { Threads.set(size_t(o)); }
|
void on_threads(const Option& o) { Threads.set(size_t(o)); }
|
||||||
void on_tb_path(const Option& o) { Tablebases::init(o); }
|
void on_tb_path(const Option& o) { Tablebases::init(o); }
|
||||||
void on_use_NNUE(const Option& ) { Eval::init_NNUE(); }
|
void on_use_NNUE(const Option& ) { Eval::NNUE::init(); }
|
||||||
void on_eval_file(const Option& ) { Eval::init_NNUE(); }
|
void on_eval_file(const Option& ) { Eval::NNUE::init(); }
|
||||||
|
|
||||||
/// Our case insensitive less() function as required by UCI protocol
|
/// Our case insensitive less() function as required by UCI protocol
|
||||||
bool CaseInsensitiveLess::operator() (const string& s1, const string& s2) const {
|
bool CaseInsensitiveLess::operator() (const string& s1, const string& s2) const {
|
||||||
|
|
Loading…
Add table
Reference in a new issue