水匠2のビルド手順

エンジン将棋盤のエンジンとして水匠2をMacでビルドする手順を説明します。

概略

大まかには、下記の手順で作成します。

    1. ビルドの準備(コンパイラg++9を使用できるようにする)
    2. ソースコードなど必要なファイルの取得
    3. ビルドの設定
    4. ビルド
    5. 作成したエンジンを配置

1. ビルドの準備

コンパイラのインストール手順に従って、g++をインストールします。

2. 必要なファイルの取得

2.1 ファイルのダウンロード

たややん@水匠(COM将棋)さんのTwitterリンクから、ファイル保管場所に行きます。

次のファイルをダウンロードします。

  • 水匠2(200504).zip
  • WCSOC2020の中のYaneuraOu-master.zip
  • WCSOC2020の中のYaneuraOu_m_source.zip

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を登録すれば使用できます。

オプション設定

エンジン将棋盤にエンジン登録した後、エンジン独自オプションの設定で次の項目を設定します。

その他のオプションについてはこちらを参照してください。