Macにコンピュータ将棋ソフト「elmo」を導入した

2019年8月18日最終更新

Macにコンピュータ将棋ソフト「elmo(エルモ)」を導入することに成功したので、以下にその方法を残しておきます。

実は詳しいことはよく分かっていないので、もしかしたら間違っている表現などあるかもしれません。あらかじめご了承下さい。コメントなどでご指導頂けると幸いですm(_  _)m

また、「以下の方法でMacにelmoを導入できて遊ぶことができたよ!」という人も、最後に一言コメントを頂けるとワタシも小躍りして喜びます(笑)

 

ワタシのelmoインストール環境

今回elmoのインストールを行った環境は以下。

MacBook Pro (Retina, Mid 2012) 15-inch

macOS Mojave バージョン10.14.6

 

コマンドラインツールのインストール

それではまずはじめに、下準備としてMacに「コマンドラインツール」というものをインストールする必要があるよう。

コマンドラインツールのインストール方法は、Macの「Finder」のメニューの「移動」→「アプリケーション」→「ユーティリティー」→ 「ターミナル」を起動し、コマンドラインに「xcode-select –install」と入力しenter。

xcode-select --install

 

以下のようなウインドウが現れるので、「インストール」をクリックし「同意」をしてコマンドラインツールをインストールします。

コマンドツールインストール

 

Homebrewのインストール

次に「Homebrew」を使ってgccとg++をインストールするため、「Homebrew」をインストールします。

Homebrewのインストールは、ターミナルに下記全文をコピペしてenter。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

 

途中で「Press RETURN to continue or any other key to abort」と出てきたらenterキーを叩いて続きをインストールします。

次に「Password:」と出てきたら、Macの管理者のパスワード(Macを立ち上げた時に入力するパスワード)を入力してenterします。

 

gccとg++のインストールと設定

gccとg++のインストール

次にHomebrewを使い「gcc」と「g++」のインストールをします。

ターミナルに、

brew install gcc

と打ってenter。

brew install g++

と打ってenter。

 

gccとg++のバージョンの確認

gccとg++のバージョンの確認をします。

ターミナルに

ls /usr/local/bin | grep gcc

と打ってenter。

ls /usr/local/bin | grep g++

と打ってenter。

「gcc-9」、「g++-9」と出ればバージョンが”9”という事になります。

 

シンボリックリンクを貼る。

上記で見つかったgccとg++にシンボリックリンクを貼ります。

ターミナルに

ln -s /usr/local/bin/gcc-9 /usr/local/bin/gcc

と入力しenter(gcc-9の部分は上記で見つかったバージョンを入力)。

g++にも同じことをします。

ターミナルに

ln -s /usr/local/bin/g++-9 /usr/local/bin/g++

と入力してenter(g++-9の部分は上記で見つかったバージョンを入力)。

 

やねうら王のダウンロード

以下のコマンドで「やねうら王」をダウンロードします。

ターミナルに

git clone https://github.com/yaneurao/YaneuraOu.git

と入力してenter。

「YaneuraOu」というフォルダが”コンピュータ”の「ユーザ/ユーザ名フォルダ/」にダウンロードされます。

ユーザフォルダの開き方は、「Finder」のメニューの「移動」→「コンピュータ」から順に開いていきます。

 

「Makefile」と「config.h」ファイルの編集

次に自分が使っているMacに合わせて、ダウンロードした「YaneuraOu」フォルダ以下に存在する「Makefile」と「config.h」ファイルの編集をします。

Macのスペックの確認

まず、自分が使っているMacを知ることから始めます。

ターミナルに

sysctl -n machdep.cpu.brand_string

と入力しenter。

「i7」や「i5」のハイフンの後の英数字をコピーして、ブラウザでGoogle検索します。

スペック検索

Google検索で一番上に出てきたページを開きます。

 

開いたページの「命令セット拡張」という項目の情報を使います。

命令セット拡張

命令セット拡張に複数の項目が書かれてある場合がありますが、ワタシのMacの場合はAVXのみのようです。

 

「Makefile」の編集

Makefileの中の情報を2箇所編集します。

ダウンロードした「YaneuraOu」フォルダ内の「source」→「Makefile」を開きます。

Makefile内の

# ターゲットCPU
# 使えるCPU拡張命令を指定する。
# ARM系ならOTHERを指定する。
# 32bit環境用はNO_SSE

