mirror of
https://github.com/opelly27/Stockfish.git
synced 2026-05-20 07:27:46 +00:00
18686e29c7
this revisits the initialization of NNUE, basically only changing the state on the UCI options 'Use NNUE' and 'EvalFile' calling init_NNUE(), which sets the Eval::useNNUE variable, and loads the network if needed (i.e. useNNUE is true and the same network is not yet loaded) init_NNUE is silent (i.e. no info strings), so that it can be called at startup without confusing certain GUIs. An error message on wrong setting when asking for (i.e. the net failed to load), is delayed to the point where everything must be consistent (start of search or eval). The engine will stop if the settings are wrong at that point. Also works if the default value of Use NNUE would become true.
56 lines
1.5 KiB
C++
56 lines
1.5 KiB
C++
/*
|
|
Stockfish, a UCI chess playing engine derived from Glaurung 2.1
|
|
Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
|
|
Copyright (C) 2008-2015 Marco Costalba, Joona Kiiski, Tord Romstad
|
|
Copyright (C) 2015-2020 Marco Costalba, Joona Kiiski, Gary Linscott, Tord Romstad
|
|
|
|
Stockfish is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
Stockfish is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include <iostream>
|
|
|
|
#include "bitboard.h"
|
|
#include "endgame.h"
|
|
#include "position.h"
|
|
#include "search.h"
|
|
#include "thread.h"
|
|
#include "tt.h"
|
|
#include "uci.h"
|
|
#include "syzygy/tbprobe.h"
|
|
|
|
namespace PSQT {
|
|
void init();
|
|
}
|
|
|
|
int main(int argc, char* argv[]) {
|
|
|
|
std::cout << engine_info() << std::endl;
|
|
|
|
UCI::init(Options);
|
|
Tune::init();
|
|
PSQT::init();
|
|
Bitboards::init();
|
|
Position::init();
|
|
Bitbases::init();
|
|
Endgames::init();
|
|
Threads.set(size_t(Options["Threads"]));
|
|
Search::clear(); // After threads are up
|
|
Eval::init_NNUE();
|
|
|
|
UCI::loop(argc, argv);
|
|
|
|
Threads.set(0);
|
|
return 0;
|
|
}
|