モバイルノートに32GBを

  

16GBで数年やってきました。

某選手権に参加したときのノートパソコンも

このblogを今書いているマシンもデスクトップですがメモリ16GBです。

 

機械学習なんかを本格的にやるとGPUやストレージ含めて色々リソースが辛くなります。特にどうしようもないのがメモリですね。ローカルにコンテナ作る人も同様と思います。

メモリに乗らないものを計算するとスワップしながらということになりますが,もう言うまでもなく論外です。

 

ということで色々探していたところ結構過激なネタが飛び込んで来ました。

「幾つかのノートPCのメモリが仕様で書かれていないがソケット化されているらしい。」

確認してみたところ,所謂ハイエンドの軽量薄型機は全部はんだ付けされているようでした。中堅の量産品が出荷バリエーションを持たせるためにメモリ量のモデルを複数持っており海外仕様だとメモリ32GBモデルが存在するなどのネタがありました。詳しくは機種ごとに外国名を探してみてください。

 

本件はLenovo Ideapad 530S(AMD)を扱います。

Intel仕様は一枚はんだ付けらしくメモリ構成が異なる点注意です。AMD仕様の方が出荷量が少ないのではないかと邪推します。Lenovoに限らずHPやDellでも同様の傾向アリです。

で,こいつの利点です。

1.意外に軽い(1.5kg未満)

2.モバイルの範疇(14インチだが細枠なので,ひと昔前の13インチ級)

3.4コアCPU

4.安い(発売当初7万台,現在6万半ば)

5.メモリが2ソケット(デュアルチャンネル)

6.換装実績がネット上にある(T5ネジ)

 

ついでに欠点も

1.価格なりのスペック・外装(メモリ積む価値があるか)

2.熱設計が甘い(今風だが負荷をかけたときにクロックが下がる)

3.SSDのサイズが小さい(M.2 Type2242なので換装しづらい)

4.ACアダプタが無駄にでかい専用設計

5.メーカー保証をかなぐり捨てる勇気

  

まぁ,結論から言いますと32GBに換装して動きます。

ただ,SSDが差し替えられてないので残念な感じです。

ーーー

追記

その後無事SSDも差し替えました

bleu48.hatenablog.com

検証試験の準備

雑ですが公開しながら自分の試験用のメモを

 

試験相手にdlshogiは欠かせないと言っていいでしょう。

  

簡単に動作テストだけしてみました。

github.com

 

公開されているバイナリはCUDA10.0用らしく

うっかり10.1を入れてしまったのでdllの類が見つからないとのこと。

2つ強引にコピーしてリネームしたら一応動きました。(ひどい対応ですみません)

 

また,本番ではp3.8xlargeを使用したとありますのでTesla V100の4枚ですね。

16xlargeにしなかった理由を聞き忘れてましたが,Remiさんも8xlargeだったので4枚くらいがちょうど使いやすいのかもしれません。

 

うちのテスト環境ではここまでのGPUがないのでどうやって比較実験するかってところから検討です。

 

他の対戦相手はとりあえず公開されているバイナリをリスト化するところからです。

やねうら王ライブラリ勢は条件設定にそれほど苦心しないと思います。

 

とりあえず,ここまで。

---

ToDo:

・ソルコフポイント等大会ルールのおさらい

・個々のソフトとの相性確認

・自戦感想戦

・Go言語側で千日手検出実装および実験

某デスマの内情

残り1カ月を切ったころ・・・

定跡担当S「そろそろ評価関数が出来ないとこちらスタートできませんぜ。予定は3月末じゃなかったですか?」

クラスタ担当S「新機能を加える工数がないと昨年版と同じか低機能になりかねませんぜ。」

計測担当S「工数ないんで昨年の計測コードで良いんですか?それに計測対象はどれから・・」

評価関数担当M「強いの出来た」

計測担当S「それ去年より弱いです」

評価関数担当S「うちの精度がないと他が善戦しても何の役にも立たなくなるんで,予定より押してますがあと2週こちらに注力させてください。」

探索担当S「アスピレーションサーチの部分改造したいんですが・・・」

  

残り3週間

評価関数担当M「まだ頑張る」

評価関数担当S「昨年のより強くできなかったら昨年版で出ることも視野に入れて・・」

計測担当S「なんか全部弱くて疲れてきた。メンタルツライ。」

探索担当S「lazy SMPの亜種を数パターンテストしたいんですが・・・」

 

クラスタ担当S「寝る時間削ってちょっと改造しますね」

定跡担当S「昨年の評価関数で今年流行の戦型とか分析しときますね」

定跡担当S「なんか二年前から更新してない部分が結構あるんですが・・・」

 

残り2週間

評価関数担当S「昨年のよりはたぶん強いのが出来た」

定跡担当S,クラスタ担当S,計測担当S「それで決定しましょう!!!」