#TARGET_CPU = AVX512
TARGET_CPU = AVX2
#TARGET_CPU = SSE42
#TARGET_CPU = SSE41
#TARGET_CPU = SSE2
#TARGET_CPU = NO_SSE
#TARGET_CPU = OTHER

という部分を自分のMacのスペックに合わせて書き換えます。

使うCPU拡張命令の前の「#」を消して、使わない拡張命令の前に「#」を付けます。

拡張命令の順は、

AVX512 > AVX2 > SSE42 > SSE41 > SSE2 > NOSSE > OTHER

となっています。

ワタシのMacの命令セット拡張は「AVX」でしたので、AVX2は使えません。

よって、使えるCPU拡張命令はSSE42となります。

Makefileを書き換えた後は下記のようになります。

# ターゲットCPU
# 使えるCPU拡張命令を指定する。
# ARM系ならOTHERを指定する。
# 32bit環境用はNO_SSE

#TARGET_CPU = AVX512
#TARGET_CPU = AVX2
TARGET_CPU = SSE42
#TARGET_CPU = SSE41
#TARGET_CPU = SSE2
#TARGET_CPU = NO_SSE
#TARGET_CPU = OTHER

 

ちなみに、命令セット拡張が複数表示されていた場合は、一番上に位置するものを使います。

 

次に、もう一箇所「Makefile」の中を書き換えます。

# clangでコンパイルしたほうがgccより数%速いっぽい。
#COMPILER = g++
COMPILER = clang++

という部分を、

# clangでコンパイルしたほうがgccより数%速いっぽい。
COMPILER = g++
#COMPILER = clang++

と書き換えます。

以上2箇所の編集が終わったらMakefileを「保存(上書き)」します。

 

「config.h」ファイルの編集

同じく「YaneuraOu」→「source」フォルダにある「config.h」ファイルを編集します。編集箇所は1箇所になります。

// ターゲットCPUのところだけdefineしてください。(残りは自動的にdefineされます。)

//#define USE_AVX512
#define USE_AVX2
//#define USE_SSE42
//#define USE_SSE41
//#define USE_SSE2
//#define NO_SSE

という部分を先ほどの命令セット拡張に合わせて編集します。

使用するターゲットCPUの先頭部分の「//」を削除して、使わないターゲットとなる先頭には「//」を付けます。

ワタシの場合、命令セット拡張はAVXだったので、ターゲットCPUはAVX2の下の「SSE42」という事になるので、編集すると下記のようになります。

// ターゲットCPUのところだけdefineしてください。(残りは自動的にdefineされます。)

//#define USE_AVX512
//#define USE_AVX2
#define USE_SSE42
//#define USE_SSE41
//#define USE_SSE2
//#define NO_SSE

 

「config.h」ファイルを「保存(上書き)」します。

 

やねうら王をビルドする

ターミナルでcdコマンドを使い「Makefile」のある「source」フォルダに移動します。

cd YaneuraOu/source/

 

次にターミナルに「make」と打ってenterするとやねうら王のビルドが始まります。

make

 

やねうら王の動作確認

ターミナルに「./YaneuraOu-by-gcc」と入力しenter。

./YaneuraOu-by-gcc

次の行に「usi」と入力しenter。

usi

ツラツラとメッセージが出てきて、最後に「usiok」と出ていればOK。

ターミナルに「quit」と入力しenter。

quit

 

もしも「./YaneuraOu-by-gcc」と入力した後に「Illegal instruction: 4」と言うようなエラーメッセージが出たら、自分のMacに対応していない命令セット拡張を使っている可能性があります。もう一度自分のMacが対応している命令セット拡張を確認し、「Makefile」と「config.h」の編集を見直してみましょう。

 

elmo格納フォルダの作成

elmoを格納するフォルダを「YaneuraOu」フォルダに作成します。

まず「cd」コマンドでYaneuraOuフォルダ階層に移動します。

cd ..

 

次のコマンドでYaneuraOuフォルダに「elmo」と言うフォルダを作り、その下に「book」と「eval」というフォルダを作ります。

mkdir -p elmo/{book,eval}

 

ビルドされた「YaneuraOu-by-gcc」の移動

次のコマンドで「source」フォルダ内にビルドされた「YaneuraOu-by-gcc」ファイルを「elmo」フォルダに移動します。

mv source/YaneuraOu-by-gcc elmo/

 

elmoの導入

