L3 キャッシュのパフォーマンスへの影響 - デュアル プロセッサ システムの価値はありますか?

L3 キャッシュのパフォーマンスへの影響 - デュアル プロセッサ システムの価値はありますか?

新しいハイエンド システムを購入する予定で、デュアル プロセッサ Xeon システム (新しいハイエンド Xeon E5-2687W を検討しています) が、L3 キャッシュ (CPU あたり 20 MB) の倍増により、現実的に目立ったパフォーマンスの向上をもたらすかどうかをもっとよく理解したいと思っています。

(これは、コアと RAM が 2 倍になったことによる追加の利点に加えて発生します。)

私の使用シナリオは、大まかに言うと、常時多数のバックグラウンド アプリケーションが稼働しているというものです。3 つまたは 4 つのデータ圧縮/バックアップ アプリケーション、影響の少ない Web サーバー、常時 1 つまたは 2 つの仮想マシン (通常はかなりアイドル状態)、および CPU コアのかなりの部分 (ただし少量) を使用するユーティリティ プログラムが 20 個ほどあります。合計すると、コンピューターをアクティブに使用していないときは、現在の i7-970 6 コア (12 スレッド) システムで、CPU パワー全体の約 25% が使用されています。

日常的な作業を行っていると、CPU 使用率が 50% を超えることが多く、時には 75% ~ 80% に達することもあります。

Xeon E5-2687W は、第 2 世代の i7 であるだけでなく (そのためパフォーマンスが向上するはずです)、6 コアではなく 8 コア (16 スレッド) を備えています。このため、CPU 使用率が 75% の範囲に入る頻度はさらに低くなると予想されます。とはいえ、コアと RAM を 2 倍にできるかどうかは検討事項です。

しかし、結局のところ、この決定は L3 キャッシュを 2 倍にすることで顕著な改善が得られるかどうかにかかっていると思います。CPU パワーに関しては、多くのベンチマークがあり、多くの議論が行われています。しかし、L3 キャッシュの使用率や、L3 キャッシュの増加 (デュアル プロセッサで 2 倍にするなど) がパフォーマンスにどのような影響を与えるかについての議論はほとんどありません。

例えば、複数のプロセスが実行されていますが、それぞれが大きな L3 キャッシュの恩恵を受けています (頻繁にファイル システムをスキャンするバックグラウンド プロセスの場合など)。そのため、各プロセスに有効な L3 キャッシュが 2 倍あるため、各 CPU でアクティブなコアが 1 つだけであっても、デュアル CPU を使用するとシステム全体のパフォーマンスが著しく向上する可能性があります。

L3 キャッシュ サイズを増やす (または 2 倍にする) ことの利点を誰かが理解してくれることを願っています。

注: 私が検討している CPU (Xeon E5-2687W) には 20 MB の L3 キャッシュがあるため、デュアル CPU を搭載したシステムには 40 MB の L3 キャッシュが搭載されます。

答え1

キャッシュに関する質問ではいつものことですが、答えは「完全にワークロード次第」です。キャッシュは、実行中のプロセスがメモリへのアクセスにかなりの時間を費やしている場合にのみ役立ちます。そしてメモリ アドレス指定の参照の局所性が顕著に現れます (この点では、コアあたりの L1/L2 キャッシュが小さいことに満足していません)。

異なるスレッド内で多数のプロセスが実行されると、共有キャッシュのスラッシングが発生する可能性が高くなり、そうでなければ達成できたはずのパフォーマンスの向上が減少します。これは、コア数の増加とともにキャッシュ サイズも増加する理由でもあります。メモリを競合する実行中のスレッドが増えるほど、共有キャッシュを実際に役立てるには、より大きなサイズが必要になる可能性が高くなります。

かなり古い記事がありますトムズハードウェアさまざまなレンダリング/グラフィック ワークロードについて、L3 キャッシュありとなしの 2 つの古い P4 チップを比較します。数値は、ベンチマーク全体と同様に役に立たないものですが、一般的なキャッシュ アーキテクチャ、特に L3 キャッシュに関するわかりやすい説明が含まれています。

結論: 違いに気付かない可能性は高いですが、正確な数値が必要な場合は、両方の CPU を購入し、両方でワークロードを実行して実行時間を比較する必要があります。

答え2

「L3 キャッシュが 20 MB 増えただけ」と言う人は、自分が何を言っているのか分かっていないだけです。特定のアーキテクチャのキャッシュ サイズを適切に増やすと、平均的な負荷でもパフォーマンスが大幅に向上する可能性があります。これは、Sandy Bridge プロセッサと Ivy Bridge プロセッサに実装されている Turbo Boost アーキテクチャについて考えると、さらに真実味を帯びてきます。

私は、x86/x86_64 アーキテクチャのいくつかの異なる段階でこれを個人的に実験する機会がありました: Sempron vs Athlon、Celeron vs Pentium 4、Pentium4 vs Athlon、Pentium4-m vs Pentium-m、Pentium 4 vs Xeon、i7 vs Xeon E5。キャッシュが大きい場合 (通常は 2 倍またはほぼ 2 倍)。

キャッシュを 2 倍にするコストが手頃かどうかは、あなた次第です。しかし、Xeon は ECC メモリなどのテクノロジをサポートしているため、安定性の点で優れています。これらのテクノロジは、明らかに特定のアプリケーション (私の場合、アルミダイカストの 3D シミュレーションなど) では必須です。

答え3

あなたが行っていることと、現在のシステムでそれをどのように処理しているかについての説明から、なぜそれを交換したいのか不思議に思うだけです。L3 キャッシュはせいぜいわずかなブーストしか与えませんが、多大なコストがかかります。しかし、あなたが説明した使用例では、L3 キャッシュをわずか 20 MB 増やしただけでは、何の違いも見られません。

関連情報