Skip to content

ふかうら王のインストール手順

yaneurao edited this page Jun 18, 2024 · 22 revisions

ふかうら王とは?

ふかうら王とは、Deep Learningを用いたやねうら王です。

特徴

  • dlshogi互換エンジン
  • dlshogiと同等以上の棋力
  • dlshogiのモデルファイルの読み込み可能
  • やねうら王と互換性のあるエンジンオプション(思考時間設定、定跡設定等)
  • やねうら王の定跡ファイルの読み込みなどをサポート
  • GPUなしでは本来の性能の1/10も出ません。

Windowsでふかうら王

Windows版のふかうら王には、次の4つの種類があります。

種類 内容 GPU利用 探索速度
ORT-CPU CPUのみで実行 × 低速
ORT-DML DirectMLを利用 中速
ORT-TRT TensorRT自動ビルド 速い
TensorRT TensorRT 速い

💡 ORT-TRTはTensorRTとほぼ同様で、TensorRT版よりは少しだけ遅いですが、自動ビルドに対応できるため、やねうら王プロジェクトでは、実行ファイルはこれの形式で配布しています。

🖋 TensorRT用の実行ファイルはいまのところ自動ビルドでは作れないので配布していません。

⚠ ORT-TRT版とTensorRT版は、TensorRTが使える環境でしか動作しません。つまりは、NVIDIAのGPUでしか動作しません。NVIDIAの比較的最近のGPUならば対応しています。

💡 「ORT」と言うのは、OnnxRuntimeの略です。OnnxRuntimeは、Microsoftの開発したcross platformで動作する機械学習のアクセラレータです。OnnxRuntimeには、「Execution Provider」と呼ばれる、プラグインを使う仕組みが搭載されています。この仕組みを用いて、DirectMLやTensorRTを呼び出しているのが、それぞれふかうら王のORT-DML版とORT-TRT版です。

ORT-CPU版

CPUで動作するので、特に何も追加でインストールしなくとも動作すると思います。

GPUで処理するのに較べると100倍ぐらい遅いです。(比喩ではなく本当に…)

ORT-DML版

DirectMLというMicrosoftの開発した機械学習ライブラリを用いて動作します。これも遅いです。GPUが使える環境ならば自動的にGPUを使ってくれるのですが、それでもGPU本来の性能を100%引き出せないためか、遅いです。

DirectML自体は、最新のWindowsならばインストールされているはずなので新たに何かをインストールする必要はありません。

ORT-TRT版とTensorRT版

ORT-TRT版とTensorRT版は、TensorRTに対応したGPUが必要になります。

NVIDIAの比較的最近のGPUならば対応しています。

🖋 対応確認済みの機種

GeForce RTXシリーズなら2000番台, 3000番台。

V100 , A100など(ワークステーションで使われるGPU)。

🖋 おそらく対応する機種

Tensor Core搭載のNVIDIAのGPU

  • Hopper世代(2022年~)
    • NVIDIA H100 (ワークステーション・データセンター向け)
    • (2022年発表?) (クリエイターグラフィック向け)
    • NVIDIA GeForce RTX 40シリーズ (4060, 4070, 4070 SUPER, 4080, 4080 SUPER , 4090) (一般ゲーミング向け)
  • Ampare世代(2020年~)
    • NVIDIA A100, A30, ... (ワークステーション・データセンター向け)
    • NVIDIA A6000, A5500, A5000, ... (クリエイターグラフィック向け)
    • NVIDIA GeForce RTX 30シリーズ (3090Ti, 3090, 3080Ti, 3080, ...) (一般ゲーミング向け)
  • Turing・Volta世代(2018年~)
    • NVIDIA V100 (ワークステーション・データセンター向け)
    • Quadro RTX 8000, 6000, 5000, ... (クリエイターグラフィック向け)
    • NVIVIA GeForce RTX 20シリーズ (2080Ti, 2080SUPER, 2080, ...) (一般ゲーミング向け)

また、動作に際して、CUDA、TensorRT、cuDNNが必要になります。

これらの導入に関しては、dlshogi(WCSC31)版の導入の記事を参考にしてください。ただし、それらのライブラリの必要なバージョンがdlshogiとふかうら王では異なります。

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

🌛 ふかうら王V8.00のダウンロード

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

🌛 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
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 ⚠要NVIDIAユーザー登録
cuDNN 8.9.7.29 https://developer.nvidia.com/rdp/cudnn-archive cudnn-windows-x86_64-8.9.7.29_cuda12-archive.zip
  • EA(Early Access): 先行アクセス版: 新機能のテスト目的版
  • GA(General Availability): 正式版・安定版

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

  • CUDAのbinフォルダ
  • TensorRTのlibフォルダ ⇨ 配布している、ふかうら王V8.00には含まれています。
  • cuDNNのbinフォルダ ⇨ 配布している、ふかうら王V8.00には含まれています。 を追加する必要があります。

⚠ ただし、ふかうら王と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とふかうら王との共存

TensorRTにPATHを通す

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

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

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

C:\に解凍した場合、以下のパスになっています。

C:\TensorRT-【TensorRTのバージョン番号】\lib

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

cuDNNにPATHを通す

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

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

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

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ファイルを展開してもそこにPATHは通さずに cudnn-windows-x86_64-8.9.7.29_cuda12-archive TensorRT-8.2.5.1

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

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

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

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

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

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

  • 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でふかうら王を参考にしてください。

macOSでふかうら王

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

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

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

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

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

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

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

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

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

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

やねうら王は、EvalDirで指定したフォルダのなかにある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の場合

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

  • 「WindowsによってPCが保護されました」のダイアログが出る(次図) 👉️ 「詳細情報」をクリックし、そのあと「実行」をクリックして実行を許可してください。
  • セキュリティソフトのポップアップが出る 👉️ セキュリティソフトが怪しい実行ファイルだと判断して隔離した可能性があります。セキュリティソフトのセーフリストに入れるなどして起動する状態にしてください。

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

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

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

起動したら、

bench

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

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

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

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

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

quit

と入力してエンターキーを押して思考エンジンを終了させてください。(ウィンドウ右上の×ボタンで閉じても良い。)

質問箱

ふかうら王のインストール手順についての質問は、以下のブログ記事のコメント欄にお願いします。

🚧 あとでこのインストール手順丸ごと書き直して、専用の質問箱を用意する。

Clone this wiki locally