「standard_book.db」ファイルの入手

下記のページの「3.elmoをダウンロードします(新しい方が強いです)。」から、お好きなelmoをダウンロードして下さい(ダウンロード方法も下記ページを参照)。

https://mk-takizawa.github.io/elmo/howtouse_elmo.html

elmoのダウンロード

ダウンロードしたzipファイルを解凍します。

 

この解凍した「elmo.shogi」フォルダの中でお目当のファイルは「standard_book.db」ファイルとなります。

「standard_book.db」ファイルは、「elmo.shogi」→「book」→「yaneura_format」の中にあります。

ファインダー上で「standard_book.db」ファイルを「YaneuraOu > elmo > book」フォルダへ移動します。

standard_book移動

 

「nn.bin」ファイルの入手

elmo作者のgoogleドライブより「nn.bin」ファイルを入手します。

https://drive.google.com/drive/folders/0B0XpI3oPiCmFOG1RX1FidlpqM00

この記事を書いている現在では「elmo_wcsc29.7z」(2019大会版)が最新版となっています。

入手方法は下記の通り。

  1. 「eval」をダブルクリック。

Googleドライブ

 

2. どのフォルダでも構いませんが、この記事を書いている時点では「wcsc29」が最新なので、「wcsc29」をダブルクリック。

Googleドライブ

 

3. 「elmo_wcsc29.7z」をダブルクリック。

Googleドライブ

 

4. 右上のアイコンからファイルをダウンロード。

Googleドライブ

 

ダウンロードしたファイルは7z形式で圧縮されています。

Macに7z形式を解凍するアプリが入っていない場合は、MacのApp Storeから「 The Unarchiver」などのアプリを入れて解凍します。

The Unarchiver – Mac App Store

7z解凍

 

お目当ての「nn.bin」ファイルは、解凍した「elmo_wcsc29」フォルダの「20190501」または「20190506」フォルダの中にあります。

どちらのフォルダに入っているnn.binファイルを使ってもOKです。

どちらを使うかは「memo.txt」の説明を読んで決めてみるといいでしょう。

ちなみに、最新は「20190506」の中の物のようです。

 

ファインダー上で「nn.bin」ファイルを「YaneuraOu > elmo > eval」フォルダへ移動します。

nn.bin移動

 

「YaneuraOu > elmo」フォルダの階層が以下のようになっていればOK。

elmo階層

 

elmoの動作確認

ファイルの配置がよければ、ターミナルのcdコマンドで「elmo/」フォルダへ移動します。

cd elmo/

 

YaneuraOu-by-gccを走らせ動作を確認。

./YaneuraOu-by-gcc
usi

usiokと出た後に、以下のコマンドを入力。

isready

下記のようなメッセージが出ればOK。

info string eHash Clear begin , Hash size = 128[MB]
info string eHash Clear done.
info string loading eval file : eval/nn.bin
info string read book file : book/standard_book.db
info string read book done.
info string Hash Clear begin , Hash size = 16[MB]
info string Hash Clear done.
readyok

 

quitでコマンドを終了。

quit

 

将棋ぶらうざQの導入

将棋ぶらうざQ」の公式ホームページより「Mac OS X 版」をダウンロードし、ダブルクリックしてボリュームをマウント。

マウントしたフォルダ内の「SbrowserQ.app」をMacの「ユーザ名 > アプリケーション」フォルダに移動する。

SbrowserQ移動

 

「SbrowserQ.app」の”初回の起動時のみ”、controlキーを押しながら起動。

警告が出るので「開く」をクリック(2回目からは普通に起動しても警告はでません)。

SbrowserQ.appオープン

 

将棋ぶらうざQのメニューの「設定」→「将棋エンジン設定…」を選択。

 

追加をクリック。

 

「ファイル」をクリックし、「ユーザ名/YaneuraOu/elmo/」フォルダの「YaneuraOu-by-gcc」ファイルを選択し「追加」をクリック。

elmoエンジン追加

 

以上で、将棋ソフト「elmo」との対局や棋譜解析を行うことが可能となりましたよ!

 

elmoとの対局

elmoとの対局は、将棋ぶらうざQのメニューの「対局」から「新規対局開始…」を選択。

 

「エンジン」に「YaneuraOu」を選択すればOK。

 

解析ウインドウが表示されない場合

