Skip to content

やねうら王の更新履歴2025

yaneurao edited this page Jan 31, 2025 · 4 revisions

TODO :

残り作業
・large pageのテスト
・numa.h追加。
・ふかうら王のvast.aiの勉強会動画をYouTubeのやねちゃんねるにアップする。
- ふかうら王、mateの手数が最大になるように逃げるように…。
	⇨ これ、あまり意味ないか…。
- 定跡のテスト

- テストコマンド
bench 1024 1 2 default depth
bench 1024 1 10 default depth
bench 1024 1 20 default depth
unittest auto_player_loop 10000 auto_player_depth 12

2025/01/31

  • CUDA12.8、cuDNN9.7対応。
Version download page Installer/Zip Filename
CUDA 12.8 https://developer.nvidia.com/cuda-downloads cuda_12.8.0_571.96_windows.exe
TensorRT 10.8 GA https://developer.nvidia.com/tensorrt-download TensorRT-10.8.0.43.Windows.win10.cuda-12.8.zip ⚠要NVIDIAユーザー登録
cuDNN 9.7.0 https://developer.nvidia.com/cudnn cudnn-windows-x86_64-9.7.0.66_cuda12-archive.zip
  • TensorRT10系に対応(#298)
    • TensorRT 10.8 GA
    • CUDA 12.8.0_571.96
    • cuDNN 9.7.0.66
      • https://developer.nvidia.com/cudnn-downloads からダウンロード。
      • Operating System : Windows
      • Architecture : x86_64
      • Version : 10 (Tarballを選ぶとインストーラーが付随しない)
      • exe(local) ⇨ Base Installer ⇨ Download(689.1MB)

古い情報。これを最新のものに書き換える。


ふかうら王V8.00は、以下のCUDAのバージョンで動作することを確認済みです。

🌛 [ふかうら王V8.00のダウンロード](https://github.com/yaneurao/YaneuraOu/releases/tag/v8.00-fukauraou)

⚠ ふかうら王のバージョンが上がった時に依存するバージョンが変わることはあります。

🌛 REMIND : 依存するTensorRTのバージョンがこまめに変更になると実行ファイルを差し替える作業が面倒になるのでふかうら王のメジャーバージョンアップとか何かの節目にしか変更しないようにすべき。

🍙 これら以外のバージョンで動作する保証はありません。ふかうら王が動作しないと言う人は、以下のバージョンで動作するかを試してみてください。(TensorRTとcuDNNは、配布版のふかうら王8.00には含まれているので、インストールしなくとも動作します。)

||Version |download page | Installer/Zip Filename|
|-|-|-|-|
|CUDA    | 12.3    | https://developer.nvidia.com/cuda-downloads | [cuda_12.3.2_546.12_windows.exe](https://developer.download.nvidia.com/compute/cuda/12.3.2/local_installers/cuda_12.3.2_546.12_windows.exe) |
|TensorRT | 8.6.1.6 (8.6 GA) | https://developer.nvidia.com/tensorrt-download | [TensorRT-8.6.1.6.Windows10.x86_64.cuda-12.0.zip](https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/secure/8.6.1/zip/TensorRT-8.6.1.6.Windows10.x86_64.cuda-12.0.zip) ⚠要NVIDIAユーザー登録 |
|cuDNN    | 8.9.7.29 | https://developer.nvidia.com/rdp/cudnn-archive | [cudnn-windows-x86_64-8.9.7.29_cuda12-archive.zip](https://developer.nvidia.com/downloads/compute/cudnn/secure/8.9.7/local_installers/12.x/cudnn-windows-x86_64-8.9.7.29_cuda12-archive.zip/) |

- EA(Early Access): 先行アクセス版: 新機能のテスト目的版
- GA(General Availability): 正式版・安定版

実行ファイルと同一のフォルダにこれらのdllを配置しない場合、環境変数PATHに、

- CUDAのbinフォルダ ⇨ 配布している、ふかうら王V8.50以降には含まれています。
- TensorRTのlibフォルダ ⇨ 配布している、ふかうら王V8.00以降には含まれています。
- cuDNNのbinフォルダ ⇨ 配布している、ふかうら王V8.00以降には含まれています。

を追加する必要があります。

💡 GitHubのReleasesで配布しているふかうら王を用いる場合は、上記3つは含まれているので、環境変数PATHへの追加は不要です。(このあと説明している「PATHを通す」作業は必要ありません。)

⚠ ふかうら王とdlshogiを共存させる場合などでは、それぞれ依存するcuDNNやTensorRTのバージョンが異なるためこれは上手く行かず、CUDAのbinフォルダ以外にPATHを通すのはお勧めしません。(環境変数PATHのリストの順番が先になっているライブラリが読み込まれるため、違うバージョンのライブラリが読み込まれることになって失敗するものが出る。)[ふかうら王、フォルダ構成例](#ふかうら王、フォルダ構成例)の構成をお勧めします。

以下で順番に説明します。

### CUDAにPATHを通す

デフォルトのインストールディレクトリの場合、CUDAのbinは、以下のパスになります。

>  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\【CUDAのバージョン番号】\bin

%CUDA_PATH% がCUDAのインストール先になっているはずなので
- %CUDA_PATH%\bin

を環境変数PATHに追加すれば良いでしょう。(CUDAインストーラによって自動的に追加されている筈ですが)

> 環境変数PATHはWindowsでは大事な資源です(例: 指定できる合計文字数は約2000文字まで)。また、環境変数PATHの指定順によってはそれぞれ別のバージョンのライブラリに依存する同士で競合を起こしてしまうことがあります。以下ではTensorRT・cuDNN・zlibをPATHに加える方法を説明していますが、環境変数PATHに極力頼らない方法を推奨します。 👉 [dlshogiとふかうら王との共存](#dlshogiとふかうら王との共存)


### TensorRTにPATHを通す

⚠ dlshogiとふかうら王とでは要求するTensorRTのバージョンが異なるので、ここに書いてある方法でTensorRTとcuDNNのlibにPATHを通すとdlshogiと共存できなくなる可能性が高いです。そこでTensorRTとcuDNNのlibにはPATHを通さずない方法をお勧めします。👉 [dlshogiとふかうら王との共存](#dlshogiとふかうら王との共存)

🍙 以下は、PATHを通す場合の説明ですが、ふかうら王では、<u>この手順は非推奨です。</u>

環境変数PATHに、TensorRTのlibディレクトリを追加します。

C:\に解凍した場合、以下のパスになっています。
> C:\TensorRT-【TensorRTのバージョン番号】\lib

これを環境変数PATHに追加すれば良いでしょう。

### cuDNNにPATHを通す

cuDNNのbinにも同様にPATHを通す必要があります。

⚠ TensorRT同様に、これもPATHを通さない方法をお勧めします。
👉 [dlshogiとふかうら王との共存](#dlshogiとふかうら王との共存)

🍙 以下はPATHを通す場合の説明です。ふかうら王では、<u>この手順は非推奨です。</u>

cuDNNに対しても同様にPATHを通すのは面倒なので、TensorRTのインストール先のフォルダにファイルコピーしてしまうのが手っ取り早いです。

例) cuDNNのbinフォルダのファイルが TensorRTのインストール先のlibフォルダのファイルになるようにファイルコピー。

## dlshogiとふかうら王との共存

「dlshogiは動作するけどTensorRT版のふかうら王が動作しない」という話をよく聞きます。

CUDAはバージョンが多少違っても動くようなのですが、TensorRTはバージョンが異なると動作しないことが多いです。

例えば、dlshogiのために、ふかうら王が想定しているのと異なるTensorRTのバージョンをインストールして、そこにPATHを通していたら、ふかうら王は動作しなくなります。(動かないと掲示板で書いているような人は、たいていこれが原因)

そこで、CUDAは(インストール先のフォルダを変更せず)普通にインストールします。

🍙 CUDA Toolkit 12.3 の場合、下記のフォルダにインストールされるはず。
> C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3

TensorRTやcuDNNはzipファイルを展開しても<u>そこにPATHは<b>通さず</b></u>に
cudnn-windows-x86_64-8.9.7.29_cuda12-archive
TensorRT-8.2.5.1

のなかにある アプリケーション拡張(.dll) ファイルを、すべて<b>ふかうら王の実行ファイルがあるのと同じフォルダに配置</b>してしまうという方法が良いと思います。

dlshogiのほうも同様に、cuDNNの"bin"フォルダ と TensorRTの"lib"フォルダ にある アプリケーション拡張(.dll) ファイルは、dlshogiの実行ファイルと同じフォルダに配置してしまうのが良いと思います。

こうしておけば、dlshogiとふかうら王と、どちらも起動するようにできます。

## ふかうら王、フォルダ構成例

TensorRTとcuDNNをふかうら王の実行ファイルと同じフォルダに配置する場合の例です。(dlshogiと共存させるのであれば、この構成がお勧めです。配布しているふかうら王V8.00はこのようになっています)

💡 dlshogi側も同様に構成すればすべてのバージョンのdlshogi、ふかうら王が共存できます。

- [CUDAにPATHを通す](#CUDAにPATHを通す) ものとします。
- そのあと、ふかうら王の実行ファイルを配置したフォルダを以下のように構成します。

- 以下は、ふかうら王(V8.00)とdlshogi(WCSC32版)とを共存させる構成例です。

  • 📁 YaneuraOu-Deep-TensorRT-V800
    • 📁 book
      • 📄 *.db (やねうら王の標準定跡ファイルの場合)
      • 📄 book.bin (Apery定跡ファイルの場合)
    • 📁 eval
      • 📄 *.model (推論モデルファイル)
    • 🗒️ YaneuraOu-Deep-TensorRT.exe (ふかうら王エンジン本体・実行ファイル)
    • 📄 cudnn_adv_infer64_8.dll (cuDNN v8.9.7.29)
    • 📄 cudnn_cnn_infer64_8.dll (cuDNN v8.9.7.29)
    • 📄 cudnn_ops_infer64_8.dll (cuDNN v8.9.7.29)
    • 📄 cudnn64_8.dll (cuDNN v8.9.7.29)
    • 📄 nvinder.dll (TensorRT 8.6.1.6)
    • 📄 nvinder_builder_resource.dll (TensorRT 8.6.1.6)
    • 📄 nvinder_plugin.dll (TensorRT 8.6.1.6)
    • 📄 nvonnxparser.dll (TensorRT 8.6.1.6)
  • 📁 dlshogi-wcsc32
    • 🗒️ build_onnx.exe (dlshogi-wcsc32同梱)
    • 📄 DirectML.dll (dlshogi-wcsc32同梱)
    • 🗒️ dlshogi_onnxruntime.exe (dlshogi-wcsc32同梱)
    • 🗒️ dlshogi_onnxruntime_double.exe (dlshogi-wcsc32同梱)
    • 🗒️ dlshogi_tensorrt.exe (dlshogi-wcsc32同梱)
    • 🗒️ dlshogi_tensorrt_double.exe (dlshogi-wcsc32同梱)
    • 📄 onnxruntime.dll (dlshogi-wcsc32同梱)
    • 📄 book.bin (Apery定跡ファイル)
    • 📄 *.model (推論モデルファイル)
    • 📄 cudnn_adv_infer64_8.dll (cuDNN v8.1.1)
    • 📄 cudnn_cnn_infer64_8.dll (cuDNN v8.1.1)
    • 📄 cudnn_ops_infer64_8.dll (cuDNN v8.1.1)
    • 📄 cudnn64_8.dll (cuDNN v8.1.1)
    • 📄 myelin64_1.dll (TensorRT 7.2.3.4)
    • 📄 nvinfer.dll (TensorRT 7.2.3.4)
    • 📄 nvinfer_plugin.dll (TensorRT 7.2.3.4)
    • 📄 nvonnxparser.dll (TensorRT 7.2.3.4)
    • 📄 nvparsers.dll (TensorRT 7.2.3.4)

🖋 "\*.db" の \* はワイルドカード(何か具体的なファイル名が入る)の意味です。

# Ubuntuでふかうら王

[ふかうら王のビルド手順 - Ubuntuでふかうら王](ふかうら王のビルド手順#Ubuntuでふかうら王)を参考にしてください。

# macOSでふかうら王

- Mac上でCore MLライブラリを用いてNeural Engine(機械学習専用チップ)を利用できるインターフェースをselect766さんが実装してくださいました。

- 評価関数モデルとして、ONNX形式ではなくApple特有のMLModel形式が必要です。サンプルモデルファイル、設定方法は以下に記載があります。
  - Core ML版サンプルビルド20220613 : https://github.com/select766/FukauraOu-CoreML/releases/tag/coreml-sample-20220613

- 関連記事 : ふかうら王でMacのCoreMLを使う(失敗) : https://select766.hatenablog.com/entry/2022/05/26/190100

|種類|内容|GPU利用|探索速度|
|-|-|-|-|
|ORT-CPU|CPUのみで実行|×|低速|
|CoreML|CoreML|◎|速い|


CodeMLを使う時のフォルダ構成例

  • 📁 YaneuraOu-CoreML-V761
    • 📁 book
      • 📄 *.db (やねうら王の標準定跡ファイルの場合)
      • 📄 book.bin (Apery定跡ファイルの場合)
    • 📁 eval
      • *.mlmodel (評価関数のモデルファイル)
    • YaneuraOu-by-gcc-m1 (コンパイルしたふかうら王の実行ファイル)

# ふかうら王のエンジン設定について

ふかうら王の思考エンジンオプションの大半は、やねうら王と同一のものです。

以下に詳しいまとめがあります。

- [思考エンジンオプション やねうら王](思考エンジンオプション)
- [思考エンジンオプション ふかうら王で使えるエンジンオプション](思考エンジンオプション#ふかうら王で使えるエンジンオプション)

お手軽に設定したい方は、こちらだけでも。

- [ふかうら王のお勧めエンジン設定](ふかうら王のお勧めエンジン設定)

# ふかうら王のモデルファイルの配置方法

dlshogiではエンジンの実行ファイルがあるのと同じフォルダに評価関数のモデルファイルを配置することになっていますが、ふかうら王ではエンジンオプションの[EvalDir](思考エンジンオプション#EvalDir)で指定したフォルダに配置することになっています。

また、dlshogiは、モデルファイル名が model-dr2_exhi.onnx の時、model-dr2_exhi.onnx.ini にオプション設定を書けるようになっています。

やねうら王は、EvalDirで指定したフォルダのなかにある[eval_options.txt](隠し機能#eval_options.txt) にオプション設定を書けるようになっています。

なので、dlshogiの model-dr2_exhi.onnx.ini を、やねうら王の eval/eval_options.txt にコピーすればそのまま動きます。

その書式は、
    エンジンオプション名 = 値
のように書けます。(やねうら王、dlshogi共通)

例) C_init=144 C_init_root=116 C_base=28288 C_base_root=25617 C_fpu_reduction=27 C_fpu_reduction_root=0 Softmax_Temperature=140


# トラブルシューティング

将棋AIのGUIに登録した時に「初期化エラー」と出て起動しない場合、以下の手順で単体起動するか確認してください。

🚧 あとで丁寧に書き直す。

## 起動確認

実行ファイルを単体起動して、ベンチマークが完走するか確認します。

💡 この手順は行わなくとも問題ありませんが、将棋AIのGUIでは、思考エンジンが正常に動作しない時に「初期化エラー」としか画面に出さないので原因が特定できません。そこで、この手順を踏むことを強くお勧め致します。

### Windowsの場合

まず、エクスプローラーからダブルクリックで実行ファイルを起動してください。

- <b>「WindowsによってPCが保護されました」のダイアログが出る(次図)</b> 👉️ 「詳細情報」をクリックし、そのあと「実行」をクリックして実行を許可してください。

<img src="images/yaneuraou-install7.png" width='300px' height='280px'/>

- <b>セキュリティソフトのポップアップが出る</b> 👉️ セキュリティソフトが怪しい実行ファイルだと判断して隔離した可能性があります。セキュリティソフトのセーフリストに入れるなどして起動する状態にしてください。

- <b>画面に変化がなく起動しなかった</b> 👉️ セキュリティソフトが怪しい実行ファイルだと判断して隔離した可能性があります。セキュリティソフトのセーフリストに入れるなどして起動する状態にしてください。

- <b>起動直後に(文字を入力する前に)エラーが出る(下図)</b> 👉️ CPUの対応していない命令を実行したのだと思われます。実行するファイルを間違えています。CPUの型番を調べ、ターゲットCPUとして正しい実行ファイルを選んでください。⚠ 32bit OS用とSSE4.2用のふかうら王の実行ファイルは現状、配布していません。

<img src="images/yaneuraou-install6.png" width='600px' height='176px'/>

- <b>下図のエラーが出る。</b> 👉️ CUDAが正常にインストールされていないようです。PATHが通っているところに、ダイアログに表示されている dllファイルが存在するか確認してください。また、CUDAが使えない環境(NVIDIAのGPUと違う場合など)では、TensorRTを使う方のふかうら王は使えません。この場合は、CPU版のふかうら王を使う必要があります。🚧あとで詳しく書く。

<img src="images/fukauraou-install1.png" width='400px' height='164px'/>

- <b>それ以外のエラー</b> 👉️ どんなエラーが出たのか質問箱に詳しく書いて質問してくださいね。

起動したら、

bench

と入力してエンターキーを押しましょう。

<img src="images/fukauraou-install2.png" width='300px' height='97px'/>

上の画面では、model.onnx (評価関数ファイル)を読み込みに行こうとして、そのファイルが読めなくてエラーになっています。👉️ ふかうら王の実行ファイルのあるフォルダに`eval`というフォルダが存在して、そのなかに model.onnxというファイルがあるかを確認してください。

初回起動時のベンチマークは、TensorRT用のファイルを作成するため、2,3分余計にかかります。

そのあとベンチマークは1分ジャストで完了します。次図のような表示になれば完走したということです。

<img src="images/yaneuraou-install9.png" width='300px' height='250px'/>

以上で思考エンジン単体での起動確認ができました。

2025/01/04

  • SEEのコメントがおかしかったの修正。

  • ふかうら王、MultiPVのときのnodes数の出力、以前の仕様に戻して、nodesなどは別途出力するように変更。

  • ふかうら王、MultiPVのときにnodes数の出力が、その指し手の訪問数になっている仕様を変更することにした。

2025/01/03

V8.38q = (V8.64q)

  • 最下位ビット以外が1になる場合があるバグ修正 (#297) https://github.com/yaneurao/YaneuraOu/pull/297

    engine1 = YaneuraOuNNUE_halfkp_512x2_8_64_V838dev.exe , eval = suisho10beta engine2 = YaneuraOuNNUE_halfkp_512x2_8_64_V838dev_q.exe , eval = suisho10beta T2,b1000,1497 - 151 - 1352(52.54% R17.7[6.98,28.42]) winrate black , white = 50.54% , 49.46% T2,b2000,1406 - 244 - 1350(51.02% R7.06[-3.83,17.95]) winrate black , white = 50.58% , 49.42% T2,b4000,830 - 140 - 750(52.53% R17.61[3.22,32.0]) winrate black , white = 52.03% , 47.97%

    ⇨ 影響は軽微のようでR向上しないっぽい。