3
3

More than 1 year has passed since last update.

水匠5を macOS にインストールする

Last updated at Posted at 2021-12-16

ちょっとインストールに手間取ったのでメモ。

まずは、たややんさんが公開されているファイルをダウンロードしてくる。

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 を参考にすると良い。

3
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3