bonanza 6.0のfv38化 [将棋]
Aperyの平岡さんが、githubに変換ツールのソースを公開していた。
https://github.com/HiraokaTakuya/fv38
これをみて、やってみようかな~なんて思っていたところに、
Visual Studio 2013 Communityが無料のニュースでやる気が出たのが2ヶ月ぐらい前。
・bonanza 6.0のソースを落としてくる
・一人git作成
・VSでビルドできるようにプロジェクトを作る
・動作確認
効果があるかはよくわからないが、PGOもできるようにした
というところまでは順調だった。ソースいじってないし。
昔LS3600さんがBonanza解析Blogにいろいろ変数名とかマクロとか説明していたし
そのときにも軽くみていたので、変数の意味や格納法なども大体わかってる。( ー`дー´)キリッ
FV38にすると手駒の格納法が悩ましかった。
Bonanzaは手駒になった瞬間に枚数で格納しているので、
FV38化するときの効率的な保存方法が結局よくわからず。
結局あまり深く考えずに、単に38駒化がちゃんと動くのかどうかを目標にしてみた。
FV38化が成功すると
・52駒評価から38駒評価になることによる主に序盤の高速化
・適当な実装による手駒リスト作成のデメリット
というのが相殺されてちょっとだけよくなるであろうという予測のもとぼちぼちがんばっていた。
ところが、ニコ生のVリーグが大変面白かったので一ヶ月はほとんど進まず。
さらに、実装ミスだけでなくBonanza 6.0の動作確認のために入れたコードがバグってて無駄に時間がかかった。
あと平岡さんの変換コードが、単に変換するだけでなく、KKPの+ー変えるとか、インデックスをKPPに統一するとか、評価関数の実装が容易になるような変更が入っていたのに気がつくのにも時間がかかった。ソースの斜め読みイクナイ。
結局、12月になり、いろんなハマリポイントの修正方針を思いついたことで無事実装完了できた。
早速1コア同士、3秒で戦わせてみると、手駒0が無駄な序盤5~10%速くなることがある程度の速さだった。
終盤は逆に遅い。手駒のリスト生成は相当うまくやらないといけない感。
FV38化されたbinファイル(fv38.bin)を使えるようにしただけなので、こんなもんだろう。
VS2013コミュニティのパワーでボトルネック解析できないのかと思ったが、未だにどうやればいいのかよくわからない。どうもbonanza 6.0の常套手段であるファイルからのリダイレクトをプロファイル使用時に受け付けてくれない模様。
でもFV38化をやることで、差分評価の理解度は増した(今更)
https://github.com/HiraokaTakuya/fv38
これをみて、やってみようかな~なんて思っていたところに、
Visual Studio 2013 Communityが無料のニュースでやる気が出たのが2ヶ月ぐらい前。
・bonanza 6.0のソースを落としてくる
・一人git作成
・VSでビルドできるようにプロジェクトを作る
・動作確認
効果があるかはよくわからないが、PGOもできるようにした
というところまでは順調だった。ソースいじってないし。
昔LS3600さんがBonanza解析Blogにいろいろ変数名とかマクロとか説明していたし
そのときにも軽くみていたので、変数の意味や格納法なども大体わかってる。( ー`дー´)キリッ
FV38にすると手駒の格納法が悩ましかった。
Bonanzaは手駒になった瞬間に枚数で格納しているので、
FV38化するときの効率的な保存方法が結局よくわからず。
結局あまり深く考えずに、単に38駒化がちゃんと動くのかどうかを目標にしてみた。
FV38化が成功すると
・52駒評価から38駒評価になることによる主に序盤の高速化
・適当な実装による手駒リスト作成のデメリット
というのが相殺されてちょっとだけよくなるであろうという予測のもとぼちぼちがんばっていた。
ところが、ニコ生のVリーグが大変面白かったので一ヶ月はほとんど進まず。
さらに、実装ミスだけでなくBonanza 6.0の動作確認のために入れたコードがバグってて無駄に時間がかかった。
あと平岡さんの変換コードが、単に変換するだけでなく、KKPの+ー変えるとか、インデックスをKPPに統一するとか、評価関数の実装が容易になるような変更が入っていたのに気がつくのにも時間がかかった。ソースの斜め読みイクナイ。
結局、12月になり、いろんなハマリポイントの修正方針を思いついたことで無事実装完了できた。
早速1コア同士、3秒で戦わせてみると、手駒0が無駄な序盤5~10%速くなることがある程度の速さだった。
終盤は逆に遅い。手駒のリスト生成は相当うまくやらないといけない感。
FV38化されたbinファイル(fv38.bin)を使えるようにしただけなので、こんなもんだろう。
VS2013コミュニティのパワーでボトルネック解析できないのかと思ったが、未だにどうやればいいのかよくわからない。どうもbonanza 6.0の常套手段であるファイルからのリダイレクトをプロファイル使用時に受け付けてくれない模様。
でもFV38化をやることで、差分評価の理解度は増した(今更)
コメント 0