diff options
| author | Scott Gasch <[email protected]> | 2026-10-25 10:47:41 -0700 |
|---|---|---|
| committer | Scott Gasch <[email protected]> | 2026-10-25 10:47:41 -0700 |
| commit | 93ddedd408cfebb162068d458ea42484cd3f98d2 (patch) | |
| tree | a0e149c01d53525cff6e44c691247dbdb69cad3d /src | |
| parent | f97b2710981e936cfb500ad0cdf1ceab233efad8 (diff) | |
Make NNUE eval the default, same convention as the EGTB path default
main.c's InitializeOptions now tries to load "eval.nnue" (a file next
to the binary, matching typhoon_nnue's own NNUE_WEIGHTS default --
typically a symlink into head_reference/nnue/current/weights.nnue)
after argument parsing, if the user hasn't already enabled NNUE
explicitly via --nnueweights or an interactive "nnue load"/"nnue on".
Same hardcoded-default-path convention main.c already uses for
--egtbpath (/zscratch/egtb).
Fails soft: a checkout without eval.nnue present, or one where it
fails to load, just falls back to HCE eval exactly as before -- this
is a default, not a requirement, so there's no UtilPanic the way
--nnueweights's own explicit-request failure path has. The existing
interactive "nnue off" command remains the way to explicitly opt back
out of NNUE for a given session; a script that wants guaranteed HCE
(e.g. an apples-to-apples eval comparison) should add "nnue off;" to
its own --command string rather than relying on the old no-flag
default.
Verified: clean release build, clean DEBUG=1 TEST=1 self-test run (no
assertion failures), and manually confirmed both the default-load path
(eval.nnue present in cwd) and the silent-fallback path (run from a
directory without it) behave as expected; --nnueweights still works
unchanged.
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.c | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -521,6 +521,32 @@ Return value: i++; } + + // 2026-10-25: NNUE is now the default evaluator, same convention + // as szEGTBPath's hardcoded /zscratch/egtb default above -- try to + // load a weights file sitting next to the binary (matching + // typhoon_nnue's own NNUE_WEIGHTS default) if the user didn't + // already enable NNUE explicitly via --nnueweights or an + // interactive "nnue load"/"nnue on". Fails soft: a checkout + // without eval.nnue present (or a bad/missing file) just falls + // back to HCE, exactly like it always did -- this is a default, + // not a requirement, so there's no UtilPanic here the way + // --nnueweights's own explicit-request failure path has. + if ((FALSE == g_fUseNnueEval) && + (TRUE == SystemDoesFileExist("eval.nnue"))) + { + if (NnueLoadWeights("eval.nnue")) + { + g_fUseNnueEval = TRUE; + Trace("Loaded default NNUE weights \"eval.nnue\", " + "NNUE eval enabled.\n"); + } + else + { + Trace("Found \"eval.nnue\" but failed to load it; " + "falling back to HCE eval.\n"); + } + } } |
