mirror of
https://github.com/opelly27/Stockfish.git
synced 2026-05-20 16:47:37 +00:00
6ad4f485d3
Introduce variable tempo for nnue depending on logarithm of estimated
strength, where strength is the product of time and number of threads.
The original idea here was that NNUE is best with a slightly different
tempo value to classical, since its style of play is slightly different.
It turns out that the best tempo for NNUE varies with strength of play,
so a formula is used which gives about 19 for STC and 24 for LTC under
current fishtest settings.
STC 10+0.1:
LLR: 2.94 (-2.94,2.94) {-0.20,1.10}
Total: 120816 W: 11155 L: 10861 D: 98800
Ptnml(0-2): 406, 8728, 41933, 8848, 493
https://tests.stockfishchess.org/tests/view/60735b3a8141753378960534
LTC 60+0.6:
LLR: 2.94 (-2.94,2.94) {0.20,0.90}
Total: 35688 W: 1392 L: 1234 D: 33062
Ptnml(0-2): 23, 1079, 15473, 1255, 14
https://tests.stockfishchess.org/tests/view/6073ffbc814175337896057f
Passed non-regression SMP test at LTC 20+0.2 (8 threads):
LLR: 2.95 (-2.94,2.94) {-0.70,0.20}
Total: 11008 W: 317 L: 267 D: 10424
Ptnml(0-2): 2, 245, 4962, 291, 4
https://tests.stockfishchess.org/tests/view/60749ea881417533789605a4
closes https://github.com/official-stockfish/Stockfish/pull/3426
Bench 4075325
53 lines
1.6 KiB
C++
53 lines
1.6 KiB
C++
/*
|
|
Stockfish, a UCI chess playing engine derived from Glaurung 2.1
|
|
Copyright (C) 2004-2021 The Stockfish developers (see AUTHORS file)
|
|
|
|
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/>.
|
|
*/
|
|
|
|
#ifndef TIMEMAN_H_INCLUDED
|
|
#define TIMEMAN_H_INCLUDED
|
|
|
|
#include "misc.h"
|
|
#include "search.h"
|
|
#include "thread.h"
|
|
|
|
namespace Stockfish {
|
|
|
|
/// The TimeManagement class computes the optimal time to think depending on
|
|
/// the maximum available time, the game move number and other parameters.
|
|
|
|
class TimeManagement {
|
|
public:
|
|
void init(Search::LimitsType& limits, Color us, int ply);
|
|
TimePoint optimum() const { return optimumTime; }
|
|
TimePoint maximum() const { return maximumTime; }
|
|
TimePoint elapsed() const { return Search::Limits.npmsec ?
|
|
TimePoint(Threads.nodes_searched()) : now() - startTime; }
|
|
|
|
int64_t availableNodes; // When in 'nodes as time' mode
|
|
int tempoNNUE;
|
|
|
|
private:
|
|
TimePoint startTime;
|
|
TimePoint optimumTime;
|
|
TimePoint maximumTime;
|
|
};
|
|
|
|
extern TimeManagement Time;
|
|
|
|
} // namespace Stockfish
|
|
|
|
#endif // #ifndef TIMEMAN_H_INCLUDED
|