エンジン将棋盤のエンジンとして水匠2をMacでビルドする手順を説明します。
概略
大まかには、下記の手順で作成します。
-
- ビルドの準備(コンパイラg++9を使用できるようにする)
- ソースコードなど必要なファイルの取得
- ビルドの設定
- ビルド
- 作成したエンジンを配置
1. ビルドの準備
コンパイラのインストール手順に従って、g++をインストールします。
2. 必要なファイルの取得
2.1 ファイルのダウンロード
たややん@水匠(COM将棋)さんのTwitterリンクから、ファイル保管場所に行きます。
2020年5月3日、5月4日に行われた世界コンピュータ将棋オンライン大会で使用した評価関数+探索部を「水匠2」として公開いたしました。興味のある方は遊んでみていただければ幸いです。https://t.co/xu4GgUgHw9
— たややん@水匠(COM将棋) (@tayayan_ts) May 4, 2020
次のファイルをダウンロードします。
2.2 ソースファイルの展開
ファイルの保存場所を決めてその中に、ソースファイルを展開します。
2.2.1 保管場所の作成
場所はどこでもいいですが、この例では、ホームディレクトリの下にshogiフォルダを作成して、その中にsuisho2という名前のフォルダを作成します。
- ~/shogi/suisho2
ターミナル.appで作成する場合は、次のコマンドを実行します。( Finderで作成しても同じです)
mkdir -p ~/shogi/suisho2
2.2.2 やねうら王のソースを展開
上記のフォルダの中にYaneuraOu-master.zipを解凍したフォルダとファイルを入れます。
そして、sourceフォルダをYaneuraOu_m_source.zipの中のsourceフォルダと入れ替えます。(元のsourceフォルダを削除して、解凍したものをいれる)
2.2.3 その他のファイルを展開
水匠2(200504).zipを解凍したファイルをYaneuraOu-masterフォルダの中に入れます。
※ YaneuraOu_NNUE_m-avx2.exeは不要です。
3. ビルドの設定
3.1 Makefileの変更
sourceフォルダの中のMakeflieを編集します。
open -e ~/shogi/suisho2/YaneuraOu-master/source/Makefile
50行目あたりのCOMPILERの設定で、COMPILERにg++の最新バージョンを設定します。
COMPILER = /usr/local/bin/g++-9
※ clang++を設定している行の先頭に#を追加してコメントアウトし、g++-9の設定行を追加します。
変更したら、ファイルを上書き保存します。
4. ビルド
4.1 CPUの確認
AVX2が使用できるCPUかどうかを次のコマンドで確認します。
sysctl -a | grep machdep.cpu.leaf7_features
上記コマンドの出力にAVX2が表示されれば、ビルド実行時にTARGET_CPUとしてAVX2を指定します。
AVX2が表示されない場合は、次のコマンドを実行して、使用できるSSEのバージョンを確認します。
sysctl -a | grep machdep.cpu.features
上記の例では、SSE4.2が表示されたので、ビルド実行時にTARGET_CPUとしてSSE42を指定します。
4.2 ビルド実行
ターミナル.appで、sourceフォルダに移動して、ビルドコマンドを実行します。
cd ~/shogi/suisho2/YaneuraOu-master/source
TARGET_CPUに先ほど確認したCPUを指定します。(次の例ではAVX2を指定しています。)
make clean tournament TARGET_CPU=AVX2 YANEURAOU_EDITION=YANEURAOU_ENGINE_NNUE
※ 上記コマンドは、1行で入力します。このコマンドの説明は、docs/解説.txtの134行目にあります。
4.3 できたエンジンを配置
ビルドが完了すると、同じフォルダにエンジン(YaneuraOu-by-gcc)ができます。
これを1つ上のフォルダに移動させます。
mv YaneuraOu-by-gcc ../
4.4 確認
一つ上のフォルダに移動して、エンジンを実行します。
cd ../
./YaneuraOu-by-gcc
usiと入力してreturnキーを押します。
最後にusiokと表示されることを確認します。
次に、isreadyと入力してreturnキーを押します。
最後にreadyokと表示されることを確認します。
quitと入力し、returnキーを押してエンジンを終了させます。
以上で、エンジンの作成は終了です。エンジン将棋盤のエンジン設定で、YaneuraOu-by-gccを登録すれば使用できます。
オプション設定
エンジン将棋盤にエンジン登録した後、エンジン独自オプションの設定で次の項目を設定します。
- BookDepthLimit を 0 に設定
- ConsiderationMode をオンに設定(解析時)
参照:【やねうら王公式HP】検討モード用の読み筋出力について
その他のオプションについてはこちらを参照してください。