将棋ソフト「elmo」をLinuxにインストールする方法【第5回電王トーナメント版】

先日開催された「第5回 電王トーナメント」に出場した「elmo」をLinuxにインストールする方法を紹介します。

優勝した「平成将棋合戦ぽんぽこ」のインストール方法については、以下の記事をご覧ください。

「elmo」も「平成将棋合戦ぽんぽこ」と同様、思考エンジンに「やねうら王 2017Early KPPTビルド V4.79」を用いて動作させることができます。また、このページでは将棋GUIソフトとして「ShogiGUI」を使う手順を紹介します。既に「平成将棋合戦ぽんぽこ」などを動作させるために、「やねうら王」や「ShogiGUI」がインストール済みの場合、それらのインストール手順は飛ばしてください。

必要なパッケージのインストール

まずは「やねうら王」のビルドに必要なパッケージと、Windows用ソフトである「ShogiGUI」をLinuxで動かすための「Mono」をインストールします。

Ubuntu 16.04以降の場合、以下のコマンドを実行するだけです。

sudo apt install make g++ mono-complete

Fedora 26以降の場合、以下のようにMonoの配布元レポジトリを追加し、パッケージのインストールを実行します。

sudo dnf -y install dnf-utils
sudo rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"
sudo yum-config-manager --add-repo http://download.mono-project.com/repo/centos/
sudo dnf install -y make gcc-c++ mono-complete

CPUがサポートする拡張機能の確認

やねうら王をビルドする際に必要になる、CPUがサポートする拡張機能を以下のコマンドで確認しておきましょう。

grep flags /proc/cpuinfo | head -1 | grep -E '(avx2|sse4_2|sse4_1|sse2)'

avx2、sse4_2、sse4_1、sse2のいずれが含まれているかをチェックしておいてください。

「やねうら王」のダウンロードとビルド

以下のコマンドで、「やねうら王 2017Early KPPTビルド V4.79」のダウンロードと展開を行い、ソースコードの入ったディレクトリに移動します。

cd /tmp/
wget https://github.com/yaneurao/YaneuraOu/archive/v4.79engine2017.tar.gz
tar xvzf v4.79engine2017.tar.gz
cd YaneuraOu-4.79engine2017/source/

続いてビルドします。CPUがサポートする拡張機能により、以下のうちいずれかを実行してください(上にかかれているものを優先して選んでください)。

avx2をサポートしている場合

make avx2 COMPILER=g++

sse4_2をサポートしている場合

make sse42 COMPILER=g++

sse4_1をサポートしている場合

make sse41 COMPILER=g++

sse2をサポートしている場合

make sse2 COMPILER=g++

ビルドが正常に終わると、実行ファイル「YaneuraOu-by-gcc」が生成されているはずです。ここでは、ホームディレクトリに「Shogi/YaneuraOu-4.79/bin/」ディレクトリを作成して置くことにしましょう。

mkdir -p ~/Shogi/YaneuraOu-4.79/bin
cp -a YaneuraOu-by-gcc ~/Shogi/YaneuraOu-4.79/bin/

「elmo SDT5版」のインストール

次に、「elmo SDT5版」の評価関数と定跡をダウンロードします。以下の、elmoを開発された方のツイートからGoogleドライブのページを開き、ダウンロードしてください。

ダウンロードした「elmo.sdt5.zip」を、「~/Shogi/YaneuraOu-4.79/」に展開することにしましょう。以下のように実行します(「ダウンロード」フォルダにダウンロードした場合)。

cd ~/Shogi/YaneuraOu-4.79/
unzip ~/ダウンロード/elmo.sdt5.zip
cd elmo.sdt5/
ln -s ../bin/YaneuraOu-by-gcc .
echo 'elmo SDT5版' > engine_name.txt
echo '瀧澤誠' >> engine_name.txt

「ShogiGUI」のダウンロードと展開

ShogiGUIのサイトを開き、ダウンロードページからリンクされている最新のzip版をダウンロードしましょう。本記事公開時点の最新版は「ShogiGUIv0.0.6.11.zip」でした。以下は、「~/Shogi/」に展開する例です。

cd ~/Shogi/
unzip ~/ダウンロード/ShogiGUIv0.0.6.11.zip

「ShogiGUI」の起動と「elmo SDT5版」の登録

以下のコマンドを実行して、「ShogiGUI」を起動します。

cd ~/Shogi/ShogiGUI*
mono ShogiGUI.exe

起動したら、「ツール」→「エンジン設定」を開きます。

エンジン一覧で「追加」をクリックし、ファイル選択ダイアログで先ほど追加したディレクトリ「~/Shogi/YaneuraOu-4.79/elmo.sdt5/」を開き、「Files of type」を「すべてのファイル」に切り替えます。そして、「YaneuraOu-by-gcc」を選択して「Open」を押してください。左ペインの「Personal」をクリックするとホームディレクトリが開くので、そこからたどっていくと良いでしょう。

続いて、エンジン設定ダイアログが開きます。推奨設定は以下の通りです。

  • BookDepthLimit: 0
  • BookMoves: 200
  • ConsiderBookMoveCount: True
  • MinimumThinkingTime: 1000
  • NetworkDelay: 0
  • NetworkDelay2: 0

設定後、「OK」を押します。

これで、エンジン一覧に「elmo STD5版」が追加されます。「OK」を押してエンジン一覧ダイアログを閉じましょう。対局を始めるには、ツールバーの「対局」をクリックします。

対局者に「elmo STD5版」を選んで、対局を開始することができます。「elmo」同士で対戦させることもできますし、「平成将棋合戦ぽんぽこ」など他のエンジンと対戦させることもできます。