ちょっとインストールに手間取ったのでメモ。
まずは、たややんさんが公開されているファイルをダウンロードしてくる。
zip 形式なので、ダブルクリックで解凍されるはず。
次に、同梱されている source.rar
を解凍するために unar を入れる。
brew install unar
unar で source.rar
を解凍する。
cd ~/Downloads/水匠5
unar source.rar
cd source/source
Makefile
をいじる。私のは Intel mac なので ZEN2 をコメントアウトして、AVX2 を有効化する。
# --- Intel/AMD系 (x86/x64 Platform)
#TARGET_CPU = AVX512VNNI
#TARGET_CPU = AVX512
TARGET_CPU = AVX2
#TARGET_CPU = SSE42
#TARGET_CPU = SSE41
#TARGET_CPU = SSSE3
#TARGET_CPU = SSE2
#TARGET_CPU = NO_SSE
# --- AMD Ryzen
#TARGET_CPU = ZEN1
#TARGET_CPU = ZEN2
#TARGET_CPU = ZEN3
# -- ARMとか
#TARGET_CPU = OTHER
#TARGET_CPU = GRAVITON2
libstdc++
だとコンパイルされないので libc++
に変更する。
# clang用にCPPFLAGSなどを変更
ifneq (,$(findstring clang++,$(COMPILER)))
# stdlib
CPPFLAGS += -stdlib=libc++
# C++17のfilesystem
# LDFLAGS += -libc++fs
# 関数の引数が関数本体で使われていないときに警告出るのうざすぎるので抑制。
CPPFLAGS += -Wno-unused-parameter
# static リンクを行う際に __cxa_guard_acquire __cxa_guard_release の生成を抑止
# undefined reference to `__imp___cxa_guard_acquire'
# undefined reference to `__imp___cxa_guard_release'
# static 変数を初期化したかを pthread_mutex_t でロックを取って確認し、
# 最初の実行なら初期化するスレッドセーフなコードを生成するためのもの。
# → 本当に消してしまっても大丈夫か?
WCPPFLAGS += -fno-threadsafe-statics
このままだと clang を使っているのに、出来上がる実行ファイル名が Yaneuraou-by-gcc
になってしまうので、好きな名前に変更する。
TARGETDIR = .
ifeq ($(OS),Windows_NT)
CPPFLAGS += $(WCPPFLAGS)
LDFLAGS += -static -Wl,--stack,25000000
TARGET = $(TARGETDIR)/YaneuraOu-by-clang-avx2.exe
else
ifeq (${OS},wasm)
TARGET = $(TARGETDIR)/yaneuraou.js
else
CPPFLAGS += -D_LINUX
TARGET = $(TARGETDIR)/YaneuraOu-by-clang
endif
endif
ビルドする。
make tournament
make normal
と何が違うのかはよく知らない。
できあがった実行ファイルを起動すれば動く。
./Yaneuraou-by-clang
usi
isready
go infinite
stop
quit
評価関数だけをファイルとして入手したい場合は平岡さんのこれ https://github.com/HiraokaTakuya/get_suisho5_nn を参考にすると良い。