昼行灯行状記 Ver.6
とあるフリー編集者の日常

Macで将棋検討 – 将棋所Macを使う

6月 22nd 2021 in Mac, shogi
[`evernote` not found]


やねうら王のソースをビルドする

GitHub/yaneurao/Yaneuraouからやねうら王のソースをダウンロード

AppleSiliconのMacで、Rosetta2を使う場合は、Rosetta2がAVXサポートしていない(SSE4.2まで)ので、MakefileのTERGET_CPUの項目をSSE42に変更(新しめのIntel Macではそのままでok)

#TARGET_CPU = AVX2
TARGET_CPU = SSE42

コンパイラをg++に変更(もちろんxcode入ってますよね?)

COMPILER = g++
#COMPILER = clang++

※macOS 11 (BigSur)ではg++にするだけでok、macOS 10.xでは別途g++の最新版を入れる必要がありそう。詳細は検索してください。

 









あとはmakeするだけ……なのだけど、Intelバイナリでビルドする必要があるため、ユニバーサルバイナリのターミナル.appを明示的にRosettaを使用して開く必要があります。

ターミナルの情報を表示し、「Rosettaを使用して開く」にチェックを付けてターミナルを開きます。

 









makeを実行。YaneuraOu-by-gccという実行ファイルがビルドされます。




 

 









これを開いて動作確認。ターミナルウインドウにusiと入力し、リターン。「usiok」と返ってくれば動作確認完了です。

 

 









エンジンのフォルダ構成はWindowsと同じようにして、Windowsの実行ファイル(.exeファイル)の代わりにビルドしたバイナリを置きます。

engine_name.txtを評価関数や探索部に合わせて変えておきます。図は探索部にやねうら王6.03を使った水匠3改で、M1 MacのRosetta2で動作させることもあり、「Suisho3Kai/YO6.03_NNUE_Rosetta2」としています。

 









将棋所Macをダウンロード

将棋所Macをダウンロード・インストールします。High Sierra以降で使えます。

エンジン設定からビルドしたエンジンを設定すれば、検討・解析が行えます。

 

 

 

 

 









おまけ:ARM64バイナリでビルドする

source/extra/bitop.hの174行目の#elif文の最後に、

|| defined(__arm64__)

を括弧の数に注意して追加すれば、一応ARM64でのバイナリをネイティブのターミナルから通せる…けど、恐らくは浮動小数点演算の専用命令を使ってないため、Rosetta2使用よりNPSが出てません。誰かえらいプログラマのひと、なんとかして欲しいなぁ……。




required



required - won't be displayed


Your Comment:

1月に将棋所で検討してるという記事を書き、そのうちビルド方法など書こうと思いつつ、なんだかんだと以来半年も経ってしまいました。4月に指導員資格試験(といっても1次免除で面接のみ)を受け、指導員としての活動も始まりました。
週2で将棋教室の担当日があるので、そのときに教室のPCで検討してもいいのだけど、やっぱり自宅のMacで検討・解析をしたい…と思っていたところ、Facebookで西川さんがWineskinServerの記事をPC Watrchに書いたと言ってたのを見て、将棋GUIをM1 MacBook Airで動作させることができました。
以下にMacで将棋ソフトを使って検討する方法をまとめてみます。詳細は個別の記事を参照してください。
将棋所でMacで動作するバイナリをビルドして使う

 詳細記事はこちら。
 1つめは、探索部(やねうら王)をソースからビルドして、GUIは将棋所Macを使うという方法。Makefileを書き換えるだけでBig Surならそのまま通る(High Sierraではg++のインストールなどちと面倒だった)ので、xcodeがすでに入ってればこちらがお手軽かもしれません。ソースからのビルドなので、最新のやねうら王を使えるというメリットもあります。
GUIは将棋所を使うので、そこで好き嫌いが出るかもしれません。また、ビルドもAppleSiliconネイティブではなく、Rosetta2を用いたx86バイナリのビルド方法になります。
 
※ソースの修正でAppleSiliconネイティブでのビルドも可能ですが、現状ではビルドできるというレベルの修正しか行っていないので、Rosetta2を使う方が現状では速いと思います。Rosetta2優秀。

