2022年12月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

tweet

  • tweets

« bonasseソース公開 | トップページ | Windows対応版うpしました »

Windows対応中…だが

bonasseをWindowsで動かしたいという方がけっこう多いようなので、ちょっとトライしてみることにしました。私は今までソフト開発はほとんどUnix系しかやってなくて、Winは素人。cygwin+gccはやってましたがまああれは別なので。ですがまあいい機会ですんでこの際やってみようか、ということでやってみました。

まずVisual C++無料版のDL+インストール。32bitしかないんですね。有料版買う気はないので、64bitはあっさり諦めです。

bontaさんやかずさんのコメントを参考に、VC++で通るようにソースを修正。いちおうコンパイル通って動くようにはなったんですが、floodgateに入れるとめちゃ弱いorz 以前の記事に書いたところで自分の環境は32bitから64bitに切り替え、その後いちおう32bitも対応入れたもののちゃんと検証してませんでした。どっかミスってるんでしょうね。

64bitの方は手元にコンパイラがないので試せてませんが、おそらくfloodgateのbonasse_980Xさんはbontaさんの(64bit)バイナリだと思われ、こちらはちゃんと強いようなので、64bitは大丈夫なんじゃないかと思います。が、なにぶん自分で試せてないので、VC++ 64bitでの使用レポート歓迎です。

32bitの調査の方もおいおい進めていきますが、他にやることもあり、こればかりやってるわけにもいかないので、いつできるかは現状ちょっとわからないです。ご了承ください。

いちおう現状のソースをここに置きます。

ところでBonanza Felizが公開されてますね。まだちゃんと見てないですが、ざっとdiffとったところ合議関連以外もけっこういじってるようなので、要チェックです。

« bonasseソース公開 | トップページ | Windows対応版うpしました »

将棋プロセサ」カテゴリの記事

コメント

未確認ですが、Windows SDK に64bitコンパイラが入っているそうです。
VS2008EE + Windows SDKで64bit開発環境を構築するwebページを見たことがあります。

32ビット版を動かしてみましたが、
64ビットとNPSは同じだけ出ますが、
bonanzaと対戦させると評価値が大きく異なっています。
評価関数を計算するところにバグがあるようです。

上の件ですが、evaluate.cの
#define INANIWA_SHIFT
を削除したらbonanzaと評価値が一致するようになりましたw

あと、VC++では64ビットではマクロ_WIN64がONになります。
_WIN64がONのときは_WIN32もONです。

上の変更を行った32ビット版を1手1秒でBonanza4.1.3と対局した結果は、
bonasse : Bonanza = 63勝 : 37勝 でした。
64/32ビットでNPSもほぼ同じ、プロファイラで+10%になるのも同じです。
以上から、拙サイトのプログラムを32ビット版に差し替えました。

かずさん、bontaさん、情報ありがとうございます。

>#define INANIWA_SHIFT
>を削除したらbonanzaと評価値が一致するようになりましたw

え!そ、そうですか(汗)調査ありがとうございますm(__)m しかしおかしいなぁ、今見てもなんでおかしいかわからないんだけど…まあじっくり調べてみます。

Win SDKはググったけどよくわからないですね。まあ2010は出たばっかだから、後追いで64bitが出る、とかなのかもしれません。こちらももう少し調べてみます。

あ、プチ将棋使うとclient_next_game()呼ばないのか。アホすぎる…>自分

Windows上で無料のx64開発を確認してみました。
コマンドプロンプト上ですが、Windows SDKをインストールして nmake -f makefile.vs cl でBonasseのx64ビルドが出来ました。

Windows SDK
http://msdn.microsoft.com/ja-jp/windows/bb980924.aspx

から「Windows Server 2008 および .NET Framework 3.5 用 Microsoft Windows SDK (英語)」をダウンロードして入れました。
コンパイラはVS2008相当ということで、
C++ Ver 15.00.21022.08
ASM Ver 9.00.21022.08
が入りました。x86、x64、IA64に対応しています。

情報ありがとうございます。私は何も考えずに最新のをDLしよう、と思ったらVS2010 Expressになったんですよ。2008なら64bitもあるんですね。まあ、ということは2010もちょっと待てば64b出そうな気はしますが。

VS2008EE にも x64 コンパイラは入っていませんので、念のため。
うちではVS2010EE入れた後にWindowsSDK入れました。

ExpressじゃだめでSDKを使え、ということですか。(私MSの環境ほとんど知らないです、お手数かけます)VS2010EEはいったん削除して、最新のSDKを入れなおせばいいのかな?今度手の空いたときやってみます。

フリーでWindowsのx64用C/C++コンパイラを使うにはSDKを使え、が解になるんじゃないでしょうか。
(バイナリを公開できるライセンスかどうかは未確認)。
インストールの際はVS2010EEはそのままで、SDKを入れて大丈夫と思います。自分がそうしたので(^^;)。
今だと「Windows SDK for Windows 7 and .NET Framework 3.5 SP1」のほうが新しそうです。

Just want to say what a great blog you got here!
I've been around for quite a lot of time, but finally decided to show my appreciation of your work!

Thumbs up, and keep it going!

Cheers
Christian

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: Windows対応中…だが:

» VS2010EE と Windows SDK [かずの心の贅肉]
Visual Studio2010では商用最下位EditionがProfessionalになったことで、フリーの Express に従来の Standard 機能がどこまで対応しているか確認。対象はVC++。 コマンドライン:対応 C/C++ Ver. 16.00.30319.01 x86のみ アセンブラ Ver. 10.00.30319.01 x64対応(開発ターゲット):なし MFC:なし リソースエディタ:なし 環境的にはWindo... [続きを読む]

« bonasseソース公開 | トップページ | Windows対応版うpしました »