Skip to content

Instantly share code, notes, and snippets.

これはYaneuraOuをRaspberryPi3 ModelB上のRaspbianで動作させた時のメモです。
YaneuraOuのバイナリを作成してShogiGUIのエンジンとして登録するとこまで。
#Raspbianにsshで入ることができて、そこでgitやmake,clang等が使える環境であること。

YaneuraOuのビルド

YaneuraOu の取得と patch を ddc0b34 に適用

$ cd ~/ && mkdir work && cd work
diff --git a/source/extra/test_cmd.cpp b/source/extra/test_cmd.cpp
index 452493c..d3991aa 100644
--- a/source/extra/test_cmd.cpp
+++ b/source/extra/test_cmd.cpp
@@ -1572,6 +1572,159 @@ void eval_merge(istringstream& is)
cout << "..done" << endl;
}
+void eval_merge2(istringstream& is)
+{
diff --git a/source/Makefile b/source/Makefile
index 222d35e..692a469 100644
--- a/source/Makefile
+++ b/source/Makefile
@@ -155,6 +155,10 @@ tournament:
$(MAKE) CFLAGS='$(CFLAGS) -DNDEBUG -DUSE_MAKEFILE -D$(YANEURAOU_EDITION) -DUSE_AVX2 -mbmi2 -mavx2 -DFOR_TOURNAMENT -march=corei7-avx' LDFLAGS='$(LDFLAGS) $(LTOFLAGS)' $(TARGET)
tournament-sse42:
$(MAKE) CFLAGS='$(CFLAGS) -DNDEBUG -DUSE_MAKEFILE -D$(YANEURAOU_EDITION) -DUSE_SSE42 -msse4.2 -DFOR_TOURNAMENT -march=corei7' LDFLAGS='$(LDFLAGS) $(LTOFLAGS)' $(TARGET)
+tournament-simple-neon:
+ $(MAKE) CFLAGS='$(CFLAGS) -DNDEBUG -DUSE_MAKEFILE -D$(YANEURAOU_EDITION) -DNO_SSE -mfloat-abi=hard -mfpu=neon -DFOR_TOURNAMENT -march=armv7-a -mtune=cortex-a8 -ffast-math -mabi=aapcs-linux -fforce-addr -fomit-frame-pointer' LDFLAGS='$(LDFLAGS) $(LTOFLAGS)' $(TARGET)

駒でのキメラ

基本は test evalmerge と同じです。パラメータに feature [tag] を指定できるようになっています。
[tag] には以下の数字が指定できます。  

  • 100 : 駒台の歩
  • 101 : 駒台の香
  • 102 : 駒台の桂
  • 103 : 駒台の銀
  • 104 : 駒台の金
  • 105 : 駒台の角

これは aws のインスタンスを使用して対戦させた時のメモです。
開発者のかたがたは、自身のプログラムを確認する為のフレームワークを持っているようなのですが、その環境を用意するとかはツライので、Ubuntu 16.04 LTS に shogi-server を入れて勝ち負けを出すとこまでのメモです。

エンジンや評価関数ファイル等は用意してあり動作することを前提として記述します。
#特殊なことがあれば追記しますが、Linux で build できるエンジンであれば大丈夫なはずです。

Windows の便利な GUI クライアントでどうこうするのではなく、黒い画面でネットワーク越しに対戦させる方の話です。
とりあえず aws 上で試す場合、 r3.large が良いかんじです。(USIエンジンを二つ動かすにはメモリが必要なので。。)

@ohga
ohga / wcsc28_memo.md
Last active September 12, 2021 15:42

WCSC28感想文

はじめに

余韻のあるウチに残しておきますが、記憶が破綻してたらご容赦を。今回、大合神クジラちゃん2 の開発に関わったので、その視点で。

最初に感謝と謝罪を、  
応援してくださった方、クラスタに参加してくださった方、ありがとうございました。
前評判を見事ひっくり返し、立てたフラグを回収して、前年より悪い結果になりました、、期待してくださった方、ごめんなさい。 開発者として名を連ねているのでその責は私にもあります。さらにえびちゃんには配信の方にも注力してもらってたので、風当たりをモロに受けさせてしまいました。

がんばって curl コマンドだけで Google Drive にファイル上げるメモ

基本は、PythonでGoogle Drive API v3を利用して画像のアップロード の準備のトコとGoogle APIのAccess Tokenをお手軽に取得する、の合せ技

やること6. でリフレッシュトークンが貰えれば、あとは 8. を繰替えすだけで良い。(1.7. は一回だけやればいいハズ)

ただ、 リフレッシュトークンがあると、Google Drive に対してやりたいほうだいになるので、リフレッシュトークンをクライアントに配るようは運用は考えづらい。善意で成り立っているなら、専用のアカウント作って運用、みたいなのはあるのか?

やるならファイルのアップロードを受けてるような中継用のサーバアプリを用意して、こいつで送信する、とか?(それならコマンドなんか使わずに、いろんな言語でSDKが出てるのでそれを使うから、やっぱ緊急用か、これは。)

#!/bin/sh
for file in `ls -1 shufout_*` ; do
size=`wc -c ${file} | awk '{printf("%f",($1/38));}'`
echo -n "check ${file} ${size} .. "
# /path/to/apery check_teacher $file $((`nproc`-1))
/path/to/apery check_teacher $file `nproc`
if [ $? = 0 ]; then
echo "ok"
else

※ 前提として awscli が入っていて aws configure で特権(ないしiamが作れる)ユーザが設定されていること。  

iam ユーザを作ります。

ここでは 名前を upload-teacher-data とします。

$ aws iam create-user --user-name upload-teacher-data
{
    "User": {
        "UserName": "upload-teacher-data",
        "Path": "/",
@ohga
ohga / gomi.sh
Last active December 8, 2017 07:49
# --- 8< --- 8< --- 8< --- 8< --- 8< --- 8< --- 8< --- 8< ---
# upload 先の s3 情報と書き込む事のできる iam 情報
## TODO:修正して使うこと
export AWS_ACCESS_KEY_ID=xxxxxxxxxxxxxxxxxxxx
export AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
REGION=us-east-2
BUCKETNAME=apery-teacher-v`curl -q https://hiraokatakuya.github.io/aperygenerateteacher/version.txt`
# 作成する教師局面情報
TEACHERNODES=10000000