評価関数担当S「一応もう少しこれの亜種作る」

クラスタ担当S「あ!!!昨年版に劣るところ見つかりました。工数下さい。」

計測担当S「i9 7980XEの計測以外信頼性低いって分かってきました」

評価関数担当S「それ言うのこのタイミング!?」

探索担当S「Timemanの改造を数パターンテストしたいんですが・・・」

計測担当S「テスト機足らん」

   

大会前日

評価関数担当M「強いの出来た」

評価関数担当S,定跡担当S,クラスタ担当S,計測担当S「・・・・・・」

計測担当S「あと一日で何計測するんですか?」

定跡担当S「え!?整合性はないよね。もう更新とか無理よ。」

クラスタ担当S「ええから工数下さい。現地でバグるぞ。」

計測担当S「i9 7980XEで数戦しか出来てないけど強そう。」

定跡担当S,クラスタ担当S,計測担当S「それで決定しましょう!!!」

評価関数担当S「未計測のウチの子らは・・」

  

大会後

クラスタ担当S「デスマったけど不具合出ずに動いた時点で俺の仕事満点。」

計測担当S「何があっても俺には責任はないわな(笑)」

定跡担当S「確認してない割に意外に使えたな(笑)しらんけど」

評価関数担当M「一時はどうなるかと思ったが善戦した」

評価関数担当S「頑張ったのに出番なかった(泣)」

探索担当S「俺口だけでほとんど何も実装できんかった」

誰か「最後の最後で設定変えろとか言ったやつ居なかった?」

定跡担当S,クラスタ担当S「そら無理やろ。動かんかったら洒落ならん。」

   

 

風の噂ではこのプロジェクト2名しか居なかったとのこと(笑) 

 

 

 

やねうら王は本当に強いのか?

yaneuraou.yaneu.com

 

特に怒ってないですが,圧倒的強い立場の者が悪質なデマを飛ばすのは感心できないですね。

新幹線に乗る直前に駅で購入したもので毒物・薬物の類は混入しておりません。

 

対抗と言うほどのものでもありませんが,煽り気味のタイトルで事実確認だけしておきます。

確認できるデータのみと言うことで主観的なものだけになりますが,御容赦下さい。

 

まず,私とチームメイトの松下さんがはじめてコンピュータ将棋の大会に参加したのが第5回電王トーナメントです。

初対面の御本尊やねうら王は既に決勝常連の強豪ということになっていました。

 

予選1回戦

人造棋士18号 〇ー× やねうら王

 

予選5回戦

shotgun 〇ー× やねうら王

 

決勝ではやねうら王がタヌキと河童に負けて敗退していたようです。個人的感想ですがタヌキと河童もやねうら王ライブラリですので,同エンジン対決でやねうら王本家の勝率は有意に低い感じがします。

ちなみに,私は決勝まで上がりました。

 

確認はこちら

denou.jp

 

そして,第29回世界コンピュータ将棋選手権です。

我々が前年度優勝者,やねうら王がなんと初参加の新人だそうです。

 

二次予選5回戦

Kristallweizen 〇ー× やねうら王

 

決勝7回戦

Kristallweizen △ー△ やねうら王

 

以上で全ての対戦結果です。

我々通算3勝1分で一度も負けてません。

しかしながらデータ不足で「やねうら王は弱い」という仮説も十分な有意水準で認めるに満たないと考えます。

 

やねうら王,新人賞受賞および優勝賞金百万円おめでとうございます。

大金を投入した勝利を心よりお祝い申し上げます。

 

www2.computer-shogi.org

ベンチマーク計測の件(WCSC29に関して)

レーティングという言葉が独り歩きしている(風に私には思えます)

勝率?

 

テレビゲームやったことがある人ならわかると思いますが,難局面でも一度攻略できたら二度目は比較的簡単に攻略できるようになります。これは陸上競技の記録や体操の新技などでも見られる現象で理由はよく分かってない部分もあるらしいとか。

 

もちろん,そんなに単純な話ではないでしょう。

考えれば考えるほど分からなくなるくらいには将棋は奥が深いものです。断定的に仮説が検証できたと思った瞬間に覆される反例局面が見つかったりするので,正直分からないことだらけと言っていい状況。

 

だから,「強いですね」と言われた時の対応が「何故かよく分からないけど勝つんですよ」となります。気分を害されたら申し訳ないですが実際上手に説明できなくて困っています。

 

実際のところ例えばWCSC29(第29回世界コンピュータ将棋選手権)の準備段階で,伝家の宝刀と言うべき横歩青野流で後手勝率が5割を超えるケースが多々出て正直戸惑いました。特に相手に大駒を捌かせてからじわじわと竜,馬を詰めることが多い不思議な評価関数が作成されてから悩むことが多くありました。本件ドラゴンスレイヤー系列評価関数と命名

 

