32bit vs 64bitでの速度比較
色々なCPUで、32bit→64bitでの速度向上率を計測してみました。
まずは対象のマシン。
マシン名 | CPU | RAM | OS |
---|---|---|---|
マシンA | Core i7 940(2.93GHz) | 6GB | Windows XP Pro x64 |
マシンB | Core 2 Extreme QX6700(2.66GHz) | 8GB | Windows Vista Ultimate x64 |
マシンC | Athlon X2 5050e(2.6GHz) | 4GB | Windows Vista Business x64 |
プログラムはGA将 Ver.4の開発中バージョンで、4x4のリバーシを自己対戦で学習をする、シングルスレッドのプログラムです。1万局分の学習時間を計測して、そこから速度を測ります。
計測バージョンでは乱数のシードを固定にしてあるので、実行速度以外は同じ内容の学習になります。あと、SetThreadAffinityMaskで動作するコアを0番目に割り当ててます。
んで、計測結果。3回計測した中央値です。
マシン名 | 32bit 動作時間(秒) | 64bit 動作時間(秒) | 速度向上率 |
---|---|---|---|
マシンA | 16.74 | 15.35 | +9% |
マシンB | 23.85 | 18.94 | +25% |
マシンC | 29.76 | 25.93 | +14% |
OSとか色々違うんで何とも言えませんが、何故かCore 2が向上率でトップ。それと、この結果だけだとXPよりVistaの方が伸び率が高い事になりますが、実際のところどうなんでしょうね。
今回はあくまで試しにやってみただけであって、本来は本番用の将棋のコードを動かして結果を比べるべきですし、また後でちゃんと調べてみます。場合によってはマシンAとCのOSを入れ替えるとかも出来ますし、速くなるならそうしようかと思います。