Finny差分判定AVX512版の長時間比較 (2026-10-30)

目的
短時間のbenchでは、同一バイナリの24組の比較が平均+0.154% (SE 1.201pt)に留まり、
最終8回の+2.49%が再現するか判断できなかった。探索を長くして2版だけ比較する。

条件 (測定前に固定)
- CPU: Ryzen 9 9950X、32スレッド、CPU affinity 0-31。
- TARGET_CPU=AVX512VNNI、SFNN_halfka2_2304_15_64_progress8、FT=2304。
- モデル: ../inbox/evalTuyo12-20261025、FV_SCALE=24。
- 共通: USE_LAZY_EVALUATE、USE_FINNY_TABLES、USE_FINNY_RESET、24本のZMMタイル。
- 比較対象: NNUE_FINNY_MASK_DIFFの有無。圧縮版は起動しない。
- 現行版/差分判定版とも前回と同じバイナリ。SHA256で同一性を確認する。
- エンジンソースは変更しない。
- Hash=64 MiB、定跡なし、bench既定4局面。
- 各サンプル直前のwarmup: 1局面1,600万nodes (4局面合計約6,400万nodes)。
- 測定: 1局面1億2,800万nodes (4局面合計約5億1,200万nodes)、前回の8倍。
- 各版12回、AB / BA交互で順序を揃える。12組を測定前に固定し、途中結果で打ち切らない。
- エンジンはロードしたまま、探索は1プロセスずつ。モデル読込時間はNPSに含めない。
- 2版ともモデル/バイナリのSHA256が前回の正しさ検証と一致するため、
  既に通過した100局・23,442手のaccumulator検証を再利用する。
- 32スレッドの探索木は非決定的である。長い探索では深さ・探索局面の構成も変わるので、
  短時間測定との絶対NPSの差を最適化の効果とは解釈しない。

集計
- 各版NPS: 全12回の合計nodes / 合計探索時間。
- paired比: 同じ組の差分判定版NPS / 現行版NPS - 1 の平均。
- 標準誤差: paired比の標本標準偏差 / sqrt(12)。
- 95%区間: paired平均 ± 2.200985 * 標準誤差 (Student t, df=11)。
  測定間の独立性等を仮定した目安で、系統的なCPU負荷や順序の影響を除去する保証ではない。

生ログ・機械可読結果
- build/finny-mask-long-20261030/results.json
- build/finny-mask-long-20261030/round-XX-{baseline,mask}.log
- 正しさ検証の参照: build/finny-reset-largepages-20261030/results.json

再現コマンド (検証済みの前回バイナリを利用)
  python3 tools/memo/bench_finny_mask_long.py

パッチを適用して構築する場合は tools/memo/finny-reset-experiments-20261030.txt を参照。
本スクリプトはreferenceの検証済みバイナリ/モデルのハッシュと一致しなければ実行しない。

結果 (12組、全24サンプル完了)
- baseline: 11,612,925 NPS、合計6,144,770,281 nodes / 529.132秒。
- mask: 11,317,482 NPS、合計6,144,759,199 nodes / 542.944秒。
- 合算NPSの差: -2.544%。
- paired平均: -2.532%、標準誤差0.375ポイント。
- paired平均の95%信頼区間: [-3.358%, -1.707%]。
- 12組すべてで差分判定版のNPSが現行版を下回った。
- モデル読込・warmupを含む経過時間: 20.68分。

各組の結果
組  順序         現行NPS      差分判定NPS    差分判定/現行
 1  現行→差分   12,023,187   11,659,265  -3.027%
 2  差分→現行   11,721,204   11,666,464  -0.467%
 3  現行→差分   11,834,923   11,461,934  -3.152%
 4  差分→現行   11,567,617   11,177,975  -3.368%
 5  現行→差分   11,456,229   11,443,606  -0.110%
 6  差分→現行   11,514,844   11,312,014  -1.761%
 7  現行→差分   11,643,983   11,128,879  -4.424%
 8  差分→現行   11,724,256   11,372,945  -2.996%
 9  現行→差分   11,672,590   11,301,990  -3.175%
10  差分→現行   11,363,478   10,931,811  -3.799%
11  現行→差分   11,503,885   11,226,025  -2.415%
12  差分→現行   11,364,614   11,171,970  -1.695%

判断
- 長い探索では約2.5%の低下となり、短時間測定の最後の8回で出た+2.49%は再現しなかった。
- 今回のモデル・CPU・32スレッドの条件では、差分判定のAVX512化は採用しない。
- 本体ソースは変更していない。試作差分は以前保存した.patchを維持する。

同一性の記録 (SHA256)
- baseline: d875948071e6314991f0bd99980a672fce73180b5fe9ab27c970c0cde6444966
- mask: eb11804dbd92d072dadbf0f83c3bd97bec4b99c5caefdd035c59cc86ea59ea89
- nn.bin: f5dc93cbc8406db9b3d881682e437dc39665cfeca095eebb13128845c7147794
- progress.bin: a2d18f0564639c945b5d6469e9b437cd64a526ad4fbcef02ab1d8f547d08e5f1