連休前まではこれを4,5パターン仕上げて,その中から最強を選出し参加する予定でした。で,計測の問題です。

KPPT系の評価関数でもそうでしたがAVX2の威力は相当なものです。NNUE系でも同様なのですが,様々なニューラルネットワークサイズをテストする際にどうもL1とL2のそれぞれのキャッシュサイズに大きく依存するような傾向が見えました。断定的に言うほどではないのですが,32コア64スレッドのスレッドリッパーより18コア36スレッドのSkylake-Xの方がパフォーマンスが出るとか,Skylake-XはL2キャッシュが多いのでSkylakeの後継のCoffeelakeよりもクロック比でnpsが稼げる(但し2層目のサイズ依存でその差は結構変わる)とかそういう話になります。また,選手権本番でもちいる予定にしているm5インスタンスはSkylake-SPと言われるSkylake-Xの親戚です。

 

また,レーティングサイト案件ですが対戦時一手同一時間で計測するのが歴史的に広まっています。これは私の参戦当初からあまり有効でない計測であると思っていますが,ある程度手抜きをして計測しないと計測自体が終わりません。選手権と同条件で500戦行おうとすると優勝賞金では足りないでしょう。で,F1レースに参加する予定なのに普段は国産量産車で練習をするわけです。

計測を初めて気づくのが1億ノードを超えたあたりから昨年のうちのKPPT評価関数がすごく強い。5億超えると上位クラスのNNUEでも軽く負かしてしまうくらいです。もうこれで今年も出て良いんじゃないかとかTamaさんとチャットしてたくらいです。

ところが,illqha3と言われる評価関数が同様に1億超えたあたりから他の評価関数を突き放します。正直どのパターンでもうちの勝率が3割切ってくる感じでした。

こうなると角交換より横歩の後手の方がマシとか5割未満の悲観的な比較合戦でお葬式ムードです。

加えて,この億を超える計測ですがSkylake-Xのマシンでも1戦1時間近くかかります。

本番はこの数倍ですのでまだマシとかそういうのですが,手持ちの最速マシンで一日20戦程度しかできない計測ってどう!?

 

他の低スペックマシンの計測値は信用ならんって状況です。

ちなみに昨年は低スペックマシン混在で計測してました。

 

で,5月2日にチームメイトから「強いのできたから確認して」と連絡が入ります。

あと一日,20~25戦くらいしか計測できないんですが,これどれと対戦させて様子みましょうかねww

ってことでillqha3と対戦させました。そうして持ってきたのがアレです。

 

序盤定跡や時間配分計測など微調整をこの評価関数でやってないまま投入ですので,もう出たとこ勝負もほどほどです。

それも二次予選の初戦がdlshogiとの戦いでしたが,これですよ。

  

昨年の二次予選も朝から負けてたのでそういう流れかと敗戦を覚悟してたくらいです。

二戦連続で負けたら昨年版と差し替えようかとか予選落ちもあるかなぁとつぶやきがあったのは事実です。

ですのでその後予選トップ通過であったり,決勝であれだけ戦えたのは思ってたよりよかった!!!って感想になるわけです。

「悔しい」ってのは無いわけじゃないですがねぇ。

 

で,戻りますが選手権レベルの計測です。

御依頼があれば行いますが,m5インスタンスが時間5ドル強ですので私の場合5台のクラスタを構成すると時間3000円程度,1試合1時間と見積もって500戦で150万円になります。対戦相手も同じサイズのクラスタでしたら300万円で500戦分の棋譜が作成できると思います。レーティング調査の御依頼がありましたら経費負担で遠慮なく申し出下さい。

選手権雑感

www2.computer-shogi.org

  

とにかく疲れました。

準備のスケジュールがずいぶん押していたのや,現場レベルで色々と予想外の事態があったり,初日から結構脂汗ものでした。

現場到着30分でクラウド構成のクラスタシステムを現地で組まなくてはなりません。なるべく手順をシンプルにしていたのですが,慣れないベアメタルサーバで起動時間を見積もっていなかったのが気が焦った理由でもあります。

結局初日は昨年同様m5.24xlargeのインスタンスを5つ東京リージョンでオンデマンドという最も高額なオプションを直前に採用しました。決勝では早起きしてm5.metal構成を起動した状態でホテルを出ることが出来ました。怖いので昨年同様1時間以上前に起動する愚策です。

 

現行のクラウド時代のネットワークエンジニアの方なら少しは理解いただけるかもしれません。(私自身はネットワークエンジニアではありませんが)

 で,ネットワークサーバ的なリアルタイム通信をする部分はGo言語でスクラッチ製作していたものが昨年同様一度もトラブルなく運用できました。ほぼ満点と言っていいでしょう。

 

あ,戦績ですか?それは公式サイトやこちらの初参加らしい優勝者のサイトが詳しいです。

