ロードレイテンシ、ロード帯域、ストア帯域を計測するツールです。
[ダウンロード loadbench799.zip (新テストバージョン MS-DOS用)]
[ダウンロード loadbench24.zip (旧バージョン Windows用)]
アーカイブには次の実行ファイルとそのソースが含まれています。
新バージョンの計測ツールはWindows上では実行できません。PC/AT互換機用MS-DOSから実行してください。
WindowsXP/2000からMS-DOS起動ディスクを作成する方法については付属の readme.txt を参照してください。
Pentium4 1.4GHz + i850(PC800) でレイテンシを計測した結果は次のようになります。
latency.exe Load Latency Measurement Tool v0.7 CPU Frequency : 1406.2 MHz Range Frequent access Infrequent access 256B : 2.0clock( 1.4ns) 2.0clock( 1.4ns)~ 2.0clock( 1.4ns) 512B : 2.0clock( 1.4ns) 2.0clock( 1.4ns)~ 2.0clock( 1.4ns) 1KB : 2.0clock( 1.4ns) 2.0clock( 1.4ns)~ 2.0clock( 1.4ns) 2KB : 2.0clock( 1.4ns) 2.0clock( 1.4ns)~ 2.0clock( 1.4ns) 4KB : 2.0clock( 1.4ns) 2.0clock( 1.4ns)~ 2.0clock( 1.4ns) 8KB : 2.0clock( 1.4ns) 2.0clock( 1.4ns)~ 2.0clock( 1.4ns) 16KB : 17.9clock( 12.8ns) 9.0clock( 6.4ns)~ 9.0clock( 6.4ns) 32KB : 18.0clock( 12.8ns) 9.0clock( 6.4ns)~ 9.0clock( 6.4ns) 64KB : 18.0clock( 12.8ns) 9.0clock( 6.4ns)~ 9.0clock( 6.4ns) 128KB : 18.0clock( 12.8ns) 9.0clock( 6.4ns)~ 9.0clock( 6.4ns) 256KB : 18.2clock( 13.0ns) 9.1clock( 6.5ns)~ 9.3clock( 6.6ns) 512KB : 241.6clock(171.8ns) 240.7clock(171.2ns)~247.0clock(175.7ns) 1024KB : 249.0clock(177.1ns) 248.0clock(176.3ns)~253.7clock(180.4ns) 2048KB : 253.6clock(180.4ns) 252.3clock(179.4ns)~258.7clock(184.0ns) 4096KB : 256.5clock(182.4ns) 256.3clock(182.2ns)~263.4clock(187.3ns) 8192KB : 258.8clock(184.1ns) 257.7clock(183.2ns)~265.7clock(188.9ns) 16384KB : 262.0clock(186.3ns) 263.9clock(187.7ns)~272.2clock(193.6ns) 32768KB : 266.4clock(189.4ns) 268.4clock(190.8ns)~275.2clock(195.7ns)
アクセス範囲は 256Byte, 512Byte, 1KByte, 〜 32MByte でそれぞれ計測します。
レイテンシの計測では、各アクセス範囲内でランダムアクセスを行ないます。ただし、同一キャッシュラインに連続してアクセスすることがないように、アクセス毎にキャッシュラインが変わるようにしています。
インターバルをとらずに(時間間隔を開けずに)アクセスを繰り返した場合のレイテンシ(Frequent
access)と、インターバルをとって(時間間隔を開けて)アクセスした場合のレイテンシ(Infrequent access)を計測します。
Infrequent accessでは、インターバル時間を何度も変えて計測し、アクセス時間のぶれも計測します。
ここで計測しているレイテンシは、32ビットのデータをレジスタに読み込むロード命令を実行してから、実際にレジスタ内にデータが格納されるまでの時間です。
メモリへアクセスする場合、
という手順を踏むため、メモリそのもののアクセスレイテンシを計測しているわけではありません。
CPUのキャッシュシステムも含めたアクセスレイテンシを計測しています。
bwload.exe bwstore.exe Load Bandwidth Measurement Tool v0.9 CPU Frequency : 1406.2 MHz Range Int32bit Float64bit MMX64bit SSE128bit 256B : 5364 MB/S 10727 MB/S 10727 MB/S 21452 MB/S 512B : 5364 MB/S 10727 MB/S 10727 MB/S 21452 MB/S 1KB : 5364 MB/S 10727 MB/S 10727 MB/S 21452 MB/S 2KB : 5364 MB/S 10727 MB/S 10727 MB/S 21452 MB/S 4KB : 5364 MB/S 10727 MB/S 10727 MB/S 21452 MB/S 8KB : 5364 MB/S 10727 MB/S 10727 MB/S 21451 MB/S 16KB : 3732 MB/S 5722 MB/S 5722 MB/S 11442 MB/S 32KB : 3732 MB/S 5722 MB/S 5722 MB/S 11442 MB/S 64KB : 3732 MB/S 5722 MB/S 5722 MB/S 11442 MB/S 128KB : 3731 MB/S 5721 MB/S 5721 MB/S 11370 MB/S 256KB : 3576 MB/S 5358 MB/S 5356 MB/S 9974 MB/S 512KB : 1436 MB/S 1563 MB/S 1568 MB/S 1955 MB/S 1024KB : 1436 MB/S 1562 MB/S 1566 MB/S 1957 MB/S 2048KB : 1429 MB/S 1562 MB/S 1567 MB/S 1956 MB/S 4096KB : 1431 MB/S 1562 MB/S 1567 MB/S 1956 MB/S 8192KB : 1436 MB/S 1562 MB/S 1567 MB/S 1956 MB/S 16384KB : 1437 MB/S 1563 MB/S 1567 MB/S 1956 MB/S 32768KB : 1437 MB/S 1562 MB/S 1567 MB/S 1957 MB/SStore Bandwidth Measurement Tool v0.9 CPU Frequency : 1406.2 MHz Range Int32bit Float64bit MMX64bit SSE128bit 256B : 3065 MB/S 4462 MB/S 6130 MB/S 12259 MB/S 512B : 2802 MB/S 4639 MB/S 4768 MB/S 6130 MB/S 1KB : 2802 MB/S 3391 MB/S 4768 MB/S 6130 MB/S 2KB : 2861 MB/S 3391 MB/S 4768 MB/S 6130 MB/S 4KB : 2811 MB/S 3391 MB/S 4768 MB/S 6130 MB/S 8KB : 2861 MB/S 3391 MB/S 4768 MB/S 6130 MB/S 16KB : 2813 MB/S 3391 MB/S 4768 MB/S 6130 MB/S 32KB : 2861 MB/S 3391 MB/S 4768 MB/S 6130 MB/S 64KB : 2861 MB/S 3691 MB/S 4768 MB/S 6130 MB/S 128KB : 2836 MB/S 3690 MB/S 4768 MB/S 6130 MB/S 256KB : 2834 MB/S 4605 MB/S 4764 MB/S 6123 MB/S 512KB : 872 MB/S 869 MB/S 869 MB/S 870 MB/S 1024KB : 849 MB/S 844 MB/S 845 MB/S 847 MB/S 2048KB : 850 MB/S 845 MB/S 847 MB/S 847 MB/S 4096KB : 848 MB/S 844 MB/S 845 MB/S 846 MB/S 8192KB : 848 MB/S 844 MB/S 845 MB/S 847 MB/S 16384KB : 849 MB/S 844 MB/S 845 MB/S 847 MB/S 32768KB : 851 MB/S 845 MB/S 847 MB/S 850 MB/S
帯域計測では、各アクセス範囲内でシーケンシャルアクセスを行ないます。
整数32ビット、実数64ビット、MMX64ビット、SSE128ビット命令での読み込み・書き込み帯域をそれぞれ計測します。
MMXやSSE機能を持たないCPUの場合は、その項目は計測されません。