- OS: macOS Sonoma 14.2
- チップ: Apple M3
- メモリ: 8GB
% clang --version
Apple clang version 15.0.0 (clang-1500.1.0.2.5)
Target: arm64-apple-darwin23.2.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
Apple の開発ツールに付属しているやつなので少し古い。 Homebrew で新しいものを簡単に入れられるのだろうけど、今回は最新のコンパイラを試すのが目的ではないのでこのままにする。
git で clone する。
git clone git@github.com:yaneurao/YaneuraOu.git
作業時のデフォルトブランチのリビジョンは aaccad だった。
source
ディレクトリに移動する。
cd YaneuraOu/source
make コマンドでビルドする。
NNUE に分類される評価関数でも、具体的な型ごとに異なるオプションでビルドしなければならない。
- やねうら王標準型の場合 (e.g. Háo)
make tournament TARGET_CPU=APPLEM1 -j 4
- halfkp_1024x2-8-32 の評価関数を使う場合 (e.g. Lí-VENGE)
make tournament TARGET_CPU=APPLEM1 YANEURAOU_EDITION=YANEURAOU_ENGINE_NNUE_HALFKP_1024X2_8_32 -j 4
これより後の項目は標準型でビルドした前提で記述する。なお、オプションを変えてビルドし直す場合は make clean
を実行してオプジェクトファイルを消す必要がありそう。
ビルドに成功するとバイナリが YaneuraOu-by-gcc
という名前で出力される。
(clang でビルドしても by-clang
とはならないらしい。)
tanuki-.halfkp_256x2-32-32.2023-05-08.7z
をダウンロードして展開する。
https://github.com/nodchip/tanuki-/releases/tag/tanuki-.halfkp_256x2-32-32.2023-05-08
sha-256 sum: f16dc66c529857bf08fce8cee4f1e53a6993297644100267a6ccccd62e43dbba
(最近の Mac のアーカイブユーティリティは 7zip に対応しているらしく何もインストールせずに解凍できた。)
自分の都合の良い場所にエンジン用のディレクトリを作成して、ビルドしたエンジンとダウンロードした評価関数パラメーターを配置する。
(なんとなくファイル名の末尾を -by-clang++
にしたが特段意味は無い。)
GUI から YaneuraOu-by-gcc を探して登録する。
Háo の FV_SCALE
は 20 が最適らしいので、変えておく。
参考: https://www.youtube.com/watch?v=j_I05pdpn_U&t=437s
スレッド数は 1 にしておく。
それ以外はデフォルト値のままにする。
平手初期局面を 20 秒ほど探索させると 19.8 秒で深さ 38 の読み筋が現れ、NPS は概ね 150 万前後を推移していた。
価格帯や購入時期が違うので比較対象としてそれほど意味は無いのだが、とりあえず手元にある Windows マシンと比べてみる。
やねうら王は Intel や AMD 向けにチューニングされているだろうし、最近の CPU 性能の一般的な評価を見ると、同じ価格帯なら Intel か AMD の最新 CPU を積んだマシンを買った方が良いパフォーマンスを出すだろうと思う。 2018 年に購入した Surface Book 2 は結構高かったもののもうだいぶ古いし、 HP とマウスコンピューターは 10 万円台前半なので MacBook Pro と比べると 10 万円くらい安い。
同じリビジョンを VS 2022 でビルドして同じエンジン設定(FV_SCALE=20, Threads=1)で動かしてみた。
NPS は 126 万前後だった。 15.8 秒で深さ 35 に到達したが 20 秒までにその先は出てこなかった。
そもそも深さ 35 到達時点のノード数が、何度試しても Mac 版より 380 万程度多くなってしまっているので、ハード以外の部分でフェアではない要素がありそう。 なお、 GitHub で公開されているやねうら王 7.6.1 を使うと 20 秒以内に深さ 31 までしか到達せず NPS は 128 万前後だった。
Envy でビルドしたものを持ってきて同じ設定で動かした。
NPS は 55 万程度、 19.5 秒で深さ 31 に到達した。
Envy でビルドしたものを持ってきて同じ設定で動かした。
NPS は 108 万程度、18.5 秒で深さ 35 に到達した。