yaneuraou.yaneu.com

 

私の記憶が正しければうちのチームは通算2敗,やねうら王チームは通算3敗です。直接対決ではうちの1勝1分けになります。

ソルコフについての理解はまだなのですが,いまだ現実を理解しようという気になれません。

 

「悔しいですか」とよく聞かれたのですが,準備段階を考えると予選を首位通過の時点で想定以上の戦果ですし,前年度優勝者という優勝候補筆頭らしい体面を保つことができただけで満足しております。(賞金も30万円しか違いませんしw)

 

後手番で引き分けが許されない状況のスペシャルオプションのような想定は脳内にはあったのですが,準備実装テストという工程を行ってこなかったため未確認の緊急対応を現場でしないという判断を取りました。これも準備不足と言っていい話です。

floodgateで対戦中のgo_test03に千日手判定ルーチンが未実装なのとは無関係ではないでしょう。実際準備・キャリアの差と認識しております。師匠の上記記事でうちの仮想実装してテストして弱点を把握して作戦を練ったと明確に書かれているので加えるコメントがないレベルの完封負けですね。

懇親会で酒の肴にしてしまったので,ここにもメモしておきますがスペシャルオプションは横歩の乱戦です。当方の時間制御ルーチン対策として消費時間設定を短くした相手に対して短手数の乱戦を仕掛ける想定はしておりました。読み抜けが一つ出た瞬間に決する乱戦を後手番から駒損覚悟で仕掛けるわけです。(まぁ,使わなかったのでたらればの話ですが)

 

で,次はどうかと聞かれるのですがそりゃまぁなんか色々やりますよ。

ライブラリ依存して考えずに済ませていた部分やルールに対する理解が甘い部分を御本尊にいいようにやられたわけですので,自分できちんと理解して実装してテストして全方位怠りなく戦う必要があることが身に染みて理解できました。本当に喜ばしい限りです。

 

あと,皆さん懇親会で教えていただいたのですが相当マークされていたようですね。GPWの懇親会で色々助言頂いた「前年度優勝者は上位陣に詳細に解析されて対策が練られる」とのこと十分に理解できました。各チームのMulti Ponder対策はこれから検証シミュレーションの対象にさせて戴きます。上位・類似実装が多数あったことはやっと認められたのだと思っておきます。

そう考えると猶更運がよかったレベルの結果かと振り返って思います。

また来年楽しみにしております。

---

追記

電王トーナメント後のこの記事のアクセス数が妙なことになってますが何かありました?

bleu48.hatenablog.com

 

新幹線に乗ったので追記再開

 今年は昨年の三倍のリソースで盤外戦を圧倒する策に出ました。

一次予選から関係者多数に黍団子を食わせまくりました。ただ,唯一受け取りを拒否されたのが「やね師匠」でしたので終了後食べていただく確約をしておきました。

で,この経緯ですよ。

なんというエピソードでしょう(笑)

黍団子の欠点は食べることを拒否されたケースのようなので次善策を何か検討しなくてはならないなってのも今年の反省にしておきます。

 ---

5/7朝.追記

やね師匠のところからリンクを貼られたのでさらに桁違いのPVに驚いてる。

昨年優勝より知名度上がるのね。

何か色々思うところと考えて考えて出した結論と世の反応が違うことが多くなってる気がする。

今回は変なプレッシャーがずっとあって一月近く寝不足と胃痛でめまい耳鳴り下痢など酷かった。対戦結果云々じゃなく事故トラブル無く無事だっただけで結構「自分を褒めてあげたい気分」なんだけど伝わらないよね。

二次予選の朝とかssh繋がらなくて泣きそうになってたんよ。

もっと普段からクラウドを使って慣れておくべきだね。

昨年は貧乏性は勝因だと言ったけど,今年は敵だった気がする。

賞金頂けるとのことで随分楽になるかな。

今年の準備

bleu48.hatenablog.com

 

え~っと,昨年のおさらいを昨日やりまして(超遅い)

なんか気が付いたっていうか思い付きがあるんですが

変更するかしないかで今悩んでます。

 

現状,昨年チャンピオンなわけです。

昨年プログラムが弱いわけがないんですが,それにこのタイミングで大幅な変更を入れるのが怖いってことです。

 

昨年は望外の僥倖でしたので,あまり悩まずに準備できたのですが,今回それなりに悩みました。まず,目標値が連覇となったこと。つまり,ほぼすべての対戦で勝つ準備というのが必要になります。

それって理論上無理ですよね。だって自己対戦したら論理破綻しますから。

 

ってことで悩まないために2月頃に準備目標を下げました。「昨年より強いものを持って行く」です。

 

で,変更するかどうかとww

 

これから変更して自己対戦してみます。今週中に終わらない場合はどうしましょ!?

とにかく未定が多くて各方面ごめんなさいって感じです。