WineskinServer経由で将棋GUIを動かしWindowsバイナリを使う
西川さんの記事を参考に将棋GUIをWinskinServerで動かすことができ、エンジンの設定も行えたので、メモとして残しておきます。
詳細記事はこちら。
こちらは将棋GUIを動作させるまでが一手間ですが、Windows用のバイナリをそのまま使うことができ、機能が豊富な将棋GUIをそのまま使えるというメリットがあります。
 
※本文内で用いている棋譜は、上田現女流四段(当時女流三段)との角落ちの棋譜です(2014/11/24対局)
 

Previous Entry

Windowsでの検討で広く使われているShogiGUIですが、残念ながらmasOSへの対応予定はないと作者の方が述べておられます。それでもなんとか「MacでShogiGUIを使いたい」という物好きのために、WineskinServerを使ってShogiGUIを動作指せるためのメモです。
WineskinServerのインストール
GitHubからWineskinServerプロジェクトページ下部にある「Manually Installation:Downkiad Wineskin Winery」から最新版のアーカイブ(.txz)をダウンロードします。
以下将棋GUIインストールの前までははPC Watchの西川さんの記事を参考にしてください。将棋GUIインストール部分も記事のアプリインストール部分が参考になります。
 

将棋GUIのインストール
ShogiGUIのインストーラをダウンロードしておきます。
次にWrapperを生成します。名前はShogiGUIとでもしておきましょう。
~/Applications/Wineskinの下に生成されたWrapper(ShogiGUI.app)をダブルクリックし、パネルから「Install Software」をクリックします。
「Create Setup Executable」をクリックし、ShogiGUIのインストーラを指定するとインストールが始まります。

まだ日本語が化けていますが、気にせずインストールを進めます(後段で修正します)。
 
「デスクトップにショートカットを表示する」のチェックボックスは外しておいてもokでしょう。

インストールが終わると、実行ファイルを指定するダイアログが表示されます。アンインストーラになっているので、ShogiGUI.exeを指定します。
 
 

代替フォントの指定と動作環境の整備
日本語を表示できるようにします。Wrapperのメニューから「Advanced」をクリックし、「Tools」タブの中央にある「Winetricks」をクリックします。
 

検索フィールドに「fakejapanese」と入力し、「Fonts」から「fakejapanese」関連を図のようにチェックし、「Run」をクリックします。「Yes」を選ぶとインストールが開始され、「Close」がアクティブになれば終了です。
 

ShogiGUIの動作には.NET 4.5以降の環境が必要なため、必要なファイルをインストールします。
「Winetricks」の検索フィールドに「.net」と入力し「dlls」を下方にスクロール、「MS .NET 4.8」を選択します(ここでは「dotnetcpredesktop3」および「mfc70」も選択していますが、これは必要ないかもしれません:未検証)。
選択したら同様に「Run」をクリックし「Yes」でインストールされます。
 

インストール終了後、「Close」をクリックし、「Winetricks」の「Tools」タブの右下にある「Test Run」をクリックして、ShogiGUIが起動するかテストしてみましょう。
 
 

ShogiGUIが立ち上がれば成功です。
 
 
 

エンジンの登録
Windows用のバイナリをそのまま登録できます。登録のダイアログはWindowsに準拠しているため、Macユーザーにはなじみのないものかもしれません。「My Documents」の下がそのまま「ホーム」、「My Computer」の下の「(C:)」は、Wrapperを右クリックし「パッケージの内容を表示」させたときの「drive_c」フォルダになります。
このdrive_c/Program Files(x86)の下にShogiGUIフォルダがあります。このフォルダの下に将棋エンジンのフォルダを入れておけば、Wrapper(ShogiGUI.app)をコピーするだけで他のMacにも簡単に環境を移動できます。
M1 Macの場合は、前の記事でも書いたようにRosetta2がSSE4.2までのサポートなので、WindowsバイナリはSSE4.2版を、新しめのIntel MacではAVX2版を使うのがよいでしょう。

ちょっと重たいかな?
GUIの操作がちょっともっさりしているのだけど、解析したりする分には十分な感じです。これでMacでも評価値グラフや、継ぎ盤が使えるのは嬉しいですね。

Next Entry

Blogroll