YaneuraOuさんの将棋ソフトのUbuntuへのインストール(2020/7 バージョン)
目次
- 1. 概要
- 2. リンク
- 3. エンジン部分のインストール
- 3.1. Ubuntuでコンパイル
- 3.2. 手順
- 3.3. ゼロの評価関数ファイルの生成
- 3.4. 動作確認
- 3.5. 評価関数の準備
- 3.6. KristallweizenさんのKristallweizen_kaiV0.4.zipの場合
- 3.7. 評価関数 orqha レーティング約4330の評価関数
- 3.8. Elmo wcsc29バージョン
- 3.9. 定跡の準備
- 3.10. YaneuraOuさんの定跡
- 3.11. 解凍したものを book というディレクトリを作成していれる
- 3.12. 起動用のスクリプトファイルを用意
- 3.13. YaneuraOu-by-gccの起動用スクリプトファイル作成
- 3.14. 実行権限を与える
- 3.15. ファイルの再配置
- 3.16. エンジンの動作確認
- 4. GUIの準備
- 5. xboardの場合
- 6. Android用のYaneuraOuをビルド
- 7. Android用のYaneuraOuをビルド2(2021/05/17)
- 8. 今後
- 9. この文書のチェンジログ
1 概要
- ここ数年YaneuraOuさんの将棋ライブラリを利用した将棋ソフトがコンピューター将棋大会で優勝
- C++とアセンブラベース
- Stockfishというチェスソフトをかなり取り込んだ作りになってるらしい
- GitHubにてソース公開されている
- バージョンによって使い方が相当変化している
- 昔のバージョンに戻せば、過去の動画の使い方も出来る(今は同じ方法で同じように使えない)
- スレッド等他のライブラリとの依存関係があり、使う難易度が高い
2 リンク
- GitHub https://github.com/yaneurao/YaneuraOu
- 公式サイト?ブログ? http://yaneuraou.yaneu.com/
- リリース(評価関数も含まれているもの) https://github.com/yaneurao/YaneuraOu/releases
- V4.91(2020/07/07時点で最新) https://github.com/yaneurao/YaneuraOu/releases/download/V4.91/YaneuraOu2019V491all.zip
- 定跡 https://github.com/yaneurao/YaneuraOu/blob/master/docs/news.md
- テラショック定跡 user_book1.db https://github.com/yaneurao/YaneuraOu/releases/download/BOOK-700T-Shock/700T-shock-book.zip
- やねうら王 定跡ファイル詰め合わせ https://github.com/yaneurao/YaneuraOu/releases/tag/v4.73_book
- NNUE-K-P-256-32-32用評価関数バイナリその2 小さい評価関数 https://github.com/yaneurao/YaneuraOu/releases/tag/20190212_k-p-256-32-32 https://github.com/yaneurao/YaneuraOu/releases/download/20190212_k-p-256-32-32/20190212_k-p-256-32-32.zip
- 評価関数
- YaneuraOuさん WCS29優勝の評価関数公開されていない?不明?有料化?
- Kristallweizen WCSC29準優勝https://github.com/Tama4649/Kristallweizen
- https://www.qhapaq.org/shogi/kifdb/
- (最新版)評価関数 orqha1018 レーティング約4390の評価関数 https://www.qhapaq.org/static/media/bin/orqha1018.7z
- 評価関数 orqha レーティング約4330の評価関数 https://www.qhapaq.org/static/media/bin/orqha.7z
- (最新版)評価関数 shinderella レーティング約4260の振り飛車を指す評価関数 https://www.qhapaq.org/static/media/bin/shinderella-0815.7z
- レーティング約4260の振り飛車を指す評価関数です https://www.qhapaq.org/static/media/bin/shinderella-0825.7z
- Aprey https://hiraokatakuya.github.io/apery/
- Aprey GitHub https://github.com/HiraokaTakuya/apery
- AperyのWCSC26のファイル(評価関数含む これがそのままYaneuraOuで使えると記述あり)https://github.com/HiraokaTakuya/apery/releases/tag/WCSC26
- AperyのWCSC28のファイル(評価関数含む こちらは使えるか不明) https://github.com/HiraokaTakuya/apery/releases/tag/WCSC28
- Elmo((2019は4位, 2020/5 3位だけど、2020/5バージョンは右のURLでまだ入手不可能みたい 2017優勝) https://mk-takizawa.github.io/elmo/howtouse_elmo.html
- elmo_wcsc29_eval.zip(2019は4位) https://drive.google.com/open?id=1Q66LqVx4bCCOkHbMyWbIrCnQbmk2gNEF
- YaneuraOuさん https://github.com/yaneurao/YaneuraOu/releases
- ゼロベース評価関数
- NNUE-K-P-256-32-32用評価関数バイナリその2 https://github.com/yaneurao/YaneuraOu/releases/tag/20190212_k-p-256-32-32
- 過去のプロジェクト https://github.com/yaneurao/YaneuraOu/blob/master/docs/README2017.md
- リゼロ評価関数 epoch 8 (elmo(WCSC27)にまだR50ぐらい負けているようです。) https://drive.google.com/file/d/0Bzbi5rbfN85NMHd0OEUxcUVJQW8/view
- ゼロベース評価関数
- 評価関数+改造
- 水匠2(2020/5優勝 「すいしょう」と読むらしい) https://twitter.com/tayayan_ts
- 探索部カスタマイズある?
- ここからだとログイン無しでダウンロード出来るみたい https://migigyoku.com/?p=3132
- https://twitter.com/_illqha
- https://twitter.com/tayayan_ts
- 水匠2(2020/5優勝 「すいしょう」と読むらしい) https://twitter.com/tayayan_ts
- GUI
- パッケージ化されているもの
- xboard, uci2wb
- tagua shogivar (まだ試してない)
- MyShogi https://github.com/yaneurao/MyShogi
- 将棋所 http://shogidokoro.starfree.jp/download.html
- パッケージ化されているもの
- Python
3 エンジン部分のインストール
3.1 Ubuntuでコンパイル
3.1.1 以下の操作を行っている動画
3.2 手順
3.2.1 依存パッケージのインストール
- 色々あると思う、私は色々入れていたので、私の環境の場合以下を入れる必要があった
sudo apt install bash vim clang make lldb gdb git libc6-dev wget unar sudo apt install libomp-dev libopenblas-dev sudo apt install uci2wb xboard
3.2.2 利用PCのCPUチェック
- avx拡張命令の利用可能チェック
grep -i avx /proc/cpuinfo
- sse拡張命令の利用可能チェック
grep -i sse /proc/cpuinfo
3.2.3 ソースゲット
git clone https://github.com/yaneurao/YaneuraOu.git
3.2.4 ソースバックアップ
tar cvzf YaneuraOu.org.tgz YaneuraOu
3.2.5 コンパイル(トーナメントタイプの場合)
- CPUがSSE42タイプの場合(私のマシンのCPUはタイプが古くAVX2タイプをサポートしていないため)
- AVX2タイプのCPU命令可能な場合はSSE42の部分をAVX2にすればOK
- SSE42もダメな場合はNO_SSEや、OTHER、ZEN2というCPUタイプも選択可能
- UbuntuなどLinuxの場合は/proc/cpuinfoで利用可能かどうか確認可能 ( grep -i sse4 /proc/cpuinfo, grep -i avx2 /proc/cpuinfo 等)
cd YaneuraOu/source make clean tournament TARGET_CPU=SSE42
- これでコンパイルが実行され、YaneuraOu-by-gcc っていう実行可能なファイルが生成される(必要なライブラリやツールがインストールされていた場合、不足している場合はエラーメッセージから必要なパッケージをインストールしていく)
- 取得してソースバックアップし、コンパイル後にコンパイル後のファイルも保存するスクリプトが以下
- 現状はSSE42用(CPUタイプ)
- それ以外のCPUタイプ希望の場合は他のものを有効にし(行頭の#をとる)、SSE42のところをコメントに(行頭に#をいれる)
#!/bin/bash #TARGET_CPU=AVX512 #TARGET_CPU=AVX2 TARGET_CPU=SSE42 #TARGET_CPU=SSE41 #TARGET_CPU=SSE2 #TARGET_CPU=NO_SSE #TARGET_CPU=OTHER #TARGET_CPU=ZEN2 D=`date +%Y%m%d` DT=`date +%Y%m%d_%H%M` mkdir ${DT} cd ${DT} git clone https://github.com/yaneurao/YaneuraOu.git tar cvzf YaneuraOu_${DT}.tgz YaneuraOu/ (cd YaneuraOu/source && make clean tournament TARGET_CPU=${TARGET_CPU}) 2>&1 | tee ./log001.txt tar cvzf YaneuraOu_${DT}_build.tgz YaneuraOu/ ( mkdir LEARN cd LEARN tar xvzf ../YaneuraOu_${DT}.tgz (cd YaneuraOu/source && make clean evallearn TARGET_CPU=${TARGET_CPU}) 2>&1 | tee ./log002.txt )
3.2.6 コンパイル(学習タイプの場合、評価関数ファイルを生成できるタイプ)
- CPUがSSE42タイプの場合(私のマシンのCPUはタイプが古くAVX2タイプをサポートしていないため)
- AVX2タイプのCPU命令可能な場合はSSE42の部分をAVX2にすればOK
- SSE42もダメな場合はNO_SSEや、OTHER、ZEN2というCPUタイプも選択可能
- UbuntuなどLinuxの場合は/proc/cpuinfoで利用可能かどうか確認可能 ( grep -i sse4 /proc/cpuinfo, grep -i avx2 /proc/cpuinfo 等)
make clean evallearn TARGET_CPU=SSE42
- 同じく YaneuraOu-by-gcc というファイルが生成される
- コンパイルする前にLEARNディレクトリにソースを解凍してそこで行った
mkdir LEARN cd LEARN tar xvzf ../YaneuraOu.org.tgz cd YaneuraOu/source
3.3 ゼロの評価関数ファイルの生成
- 学習タイプの YaneuraOu-by-gcc の起動
./YaneuraOu-by-gcc
- YaneuraOu/docs/解説.txt にある文書の手順で行う
EvalDir xyz // 存在しないフォルダを評価関数の読み込みフォルダに指定する SkipLoadingEval true // こうしておけば評価関数ファイルの読み込みに失敗してもエラーにならない isready // このタイミングで評価関数が読み込まれるが存在しないフォルダから読み込むのでゼロクリアされた評価関数を読み込んだことになる。 EvalSaveDir eval_zero // 保存フォルダ名を"eval_zero"に設定(何でも良い) test evalsave // メモリ上の評価関数を保存するコマンド
- 停止
quit // 停止
- これにより eval_zero/nn.bin に評価関数ファイル nn.binが生成される
- nn.binを競技用YaneuraOu-by-gccのあるディレクトリのevalの中に入れる
cp -i eval_zero/nn.bin ../../../YaneuraOu/source/eval/
3.4 動作確認
- 以下のコマンドで起動
./YaneuraOu-by-gcc
- usiコマンドをいれて動作確認(usi,d等)
usi isready d
- quitで停止
quit
3.5 評価関数の準備
- いくつか有力なものある
- どれかを選択し、解凍したnn.binを eval ディレクトリにいれる
3.6 KristallweizenさんのKristallweizen_kaiV0.4.zipの場合
wget https://github.com/Tama4649/Kristallweizen/raw/master/Kristallweizen_kaiV0.4.zip unar Kristallweizen_kaiV0.4.zip
3.7 評価関数 orqha レーティング約4330の評価関数
wget https://www.qhapaq.org/static/media/bin/orqha.7z unar orqha.7z
3.8 Elmo wcsc29バージョン
- elmo_wcsc29_eval.zip(2019は4位) https://drive.google.com/open?id=1Q66LqVx4bCCOkHbMyWbIrCnQbmk2gNEF をここからダウンロード
unar elmo_wcsc29_eval.zip
3.9 定跡の準備
3.10 YaneuraOuさんの定跡
wget https://github.com/yaneurao/YaneuraOu/releases/download/BOOK-700T-Shock/700T-shock-book.zip https://github.com/yaneurao/YaneuraOu/releases/download/v4.73_book/standard_book.zip https://github.com/yaneurao/YaneuraOu/releases/download/v4.73_book/yaneura_book1_V101.zip https://github.com/yaneurao/YaneuraOu/releases/download/v4.73_book/yaneura_book3.zip unar 700T-shock-book.zip unar standard_book.zip unar yaneura_book1_V101.zip unar yaneura_book3.zip
3.11 解凍したものを book というディレクトリを作成していれる
3.12 起動用のスクリプトファイルを用意
3.13 YaneuraOu-by-gccの起動用スクリプトファイル作成
#!/bin/sh cd `dirname $0` ./YaneuraOu-by-gcc
3.14 実行権限を与える
chmod +x 作成したスクリプトファイル名
- 例 startYaneuraOu.shなら
chmod +x startYaneuraOu.sh
3.15 ファイルの再配置
- YaneuraOu-by-gcc はトーナメント用の実行ファイルを利用
. ├── FEN ├── YaneuraOu-by-gcc ├── book │ ├── standard_book.db │ ├── yaneura_book1.db │ └── yaneura_book3.db ├── eval │ └── nn.bin └── startYaneuraOu.sh
3.16 エンジンの動作確認
- startYaneuraOu.shを起動した後に以下を入れる
- isready に対して readyok が返ってきたらOK (評価関数や、定跡ファイルとしてどれが利用されているか確認すること)
usi isready quit
4 GUIの準備
5 xboardの場合
- インストールが一番簡単
- 見た目がイマイチ
xboard -fcp "uci2wb debug -s /opt/shogi/20200707/startYaneuraOu.sh" -scp "uci2wb debug -s /opt/shogi/20200707/startYaneuraOu.sh" -variant shogi -coords -pid /usr/share/games/xboard/themes/shogi/ -highlightSquareColor "#00FFFF" -clockMode true -tc 5 -mps 30 -showMoveTime true -positionDir /opt/shogi/20200707/FEN -useBoardTexture true -liteBackTextureFile /usr/share/games/xboard/themes/textures/wood_d.png -darkBackTextureFile /usr/share/games/xboard/themes/textures/wood_d.png
6 Android用のYaneuraOuをビルド
- Android用のバイナリを作るためのファイルも配布物に同梱されているらしいことに気づいたので、コンパイルしてみました。
- 前準備として、Andrido NDKをインストールする必要があります。https://youtu.be/3U5_330aySk
6.1 以下の操作を行っている動画
6.2 Android用のYaneuraOuをビルド する手順
6.2.1 最新バージョンをコンパイル(2021/01/19時点)
- 頻繁に更新されるため、これ以下の方法では、今後のバージョンコンパイルできない可能性あり
- gitのタグだと 9bbd0f38498b22e9f3e6cf9493a7f8849c02e496 のものは以下でコンパイル出来ている(通常モードは作成可だった。能詰将棋エンジンはコンパイル中にエラーになる)
- YaneuraOuのソースゲット
git clone https://github.com/yaneurao/YaneuraOu.git
- ソースのバックアップ
- 最初の命令はdateコマンドで日付と時間をバックアップファイル名にする方法
- 後の方はYaneuraOu_000.tgz というファイル名でバックアップ。別の名前でバックアップとっておいてもよい
- 別のツールでバックアップもOK
- バックアップ取らない選択もあり
tar cvzf YaneuraOu_`date +%Y%m%d_%H%M`.tgz YaneuraOu/ とか tar cvzf YaneuraOu_000.tgz YaneuraOu/
- コンパイル
- コンパイルできるディレクトリに移動YaneuraOu/jni/
cd YaneuraOu/jni/
- 以下は64bit用の設定。
- TARGET_ARCH_ABI=armeabi-v7a とすれば32bit用を作成可能
- 他のCPUのタイプも含めて全部コンパイルするには TARGET_ARCH_ABI=なんちゃら を省略すればOK
ndk-build TARGET_ARCH_ABI=arm64-v8a
- 詰将棋エンジンをコンパイルするには以下(ただし、このバージョンではエラー発生してビルド失敗する)
- ENGINE_NAME=YaneuraOu_MATE_arm64-v8a をいれてないとコンパイルエラーになる
ndk-build YANEURAOU_EDITION=MATE_ENGINE TARGET_ARCH_ABI=arm64-v8a ENGINE_NAME=YaneuraOu_MATE_arm64-v8a
6.2.2 リリースバージョンをコンパイル(version4.88)
- YaneuraOuのソースゲット
- https://github.com/ai5/YaneuraOuの右のReleasehttps://github.com/ai5/YaneuraOu/releasesに「Android版 やねうら王」となってる最新のところからダウンロード。2019/1/19時点で最新はv4.88https://github.com/ai5/YaneuraOu/releases/tag/android_488。zip版でもtar.gz版でもOK。私はtar.gzバージョンをダウンロードした。
- もっと新しいバージョンでてるなら、そちらを選択してください。2021/1/19時点では4.88が最新
- こちらは詰将棋エンジンバージョンもコンパイルは成功する。ただし、詰将棋をAndroidでとかせようとすると、セグメーテーションエラー発生。通常バージョンは正常動作していた。
- Android版 やねうら王v4.88のソース解凍
tar xvzf YaneuraOu-android_488.tar.gz
- Android版 やねうら王v4.88のコンパイル
- arm64-v8a (64bitCPU用)の詰将棋エンジンを作成します。
cd YaneuraOu-android_488/jni/ ndk-build ENGINE_TARGET=MATE_ENGINE TARGET_ARCH_ABI=arm64-v8a
- ../libs/arm64-v8a/YaneuraOu-mate-arm64-v8a が作成されます。
- ただ私がUmidigi F1Playで動作確認したところ、go mate infiniteするとセグメンテーションエラーで落ちてしまい、詰将棋とけませんでした。
- エンジンオプションでなんとかならないか色々試しました(Hash減らすとか)が上手く動作せず
- デバッガーオプションつけて、デバッガーでそのうち確認してみようと思ってますが。まだやってません。
- arm64-v8a (64bitCPU用)の通常バージョンを作成します。
ndk-build TARGET_ARCH_ABI=arm64-v8a
- ../libs/arm64-v8a/YaneuraOu-nnue-halfkp256-arm64-v8aが作成されます。
- こちらは上手く動作しました。Umidigi F1Playで。評価関数と、定跡ファイルをいれれば
6.3 この章のまとめ
- Android用のバイナリをクロスコンパイルしてみた。
- 通常の将棋エンジンは、上手くコンパイル実行できていました。また動作確認結果も良好。
- 詰将棋エンジンは、最新のソースでは上手くコンパイルできず、リリースバージョンでも、コンパイルは出来るものの、詰将棋をとかせる命令(go mate infinite等))を入れるとセグメンテーションエラーが発生
7 Android用のYaneuraOuをビルド2(2021/05/17)
- 前からノーマル将棋エンジンはクロスコンパイルに成功していた
- 詰将棋エンジンはv4.88はコンパイルには成功するものの、動かすとセグメンテーションエラーで動かなかった
- 詰将棋エンジンは最新バージョンでコンパイルに成功しなかった。(色々エラー出て)
- 久しぶりにGitHubから最新ソースをゲットして、クロスコンパイルを環境変数の設定色々変更してやってみたら、上手くいった
7.1 以下の操作を行っている動画
7.2 Android用のYaneuraOuをビルド2(2021/05/17)を行う手順
- 前準備として、Andrido NDKをインストールする必要があります。https://youtu.be/3U5_330aySk
- sdkmanager –list_installed で確認したインストール済みのAndroid SDK NDK関係は以下の通り
- コンパイルに利用したndkはndk-bundleを利用した
Installed packages:=====================] 100% Fetch remote repository... Path | Version | Description | Location ------- | ------- | ------- | ------- build-tools;24.0.3 | 24.0.3 | Android SDK Build-Tools 24.0.3 | build-tools/24.0.3/ build-tools;29.0.2 | 29.0.2 | Android SDK Build-Tools 29.0.2 | build-tools/29.0.2/ build-tools;30.0.2 | 30.0.2 | Android SDK Build-Tools 30.0.2 | build-tools/30.0.2/ build-tools;30.0.3 | 30.0.3 | Android SDK Build-Tools 30.0.3 | build-tools/30.0.3/ build-tools;31.0.0-rc2 | 31.0.0 rc2 | Android SDK Build-Tools 31-rc2 | build-tools/31.0.0-rc2/ cmake;3.10.2.4988404 | 3.10.2 | CMake 3.10.2.4988404 | cmake/3.10.2.4988404/ cmake;3.6.4111459 | 3.6.4111459 | CMake 3.6.4111459 | cmake/3.6.4111459/ cmdline-tools;latest | 4.0 | Android SDK Command-line Tools (latest) | cmdline-tools/latest/ emulator | 30.6.5 | Android Emulator | emulator/ ndk-bundle | 22.1.7171670 | NDK | ndk-bundle/ ndk;19.2.5345600 | 19.2.5345600 | NDK (Side by side) 19.2.5345600 | ndk/19.2.5345600/ patcher;v4 | 1 | SDK Patch Applier v4 | patcher/v4/ platform-tools | 31.0.2 | Android SDK Platform-Tools | platform-tools/ platforms;android-27 | 3 | Android SDK Platform 27 | platforms/android-27/ platforms;android-29 | 5 | Android SDK Platform 29 | platforms/android-29/ platforms;android-30 | 3 | Android SDK Platform 30 | platforms/android-30/
- 頻繁に更新されるため、これ以下の方法では、今後のバージョンコンパイルできない可能性あり
- gitのタグだと a866bafb71aae5833be3d34c1227564c6ccb323b のものは以下でコンパイル出来ている。
- YaneuraOuさんのソースの更新頻度高く、新しいバージョンで同じ手順で成功しなくなるかも。その時は上の git の id に git checkout a866bafb71aae5833be3d34c1227564c6ccb323b で戻して、そこで同じ手順でやれば上手くいくはず
- 動画では、Docker Image( https://youtu.be/473GGAkxqy8に作成方法ある)を使ってコンパイルしています。
- YaneuraOuのソースゲット
git clone https://github.com/yaneurao/YaneuraOu.git
- ソースのバックアップ
- 最初の命令はdateコマンドで日付と時間をバックアップファイル名にする方法
- 後の方はYaneuraOu_000.tgz というファイル名でバックアップ。別の名前でバックアップとっておいてもよい
- 別のツールでバックアップもOK
- バックアップ取らない選択もあり
tar cvzf YaneuraOu_`date +%Y%m%d_%H%M`.tgz YaneuraOu/ とか tar cvzf YaneuraOu_000.tgz YaneuraOu/
- コンパイル
- コンパイルできるディレクトリに移動YaneuraOu/jni/
- 備考 YaneuraOu/jni/ でなく YaneuraOu/ ディレクトリでもコンパイルできた
cd YaneuraOu/jni/
- 以下は64bit用の設定。
- TARGET_ARCH_ABI=armeabi-v7a とすれば32bit用を作成可能
- 他のCPUのタイプも含めて全部コンパイルするには TARGET_ARCH_ABI=なんちゃら を省略すればOK
- 実行ファイルのバックアップと、転送の手順は省略している
- この実行ファイルの動作確認には、評価関数ファイルが必要
- 定跡ファイルもあった方が良い
ndk-build TARGET_ARCH_ABI=arm64-v8a clean #掃除 ndk-build TARGET_ARCH_ABI=arm64-v8a mkdir -p arm64-v8a/ #バックアップ用のディレクトリ作成 mv ../libs/arm64-v8a/YaneuraOu_NNUE_arm64-v8a arm64-v8a/ # 消さないようにビルドしたバイナリを移動
- コンパイルできるディレクトリに移動YaneuraOu/jni/
- tanuki詰将棋エンジンコンパイル
- 詰将棋エンジンをコンパイルするには以下
- ENGINE_NAME に設定必要
- YANEURAOU_EDITION は MATE_ENGINE だとリンク時にエラー発生
- YANEURAOU_EDITION は TANUKI_MATE_ENGINE か YANEURAOU_ENGINE_MATERIAL なら ビルド可能
- YANEURAOU_EDITION=TANUKI_MATE_ENGINE と設定するとtanuki詰将棋エンジンビルド
ndk-build YANEURAOU_EDITION=TANUKI_MATE_ENGINE TARGET_ARCH_ABI=arm64-v8a ENGINE_NAME=Tanuki_MATE_arm64-v8a clean # 最初にファイルクリア ndk-build YANEURAOU_EDITION=TANUKI_MATE_ENGINE TARGET_ARCH_ABI=arm64-v8a ENGINE_NAME=Tanuki_MATE_arm64-v8a 2>&1 | tee log_tanukimate001.txt # ビルド mkdir -p arm64-v8a/ mv ../libs/arm64-v8a/Tanuki_MATE_arm64-v8a_arm64-v8a arm64-v8a/ # 消さないようにビルドしたバイナリを移動
- 詰将棋エンジンをコンパイルするには以下
- YaneuraOu詰将棋エンジンコンパイル
- YANEURAOU_EDITION=YANEURAOU_ENGINE_MATERIALと設定するとYaneuraOu詰将棋エンジンビルド
ndk-build YANEURAOU_EDITION=YANEURAOU_ENGINE_MATERIAL TARGET_ARCH_ABI=arm64-v8a ENGINE_NAME=YaneuraOu_MATE_arm64-v8a clean # 最初にファイルクリア ndk-build YANEURAOU_EDITION=YANEURAOU_ENGINE_MATERIAL TARGET_ARCH_ABI=arm64-v8a ENGINE_NAME=YaneuraOu_MATE_arm64-v8a 2>&1 | tee log_yanemate001.txt # ビルド mkdir -p arm64-v8a/ mv ../libs/arm64-v8a/YaneuraOu_MATE_arm64-v8a_arm64-v8a arm64-v8a/ # 消さないようにビルドしたバイナリを移動
7.3 動作確認
7.3.1 ビルドしたファイル転送
- 動作確認するAndroid端末とUSB接続してから以下を実行
adb push arm64-v8a/* /data/local/tmp # or # adb push ./arm64-v8a/YaneuraOu_NNUE_arm64-v8a ./arm64-v8a/Tanuki_MATE_arm64-v8a_arm64-v8a ./arm64-v8a/YaneuraOu_MATE_arm64-v8a_arm64-v8a /data/local/tmp
7.3.2 実行
- tanuki詰将棋エンジンの実行
adb shell /data/local/tmp/Tanuki_MATE_arm64-v8a_arm64-v8a
- YaneuraOu詰将棋エンジンの実行
adb shell /data/local/tmp/YaneuraOu_MATE_arm64-v8a_arm64-v8a
- USIコマンド
- 最初はこれをいれて、エンター
usi
- 次にこれをいれて、エンター
isready
- テスト用の盤面設定
position lnsgkgsnl/1r5b1/ppp1+Ppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL b N 1
- 盤面確認(YaneuraOuさんソフト用のUSI拡張コマンド)
d
- 詰将棋解く (制限時間60秒 秒はmsec単位で与える。無制限の場合は infinite)
go mate 60000
- 終了
quit
7.4 この章のまとめ
- Android用のバイナリをクロスコンパイルしてみた。
- 昔ダメだった、詰将棋エンジンのコンパイルと動作に成功した。(ダメだったのは、コンパイルオプションがまずかったのか、他の原因なのか調べてない)
- コンパイル時の環境変数の設定を変更したら、最新版のソースで上手くいった
- リリースバージョンのv4.88では詰将棋エンジン関係は未確認
8 今後
- 今後も文書追加していきます。
9 この文書のチェンジログ
- 2020/07/07 初版
- 2021/01/19 Android用のYaneuraOuをビルド の章追加
- 2021/05/17 Android用のYaneuraOuをビルド2 の章追加(最新バージョンのソースで、詰将棋エンジンのコンパイルと動作に成功)
Created: 2021-05-19 水 06:52