From 2907ee1a90c2a538b3585f56f52b3716ca2cccd5 Mon Sep 17 00:00:00 2001 From: Shawn Xu Date: Sun, 1 Mar 2026 14:54:35 -0800 Subject: [PATCH] Requantize smallnet to nn-47fc8b7fff06.nnue Passed Non-regression STC: LLR: 3.01 (-2.94,2.94) <-1.75,0.25> Total: 340384 W: 88165 L: 88274 D: 163945 Ptnml(0-2): 1145, 40248, 87571, 40027, 1201 https://tests.stockfishchess.org/tests/view/69a4c49ab4a714eaaa196bc0 Passed Non-regression LTC: LLR: 2.97 (-2.94,2.94) <-1.75,0.25> Total: 125922 W: 32222 L: 32106 D: 61594 Ptnml(0-2): 100, 13815, 35002, 13957, 87 https://tests.stockfishchess.org/tests/view/69a9d5f489704e42c5e3a35d closes https://github.com/official-stockfish/Stockfish/pull/6655 Bench: 2171643 --- src/evaluate.h | 2 +- src/nnue/nnue_feature_transformer.h | 29 ++++++----------------------- 2 files changed, 7 insertions(+), 24 deletions(-) diff --git a/src/evaluate.h b/src/evaluate.h index d7c162cbe..4af7093e0 100644 --- a/src/evaluate.h +++ b/src/evaluate.h @@ -34,7 +34,7 @@ namespace Eval { // name of the macro or the location where this macro is defined, as it is used // in the Makefile/Fishtest. #define EvalFileDefaultNameBig "nn-9a0cc2a62c52.nnue" -#define EvalFileDefaultNameSmall "nn-37f18f62d772.nnue" +#define EvalFileDefaultNameSmall "nn-47fc8b7fff06.nnue" namespace NNUE { struct Networks; diff --git a/src/nnue/nnue_feature_transformer.h b/src/nnue/nnue_feature_transformer.h index a2cc00022..798c0fa11 100644 --- a/src/nnue/nnue_feature_transformer.h +++ b/src/nnue/nnue_feature_transformer.h @@ -155,13 +155,6 @@ class FeatureTransformer { permute<8>(threatWeights, InversePackusEpi16Order); } - inline void scale_weights(bool read) { - for (auto& w : weights) - w = read ? w * 2 : w / 2; - for (auto& b : biases) - b = read ? b * 2 : b / 2; - } - // Read network parameters bool read_parameters(std::istream& stream) { read_leb_128(stream, biases); @@ -182,9 +175,6 @@ class FeatureTransformer { permute_weights(); - if constexpr (!UseThreats) - scale_weights(true); - return !stream.fail(); } @@ -194,9 +184,6 @@ class FeatureTransformer { copy->unpermute_weights(); - if constexpr (!UseThreats) - copy->scale_weights(false); - write_leb_128(stream, copy->biases); if constexpr (UseThreats) @@ -288,7 +275,7 @@ class FeatureTransformer { constexpr IndexType NumOutputChunks = HalfDimensions / 2 / OutputChunkSize; const vec_t Zero = vec_zero(); - const vec_t One = vec_set_16(UseThreats ? 255 : 127 * 2); + const vec_t One = vec_set_16(255); const vec_t* in0 = reinterpret_cast(&(accumulation[perspectives[p]][0])); const vec_t* in1 = @@ -408,18 +395,14 @@ class FeatureTransformer { if constexpr (UseThreats) { - BiasType sum0t = threatAccumulation[static_cast(perspectives[p])][j + 0]; - BiasType sum1t = + sum0 += threatAccumulation[static_cast(perspectives[p])][j + 0]; + sum1 += threatAccumulation[static_cast(perspectives[p])][j + HalfDimensions / 2]; - sum0 = std::clamp(sum0 + sum0t, 0, 255); - sum1 = std::clamp(sum1 + sum1t, 0, 255); - } - else - { - sum0 = std::clamp(sum0, 0, 127 * 2); - sum1 = std::clamp(sum1, 0, 127 * 2); } + sum0 = std::clamp(sum0, 0, 255); + sum1 = std::clamp(sum1, 0, 255); + output[offset + j] = static_cast(unsigned(sum0 * sum1) / 512); }