<独自ベンチマーク・プログラムについて>
・純粋に
CPU単独の性能比較を主眼にする
・GUI関連の処理がないWindowsコマンドラインプログラム
・シングルスレッドプログラム
※マルチスレッド化の効果(テスト結果)は、
こちらを参照のこと。
・倍精度実数/4バイト整数混在の演算処理
・実務アプリケーションの中で使われている処理(アルゴリズム)を採用
・実行中ページングが発生しない程度のメモリ確保
<テストの留意点>
・テストモジュールはコンパイラは変わっても、全て同じソースコード(32/64bitコンパチブル・ソース)
・64bitCPU普及の過程では32bitアプリケーションの利用は避けられないため、32bitコードの速度も比較対象に
<用意したテストモジュールと実行方法>
以下20種類のプログラムは、全てソースコードは共通です。一度保存してコマンドライン(cmd,コマンドプロンプト)で実行すると処理時間が表示されます。
利用したコンパイラは以下です。
・Microsoft Visual C++ 6.0
・Microsoft Visual Studio.NET 2003
・Microsoft Visual Studio 2005 Beta2
・Microsoft Platform SDK April 2005
・Intel C++ Compiler 7.1.033(IA32/IA64向け)
・Intel C++ Compiler 8.1.027(IA32/IA64向け) ※IA64はなぜかコンパイル不可?(原因不明)
・Intel C++ Compiler 8.1.019(EM64T向け)
モジュール名 (.exe) |
アドレッ シング |
使用した コンパイラ名 |
最適化 オプション |
Instruction |
| vc6 |
32bit |
MS VC++6.0 |
/O2 |
IA32 |
| vcn |
〃 |
MS VS.NET2003 |
/O2 |
IA32 |
| vcn_sse2 |
〃 |
〃 |
/O2 /G7 /arch:SSE2 |
IA32+SSE2 |
| vc2005 |
〃 |
MS VS2005 Beta2 |
/O2 |
IA32 |
| vc2005_sse2 |
〃 |
〃 |
/O2 /arch:SSE2 |
IA32+SSE2 |
| i7 |
〃 |
Intel C++ 7.1.033 |
/O2 |
IA32 |
| i7_sse2 |
〃 |
〃 |
/O2 /G7 /QxW |
IA32+SSE2 |
| i8 |
〃 |
Intel C++ 8.1.027 |
/O2 |
IA32 |
| i8_sse2 |
〃 |
〃 |
/O2 /G7 /QxW |
IA32+SSE2 |
| i8_sse2n |
〃 |
〃 |
/O2 /G7 /QxN |
〃 |
| i8_m |
〃 |
〃 |
/O2 /G7 /QxB |
PentiumM |
| i8_sse3 |
〃 |
〃 |
/O2 /G7 /QxP |
IA32+SSE3 |
| vc2005_x64 |
64bit(x64) |
MS VS2005 Beta2 |
/O2 |
x64 |
| vc2005_amd64 |
〃 |
〃 |
/O2 /favor:AMD64 |
x64(AMD64) |
| vc2005_em64t |
〃 |
〃 |
/O2 /favor:EM64T |
x64(EM64T) |
| sdk_x64 |
〃 |
Platform SDK(April2005) |
/O2 |
x64 |
| i8_em64t |
〃 |
Intel C++8.1.019 |
/O2 |
x64(EM64T) |
| vc2005_ia64 |
64bit(IA64) |
MS VS2005 Beta2 |
/O2 /G2 |
IA64 |
| sdk_ia64 |
〃 |
Platform SDK(April2005) |
/O2 /G2 |
〃 |
| i7_ia64 |
〃 |
Intel C++ 7.1.033 |
/O2 /G2 |
〃 |
★AMD64系CPU(Athlon64/Opteron)のベンチマーク・テスト
・アーキテクチャーの特性からAthlon64に関しては32bitと64bitのOSの比較も
行いました。
・SSE,SSE2インストラクションがサポートされているため、それぞれの最適化
モジュールでも比較しています。
<Athlon64 3200+/2.0GHz>
テスト用ベースマシン:マウスコンピュータ製 MDV EXTREME 7000RX
モジュール名 (.exe) |
アドレッシング |
Windows XP Professional
(32bit) (msec) |
Windows XP Professional
x64 Edition (msec) |
備考 |
| vc6 |
32bit |
4,734 |
4,750 |
32bitと64bitのOSで明確な違い無し |
| vcn |
〃 |
3,516 |
3,516 |
〃 |
| vcn_sse2 |
〃 |
2,844 |
2,860 |
〃 |
| vc2005 |
〃 |
3,297 |
3,313 |
〃 |
| vc2005_sse2 |
〃 |
2,656 |
2,688 |
〃 |
| i7 |
〃 |
3,438 |
3,453 |
〃 |
| i7_sse2 |
〃 |
3,047 |
3,047 |
〃 |
| i8 |
〃 |
4,375 |
4,391 |
〃 |
| i8_sse2 |
〃 |
3,547 |
3,563 |
〃 |
| vc2005_x64 |
64bit |
- |
2,844 |
64bitアプリケーションは64bitOS上でのみ実行可能 |
| vc2005_amd64 |
〃 |
- |
2,844 |
〃 |
| vc2005_em64t |
〃 |
- |
2,844 |
〃 |
| sdk_x64 |
〃 |
- |
2,844 |
〃 |
| i8_em64t |
〃 |
- |
3,641 |
〃 |
※Intel C++8.0以降に追加された最適化オプション(例:/QxN)では、
Intel系CPU以外では動作不能にしています。
<Dual Xeon(Nocona)2.8GHz>
テスト用ベースマシン:Storm製
Odysseia
モジュール名 (.exe) |
アドレッシング |
Windows XP Professional
(32bit) (msec) |
Windows XP Professional
x64 Edition (msec) |
備考 |
| vc6 |
32bit |
6,250 |
6.250 |
32bitと64bitのOSで明確な違い無し |
| vcn |
〃 |
5,813 |
5,813 |
〃 |
| vcn_sse2 |
〃 |
3,406 |
3,422 |
〃 |
| vc2005 |
〃 |
5,594 |
5,594 |
〃 |
| vc2005_sse2 |
〃 |
3,328 |
3,344 |
〃 |
| i7 |
〃 |
4,656 |
4,672 |
〃 |
| i7_sse2 |
〃 |
3,213 |
3,203 |
〃 |
| i8 |
〃 |
4,688 |
4,688 |
〃 |
| i8_sse2 |
〃 |
3,188 |
3,203 |
〃 |
| i8_sse2n |
〃 |
3,188 |
3,203 |
〃 |
| i8_m |
〃 |
3,453 |
3,453 |
〃 |
| i8_sse3 |
〃 |
3,234 |
3,234 |
〃 |
| vc2005_x64 |
64bit |
- |
4,110 |
64bitアプリケーションは64bitOS上でのみ実行可能 |
| vc2005_amd64 |
〃 |
- |
4,094 |
〃 |
| vc2005_em64t |
〃 |
- |
3,188 |
〃 |
| sdk_x64 |
〃 |
- |
4,110 |
〃 |
| i8_em64t |
〃 |
- |
3,360 |
〃 |
★IA64系CPUのベンチマーク・テスト
・最新Windows Server2003 SP1では
IA-32 Execution Layerがインストールできない状況ですので、IA32系のテストは行っていません。傾向を見たい場合は、
旧ベンチマークテストの結果をご参照下さい。
・IA64ではWindowsXPの今後のリリースはないため、WindowsXP(英語版)のテストも省略しました。
テスト用ベースマシン:
HP製
Workstation zx2000
<Itanium2(McKinley)/900MHz>
モジュール名 (.exe) |
アドレッシング |
Windows Server2003(SP1) Enterprise(64bit)
(msec) |
備考 |
| vc2005_ia64 |
64bit |
10,800 |
- |
| sdk_ia64 |
〃 |
10,840 |
- |
| i7_ia64 |
〃 |
13,520 |
- |
<注意>
・テストで使用したサンプルCPUは、それぞれ現時点での最高スペックのものでは
ありません。最もパフォーマンスの高いものを調べるには実測が一番確実ですが、
当方が一時的に行ったテストでは、それぞれほぼクロックの比率を反映した速度に
なっていることが確認できています。
・IA64とAMD64のサンプルCPUのクロックが2倍以上異なるため、比較する場合は
それなりの比率を考慮して下さい。