-
-
Notifications
You must be signed in to change notification settings - Fork 145
ふかうら王のビルド手順
ふかうら王で遊びたい方
- 🌛 ふかうら王V8.60のダウンロード
- ふかうら王のインストール手順 を参考に。
ふかうら王をご自分でビルドしたい方
- WindowsでDirectMLを使う場合 : DirectML版ふかうら王のビルド
- WindowsでCUDA、cuDNN、TensorRTを使う場合 : TensorRT版ふかうら王のビルド
- 最新のCUDA、cuDNN、TensorRTを使いたい方 : ⇨ 相性をNVIDIAの公式サイトで確認した上でダウンロードしてインストール。そのあとやねうら王のプロジェクト設定を修正。(説明は、このページにあります。)
- UbuntuでTensorRT版ふかうら王のビルド : Ubuntuでふかうら王
- Docker環境でTensorRT版ふかうら王のビルド : Docker環境でふかうら王
- macOSでCoreML版ふかうら王のビルド : Macでふかうら王
以下の資料も参考にしてください。
DirectML版のビルドは、Visual Studioでは、NuGetを用いてOnnxRuntimeをインストールするのが手軽です。
Visual StudioのNuGetの使い方
クイック スタート: Visual Studio にパッケージをインストールして使用する (Windows のみ)
https://docs.microsoft.com/ja-jp/nuget/quickstart/install-and-use-a-package-in-visual-studio
Visual StudioのNuGetでインストールするときのpackage名
- Microsoft.AI.DirectML
- Microsoft.ML.OnnxRuntime.DirectML
また、Windows SDKが必要です。DirectML.hのincludeでコンパイルエラーになる場合は、これが原因です。
関連記事
ふかうら王V8.60は、以下のCUDA、TensorRT、CuDNNのバージョンで動作することを確認済みです。
⚠ ふかうら王のバージョンが上がった時に依存するバージョンが変わることはあります。
も参考にしてください。
ふかうら王V8.60は、以下のバージョン以外で動作する保証はありません。ふかうら王が動作しないと言う人は、以下のバージョンで動作するかを試してみてください。(TensorRTとcuDNNは、配布版のふかうら王8.60には含まれているので、インストールしなくとも動作します。)
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 |
- EA(Early Access): 先行アクセス版: 新機能のテスト目的版
- GA(General Availability): 正式版・安定版
上記の表にはダイレクトリンクがありますが、リンク先が変わる可能性があるので、以下に詳しくダウンロード方法も書いておきます。
CUDA Toolkit 12.8 https://developer.nvidia.com/cuda-downloads
Operating System : 『Windows』 Architecture : 『x86_64』 Version : 11 (Windows 11の場合) Installer Type : exe(local) , exe(network)どちらでも。とりあえず、前者を選ぶ。
CUDA Toolkit Installer : Download (3.2GB) ⇨ ここからダウンロード
cuda_12.8.0_571.96_windows.exe
がダウンロードされる。これを実行する。
実行したあとのインストーラーでの手順。
⇨ NVIDIAソフトウェア使用許諾契約書「同意して続行する」
⇨ インストールオプション (不要なものをインストールしたくないのでカスタムを選びますが、自動でも問題ないです)「カスタム」
⇨ カスタムインストールオプション
CUDA ⇨ チェックを入れる
NVIDIA GeForce Experience components ⇨ いらない(チェックを外す)
Other components ⇨ いらない(チェックを外す)
Driver components ⇨ いらない(チェックを外す)
⇨ インストール場所の選択 ⇨ 変更の必要なし(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8)
⇨ Environment Variable Check ⇨ 次へ
⇨ Preparing for installation と表示される。これ5分ぐらいかかる。
⇨ インストールが進行中です。 と表示される。インストールが進む。
⇨ Nsight Visual Studio Edition Summary ⇨ 「次へ」
もし、上のバージョンより新しいバージョンがダウンロードされる場合、ページの画面下部にある「Resources」の「Archive of Previous CUDA Releases」をクリックして、下のバージョンを探す。
CUDA Toolkit 12.8.0 (January 2025)
上記のバージョンは、⇓このURLからダウンロードできる。 https://developer.nvidia.com/cuda-12-8-0-download-archive
Windowsのスタートメニュー ⇨ 「path」と入力 ⇨ 「システム環境変数の編集」 ⇨ システムのプロパティというダイアログが起動する。「詳細設定」のタブが選ばれている。「環境変数」のボタンをクリック。
変数「CUDA_PATH」の値が「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8」になっていることを確認。
https://developer.nvidia.com/cudnn
からダウンロード。
⇨ 「Download cuDNN Library」をクリック ⇨ Operating System : Windows ⇨ Architecture : x86_64 ⇨ Version : Tarball 💡 ここで 10を選択するとzipファイルではなく、インストーラー(exeファイル)がダウンロードできる。その場合、インストール先の変更をしないといけないので、この説明では、Tarballのほうを選んでいる。 ⇨ CUDA Version : 12 ⇨ Installer Type : exe(local) ⇨ Base Installer ⇨ Download(673.4MB)
古いバージョンは、 Resources : Archive of Previous Releases から。
zipファイルがダウンロードされる ⇨ 展開したフォルダを"C:\ProgramData\YaneuraOu"に移動させる。
https://developer.nvidia.com/tensorrt
からダウンロード。
💡 ダウンロードするためにNVIDIAのアカウント登録が必要。
ダウンロードの方法は、cuDNNと同様。
TensorRT 10.8をダウンロード。(以下のパッケージ) これがCUDA 12.8に対応している。
TensorRT 10.8 GA for Windows 10, 11, Server 2019, Server 2022 and CUDA 12.0 to 12.8 ZIP Package
⇨ ダウンロードしたZIPファイルを展開する。 ⇨ 展開したフォルダを"C:\ProgramData\YaneuraOu"に移動させる。
実行ファイルと同一のフォルダにこれらのdllを配置しない場合、環境変数PATHに、
- CUDAのbinフォルダ 💡 配布している、ふかうら王V8.60以降には含まれています。
- TensorRTのlibフォルダ 💡 配布している、ふかうら王V8.60以降には含まれています。
- cuDNNのbinフォルダ 💡 配布している、ふかうら王V8.60以降には含まれています。
を追加する必要があります。
デフォルトのインストールディレクトリの場合、CUDAのbinは、以下のパスになります。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\【CUDAのバージョン番号】\bin
%CUDA_PATH% がCUDAのインストール先になっているはずなので
- %CUDA_PATH%\bin
を環境変数PATHに追加すれば良いでしょう。(CUDAインストーラによって自動的に追加されている筈ですが)
💡 GitHubのReleasesで配布しているふかうら王を用いる場合は、上記3つは含まれているので、環境変数PATHへの追加は不要です。(このあと説明している「PATHを通す」作業は必要ありません。)
⚠ ふかうら王とdlshogiを共存させる場合などでは、それぞれ依存するcuDNNやTensorRTのバージョンが異なるためこれは上手く行かず、CUDAのbinフォルダ以外にPATHを通すのはお勧めしません。(環境変数PATHのリストの順番が先になっているライブラリが読み込まれるため、違うバージョンのライブラリが読み込まれることになって失敗するものが出る。)ふかうら王、フォルダ構成例の構成をお勧めします。
ビルドに必須なのはこのうちCUDAとTensorRTのみですが、cuDNNも以下のように配置すれば、ビルド先に実行に必要な.dllファイルを適宜コピーします。
- 🗄️ C:\
- 📁 ProgramData (隠しフォルダ)
- 📁 YaneuraOu
- 📁 cudnn-windows-x86_64-9.7.0.66_cuda12-archive
- 📁 bin
- 📁 include
- 📁 lib
- 📁 TensorRT-10.8.0.43
- 📁 bin
- 📁 include
- 📁 lib
- ...
上記以外のファイル配置やバージョンで使いたい、Visual Studioをお使いの方は、
- source/prop/YaneuraOuEdition-Deep-ORT-TRT.prop
- source/prop/YaneuraOuEdition-Deep-TensorRT.prop
というプロパティシートでCUDA、TensorRTのフォルダを追加のinclude/libフォルダとして指定してあるのでそこを適宜修正して使ってください。
- include = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\【CUDAのバージョン番号】\include
- lib path = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\【CUDAのバージョン番号】\lib\x64
💡 ↑は、x64(64bit)版の時。32bit版なら"lib\x86"となっている。
環境変数PATHはWindowsでは大事な資源です(例: 指定できる合計文字数は約2000文字まで)。また、環境変数PATHの指定順によってはそれぞれ別のバージョンのライブラリに依存する同士で競合を起こしてしまうことがあります。以下ではTensorRT・cuDNN・zlibをPATHに加える方法を説明していますが、環境変数PATHに極力頼らない方法を推奨します。 👉 dlshogiとふかうら王との共存
⚠ dlshogiとふかうら王とでは要求するTensorRTのバージョンが異なるので、ここに書いてある方法でTensorRTとcuDNNのlibにPATHを通すとdlshogiと共存できなくなる可能性が高いです。そこでTensorRTとcuDNNのlibにはPATHを通さずない方法をお勧めします。👉 dlshogiとふかうら王との共存
🍙 以下は、PATHを通す場合の説明ですが、ふかうら王では、この手順は非推奨です。
環境変数PATHに、TensorRTのlibディレクトリを追加します。
C:\に解凍した場合、以下のパスになっています。
C:\TensorRT-【TensorRTのバージョン番号】\lib
これを環境変数PATHに追加すれば良いでしょう。
cuDNNのbinにも同様にPATHを通す必要があります。
⚠ TensorRT同様に、これもPATHを通さない方法をお勧めします。 👉 dlshogiとふかうら王との共存
🍙 以下はPATHを通す場合の説明です。ふかうら王では、この手順は非推奨です。
cuDNNに対しても同様にPATHを通すのは面倒なので、TensorRTのインストール先のフォルダにファイルコピーしてしまうのが手っ取り早いです。
例) cuDNNのbinフォルダのファイルが TensorRTのインストール先のlibフォルダのファイルになるようにファイルコピー。
Docker環境でふかうら王のDockerfileの方にUbuntuでビルドするまでのコマンドが書かれていますので、それを参考にすると良いと思います。
例) ビルド用のmakeコマンド
make clean YANEURAOU_EDITION=YANEURAOU_ENGINE_DEEP_TENSOR_RT_UBUNTU
make -j8 tournament COMPILER=clang++ YANEURAOU_EDITION=YANEURAOU_ENGINE_DEEP_TENSOR_RT_UBUNTU ENGINE_NAME="FukauraOuV8.20" TARGET_CPU=AVX2
cp ./YaneuraOu-by-gcc ~
GPU 32個までに対応。
make clean YANEURAOU_EDITION=YANEURAOU_ENGINE_DEEP_TENSOR_RT_UBUNTU
make -j8 tournament COMPILER=clang++ YANEURAOU_EDITION=YANEURAOU_ENGINE_DEEP_TENSOR_RT_UBUNTU ENGINE_NAME="FukauraOuV8.20" TARGET_CPU=AVX2 EXTRA_CPPFLAGS="-DMAX_GPU=32"
cp ./YaneuraOu-by-gcc ~
- MAX_GPUについては、ふかうら王のビルド手順#ビルド時のMAX_GPUの指定について
Docker環境でふかうら王を起動するものはMizarさんが公開されています。
- 将棋AIエンジン ふかうら王,dlshogi (TensorRT版) 構築 : https://github.com/mizar/docker-jupyter-dlshogi/tree/main/engine_fukauraou_dlshogi
- Dockerfile : https://github.com/mizar/docker-jupyter-dlshogi/blob/main/engine_fukauraou_dlshogi/fukauraou_dlshogi.dockerfile
💡 Windowsから上記のDocker環境を構築し、起動するコマンドを以下のように書いて、後者を将棋所やShogiGUIに登録すると思考エンジンとして使えます。
-
事前準備
- Docker imageのビルドのために必要なCUDA等のライブラリの用意。
- こちらの手順通りに。 👉 https://github.com/mizar/docker-jupyter-dlshogi#docker-desktop-%E7%92%B0%E5%A2%83%E3%81%AA%E3%81%A9%E3%81%AE%E4%BA%8B%E5%89%8D%E6%BA%96%E5%82%99
-
Dockerのビルド
- 以下の .cmdファイルを思考エンジン起動コマンドの前に実行。
- 引用元 👉 https://github.com/mizar/docker-jupyter-dlshogi/blob/main/engine_fukauraou_dlshogi/fukauraou_dlshogi_build.cmd
@echo off
cd %~dp0
docker build . -f fukauraou_dlshogi.dockerfile -t fukauraou
- Dockerの思考エンジン起動コマンド
- この.cmdファイルを将棋所やShogiGUIに思考エンジンとして登録して使う。
- 引用元 👉 https://github.com/mizar/docker-jupyter-dlshogi/blob/main/engine_fukauraou_dlshogi/engine_fukauraou_avx2.cmd
@echo off
cd %~dp0
docker run -i --rm --gpus all -v %CD%:/workspace --ipc=host fukauraou FukauraOu-avx2 %1 %2 %3 %4 %5 %6 %7 %8 %9
🖋 Docker環境のなかでNVIDIAのGPUが認識できているかは、例えば次のようにすればわかります。
■ dockerコマンド
docker run -i --rm --gpus all nvidia/cuda:11.7.0-base-ubuntu20.04 nvidia-smi
■ 出力例
Unable to find image 'nvidia/cuda:11.7.0-base-ubuntu20.04' locally
11.7.0-base-ubuntu20.04: Pulling from nvidia/cuda
d5fd17ec1767: Already exists
2acb984f1135: Pull complete
558be3b594fb: Pull complete
acebc65b4885: Pull complete
6d5b0e795a9b: Pull complete
Digest: sha256:88754a02905efb25dacdc749ec5020875d7048012957c68f957541fcff7e251d
Status: Downloaded newer image for nvidia/cuda:11.7.0-base-ubuntu20.04
Sat May 21 01:49:31 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 515.43.01 Driver Version: 516.01 CUDA Version: 11.7 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... On | 00000000:01:00.0 On | N/A |
| 0% 39C P8 31W / 350W | 2592MiB / 24576MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA GeForce ... On | 00000000:21:00.0 Off | N/A |
| 0% 31C P8 17W / 350W | 8MiB / 24576MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
また、ふかうら王をビルドする時に MAX_GPU = 32のように指定すると、GPUは16個までではなく32個まで扱えるようになります。(DNN_Model17~32, DNN_Batch_Size17~32, UCT_Threads17~32という思考エンジンオプションが追加されます。)
Macでは、GPU(機械学習専用チップNeural Engine搭載機種ではNeural Engine)を使用するためCore ML版をビルドします。
macOS Montereyでビルド・動作します。Core MLが実装されていれば、もう少し古い環境でもビルド可能と思われます。ビルドには、Xcode Command Line Toolsのインストールが必要です。サードパーティ製ライブラリは不要です。
プロジェクトルートで以下のコマンドを実行することでビルドできます。
make -C source YANEURAOU_EDITION=YANEURAOU_ENGINE_DEEP_COREML TARGET_CPU=APPLEM1
Macは2020年以降のM1チップと、それ以前のIntelチップでCPUアーキテクチャに互換性がありません。TARGET_CPU
を書き換えることで対象CPUアーキテクチャを切り替えます。
ターゲット環境 | TARGET_CPU |
---|---|
M1 Mac | APPLEM1 |
Intel Mac | APPLEAVX2 |