13インチなど、Macのディスプレイのサイズが小さい場合、将棋ぶらうざQの下段に表示されるはずの解析ウインドウがほぼ表示されないことがあります。

 

これを解決するには、将棋盤の表示を小さくして、ウインドウの枠を大きくします。

 

将棋盤の表示を小さくするには、将棋ぶらうざQの画面左側のアイコンメニューの「ー」マークを何度かクリックして、将棋盤を任意の大きさに変えます。

将棋ぶらうざQのウインドウの端をドラッグしてウインドウを大きくする。

将棋ブラウザQのウインドウの下段に、解析ウインドウが表示されました。

 

終わりに

ターミナルコマンドやファイルなどの詳しいところまでは理解していないのですが、とりあえずMacにelmoを導入して遊ぶことができました。

 

よければ参考にしてみてください。

 

また、今回のelmo導入にあたって、参考にさせて頂いたサイトです。

瀧澤 誠@elmo(@mktakizawa)さん / Twitter

macOS 用パッケージマネージャー — Homebrew

Macでelmoを使ってみた – Qiita

Xcodeのコマンドラインツールでエラーが出るので入れ直した – Qiita

Mac のスペックをコマンドラインで調べる – Corredor

Macのgcc, g++をHomebrewを使って最新版にする – Qiita

シンボリックリンクの作成、更新、削除、権限変更をしました。 – Qiita

osXをmojaveにしたらgccがビルドできなくなった時の対処法 – Qiita

 

それではみなさん、良い将棋 LIFEを!(^_^)/

関連記事

www.ringocatnote.com

 

30 COMMENTS

jacbk

ありがとうございます!このサイトにたどり着くまで詰んでいたので大変参考になり無事導入できました!
一つ疑問なのですが「nn.bin」(評価関数?)ファイルの入手のあたりを水匠から代わりにダウンロードしたものと置き換えた場合水匠の評価関数になるのでしょうか?

返信する
東雲なんだな

参考にさせていただきました。

やねうら王をビルドし,将棋ぶらうざQに追加するところまではうまくいったのですが,肝心の対局で異常動作がみられます。
私が先手,やねうら王を後手として指してみたのですが,私が▲2六歩と指した所,後手の8三の歩がなぜか先手の駒になり,8四の地点に置かれてしまいました。ブラウザ右側の棋譜をみると,▲8四歩と表記されています。
この問題についてご存知の方がいれば,解決方法をお教えいただきたいです。それとも,将棋ぶらうざQ側の不具合なのでしょうか?

ちなみに,棋譜の検討は問題なく行えているようでした。

返信する
farside

将棋大好き高齢者です、5年前からMACに転身、この手の記事はいつもターミナルコマンドはわかっているものとして書かれているのでつまずくとそれまで、貴方の記事はわかり易くストレスなくMACで将棋ができるようになり大変喜んでいます、お礼を申し上げます、ありがとうございました、今後もご活躍されることを願います。

返信する
Akahise

こんにちは。

解説通りに進めてみましたが、
最初のターミナルのところでつまずいてしまいます。

ウインドウが開かないんですよね。

どなたか、
スカイプやZOOMなどで教えていただけませんでしょうか?

ご回答いただけれれば幸いです。
よろしくお願いいたします。

返信する
cos

ちょっとそのような現象を見たことがないのですが、
Command+N (Commandボタンを押しながらNを押す) でターミナルが開かないでしょうか?

返信する
Ambai

とてもわかりやすい解説で、無事導入することができました。
ありがとうございます!

返信する
nobi

おかげさまで導入できました。
丁寧な説明で大変わかりやすかったです。
ありがとうございます。

返信する
なめろう

やねうら王のビルドに失敗しており、以下のエラーメッセージが出ております。
インストール初心者なもので途方に暮れております・・・。
warning: include path for stdlibc++ headers not found; pass ‘-stdlib=libc++’ on
the command line to use the libc++ standard library instead
[-Wstdlibcxx-not-found]
In file included from main.cpp:4:
In file included from ./search.h:4:
./misc.h:4:10: fatal error: ‘chrono’ file not found
#include
^~~~~~~~
1 warning and 1 error generated.
make: *** [../obj/main.o] Error 1

返信する
SK

Makefile の中のこれを書き換えたらコンパイルは通ったみたいでした。
CFLAGS += -stdlib=libstdc++   ←これを
CFLAGS += -stdlib=libc++    ←こうする

