「プログラミング」カテゴリーアーカイブ

Visual Studio Community 2013をインストールしてみた

MicrosoftよりVisual Studio Community 2013が公開されました。下記の条件に合う方は無償でダウンロード、利用ができます。
これまでも、機能が制限されたExpress Editionが無償で利用できましたが、Visual Studio CommunityはVisual Studio Professional相当で、機能制限はありません。

学生、オープンソース開発者、非営利団体従事者、小企業(※)、個人開発者が無償で利用可能となります。
上記対象者以外は従来通り、Visual Studio Professional、Premium、Ultimateを購入することとなります。
※PC台数250台未満または年商1億円未満の企業で、該当企業は5名まで利用可能

Visual Studio 2013 Professionalは\6万程度で販売されているものが対象者限定ながら無償公開されたということで、開発者の裾野を広げようというMicrosoftの決意を感じます。

参考リンク:
http://www.microsoft.com/ja-jp/dev/products/community.aspx
http://www.forest.impress.co.jp/docs/news/20141113_675880.html

続きを読む Visual Studio Community 2013をインストールしてみた

64bit化 その2

GA将!!!さんのブログに、Core2の32bitから64bitの速度向上率が25%というレポートを見て、これは試さねばと思い、試してみました。

ついでにインラインアセンブラを使っていたところは、かずさんに教えていただいた__rdtscの利用と、ロックのところはアセンブラに外出しして、64bit対応作業が完了しました。

前回と同じ局面の探索にかかった時間です。(ただし、K-Shogiのバージョンが少し違うので前回の時間とは比較できません)

環境 プログラムの
bit数
時間
Core2 Extreme QX6700(2.66GHz) 2GB
WindowsXP 32bit
32bit 27.9秒
Core2 Extreme QX6700(2.66GHz) 2GB
Windows7RC 64bit
32bit 29.4秒
Core2 Extreme QX6700(2.66GHz) 2GB
Windows7RC 64bit
64bit 28.0秒

Windows7RC での32bit→64bitの速度向上率は約5%という前評判どおりの結果でした。。。残念。

しかもXP 32bitの方が速いので、しばらくはXP 32bit環境で十分という結論になってしまいました。

64bit化

Windows7 RCがダウンロードできるようになったので、ためしに64bit版をインストールしてみました。マシンのスペックは以下のとおり。2004年・2005年の選手権の時のマシンです。久しぶりに起動させました。懐かしい。

  • CPU : Athlon64 3400+ (2.2GHz)
  • MEM : 1GB

問題なくインストールできましたが、解像度が1024×768以下しか選べない。グラフィックカードが認識されていないようです。グラフィックカードはGeForceFX5200が載っています。NVIDIAのサイトからWindows7用のベータドライバをダウンロードしてインストールしてみると「対象の機器がありません」のようなメッセージで終了してしまいます。NVIDIAのサイトをよく読んでみると、GeForceFX5200は対象外の模様。しからばと、使用していない別のマシンからATI(現AMD)の9200SEというカードを抜いてきました。念のため、AMDのサイトでドライバの対応状況を確認すると、またもや9200SEは対象外。仕方がないので、GeForceFX5200のまま1024×768で使用していました。ふと思いついて、WindowsUpdateをしてみると、GeForceFX5200のドライバがありました!

VisualStudio2008をインストールして、64ビットの開発環境を整えました。

K-Shogiのプロジェクトをビルドしてみると、やはり、インラインアセンブラのところでエラーが出ました。その他にもエラーやワーニングが多数出ています。

インラインアセンブラはマルチスレッドのためのロックに使用しているのと、RTSC命令でクロック数を測るのに使用しています。今回はとりあえず動かしたかったので、RTSC関係は削除、ロックは今回のCPUが1コアなので、ばっさりコメントアウトしました。

その他のエラーとしてはVC6から持ってきたプロジェクトだからかOnTimerイベントの引数があっていないようでエラーになっていましたので、正しい形に修正。他にsize_tをintやUINTに変換しているというワーニングが大量に出ていますが、とりあえず問題なさそうなので無視し、ビルドができました。ふぅ。

早速、動かして見ると実行時エラー。デバッグモードで動かすと、定跡の格納領域が足りていないことが判明。構造体にポインタを格納しているので、32bitから64bitになって必要な領域が増えているのが原因でした。(しかし落ちるのはまずいですね。)

これで一応動くようになりました。気になる速度ですが、ある局面の探索で、

  • 32bit 34.6秒 NPS:101,647 (64bit環境で実行)
  • 64bit 30.7秒 NPS:114,548

となり、うわさどおり1割程度速くなっています。

ただし、今回の環境はAthlon64ですが、Core2では64bitの速度向上が悪いとのうわさですので、Athlonほどには速くならないと思われます。

Core i7は64bitはどうなのでしょうね?