日記

日記です

0510

大学

 10時ごろに研究室へ。ちょっと朝が遅いなぁ。もうちょっと早く始動できるようになりたい。

 午前中はSIMD演算を書く。ちょっと複雑なプログラムだと書き始める前にグッと気合いを入れる儀式が必要になる。自分にも書けるはずだと思い込まねばならない。

 やるべきことを多少思い出して憂鬱になる。コンピュータ将棋をやるにあたって大学邪魔だなぁと思うことも多いけど、kumaさんという前例が発生したので「休学すれば?」で論破されてしまう。さすがに4年生で休学って現実的ではないのでは、とか思ってしまうけど、しかし現実とは。コンピュータ将棋こそ現実なのではないか? まぁ休学よりは退学の方がありそう。いや絶対しないけどね。

将棋ソフト開発

 差分計算を書き直した。頭が悪いので今までPositionクラスがkpp_score_を変数として1個だけ持っていたので差分計算で符号が先手玉についてと後手玉についてでぐちゃぐちゃして大変だったんだけど、これをkpp_score_[2]という配列にして先手玉についてと後手玉についてそれぞれ持つようにしたら多少簡単になった。実際に点数を返すタイミングでkpp_score_[BLACK] - kpp_score_[WHITE]とすればいいんですね。なるほど。知能がなかった。こういう細かい実装部分がなぁ。

 しかしSIMDを使うと計算が合わない。うーん、なんでだろう。

 そういえば昨日速度がどうこうって言っていたのは見間違えでした。初期局面を検討モードでしばらく開いた時のを目視で確認しただけだけど、自分のノートパソコンでYaneuraOu4.79(elmo評価関数)が

1Thread : 921kNPS
4Thread : 1682kNPS

 くらいで、海底が

1Thread : 400kNPS

 くらいなので半分くらいですか? まぁこれランダムに初期化した評価関数での速度なので実際に学習させたらどうなのかは知らないけど。

 というか4ThreadにするとかなりNPSも伸びるんですね。hashのヒットをやねうら王も数えているんだっけ? 探索ノード数の数え方が合っているのか自信がない。2倍くらいしか差がないって本当か? 感覚的にはもっとありそうな気もするんだけど……。

 SIMDを導入成功した。

初期局面で60秒探索したNPS

SIMD無し : 443428
SIMD有り : 518124

 1.17倍速いっぽい。だいたい野田さんが言っていたのと同じくらいか。他の部分が遅くてあんまり効果ないかもとか思ってたけどそんなこともなかった。

 なんか時間が経過するとNPSどんどん上がっていくんだけど、合っているのか? まぁハッシュとかにヒットすることが増えるとなるとそうなのかな。

 しかしまだまだ遅いなぁ。無駄に情報を保持、更新していたりするので、そのへんをなんとかやっていければいいんじゃないかと。それでも2倍以上速くなる気はなかなかしないが。

 とりあえず学習回してみるところまで行ったけど全然ダメだった。ちゃんと微分しなきゃ……。精神が落ち着かなくて計算ができない。

動画

 久しぶりにVTuber、というかにじさんじの動画をちょっと見た。

 鈴鹿詩子さん、普通のオタクでは。いや普通ではないけども。

 樋口楓さん、つい興味を惹かれてしまうような不安定さがすごくてこれは狙ってやっているとしたらすごいキャラクターだなぁ。

 剣持刀也さん、結構面白いのでは。

その他

 何もしていないのに時間が過ぎていく。なんで???

 何もしたくない……。