環境: iMac Early 2009 + macOS Catalina 10.15.3 (Catalina Patcher でインストール)

返信する
やなぎ

ringocatnote 様

おかげ様で、elmoをMacに導入することができました。ありがとうございます!

一点教えて頂きたいのですが、bookフォルダにはwcsc28のelmoを、evalフォルダにはwcsc29のelmoを、導入したと思います。
レーティングサイトなどを参照する場合、どちらのelmoとして考えれば、宜しいでしょうか。
教えて頂けますと、幸いです。

宜しくお願い致します。

返信する
toktaro

MacBook Pro (Retina, 13-inch, Early 2015)
macOS Mojave(10.14.6)
で、無事elmoを入れることができました!

ありがとうございます!!

返信する
つーさん

何度やってもやねうら王のビルドでエラーが出ます。。
no rule to make target all’. stop と表示され、ほかのconfig.hの中身のcpuの部分を変更して全て試しましたが、ダメでした。

返信する
ringocat

つーさん 様
ご返答がかなり遅れてしまい申し訳ありませんでした!
記事の閲覧とコメントありがとうございます!
やねうら王の使用が変更となったためのようです。

本日(2019年8月18日)最新記事に更新しましたので、どうぞお試し下さい。

今後ともよろしくお願いいたしますm(_ _)m

返信する
Sendagaya46

ringocat様、
おかげさまでelmoを導入できました。ありがとうございました。
やねうら王ビルドの際、iMac(Late2009 21.5″)にはsse41で対応できました。
今更2009年のモデルにインストールするひとが多くいるとは思えませんが、このサイトを参考にされるどなたかの役に立てばと思い、コメントさせていただきました。

返信する
ringocat

elmo導入おめでとうございます!
また、情報もありがとうございました!

返信する
barito

このページの手順で、elmo インストールできました!
強いソフトで棋譜解析ができて感無量です!

返信する
ringocat

barito 様
elmoの導入成功おめでとうございます!
益々将棋を楽しんでください!(^o^)

返信する
ryo

初めて挑戦して無事起動しました。
コピー後のフォルダの画像が載っていたので
迷子にならずできました。
ありがとうございます。

返信する
ringocat

ryo 様
インストールおめでとうございます!!
ワタシも喜んでおります!(^o^)

返信する
れいえす

ringocat様のおかげで我が家のiMacにもelmoと技巧が導入できました。
ありがとうございます。技巧の方が少し苦労しましたが(諦め掛けた時にCXX = g++-7の7を8に変えたら出来ました←当てずっぽうです)。
コマンドのコピペで乗り切れる親切な解説、本当にありがとうございました。
息子と二人で楽しみたいと思います。

返信する
ringocat

れいえす 様
elmoの導入おめでとうございます!
今度、記事を書き換えておきます!
ご報告ありがとうございます!!

返信する
とっと

今更ですがなんとかelmoを導入することができました。
感謝の気持ちでいっぱいです。
「cd」コマンドでYaneuraOuフォルダに戻る。
$ cd ..
この部分で少し苦労しましたが他のところはスムーズに行きました。

返信する
ringocat

匿名 様
サイトの訪問とコメントありがとうございます!
無事、解析を使えるようになったのことで良かったです(^_^)/

返信する
匿名

他のサイトを見てもよく分からず諦めかけていましたが、ringocat様の丁寧な説明のおかげで自分のMacBookでも解析出来るようになりました。
本当にありがとうございます。

返信する
ringocat

匿名希望 様
サイトの訪問とコメント、ありがとうございます!
導入ができたとのことで良かったです!
週末、ゆっくり楽しんで下さいね!(^_^)

返信する
匿名希望

自分もこのサイトのお陰でやっとmacで将棋の解析出来るようになりました。
本当に感謝です。ありがとうございました。

返信する
ringocat

minna 様
サイトの訪問とコメント、ありがとうございます!
週末の喜びと合わせて、ワタシも喜んでおります!\(^o^)/

返信する
minna

私もこのサイトを見てサクッとできました!
とても分かりやすいです、ありがとうございます!

返信する
ringocat

匿名 様
サイトの訪問とコメントありがとうございます!
無事に導入できたとのことで良かったです!
ワタシも足をジタバタし喜んでおります!w

返信する
匿名

ほかのサイトじゃできませんでしたがringocatさんの説明が分かりやすくて導入出来ました!
有難うございます.

返信する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です