L3キャッシュは、Sandy-Bridge E Xeon CPUのすべてのコアで共有されますか?


12

関連する質問私は、L3キャッシュを倍増するという点で、デュアルCPUシステムの利点について尋ねました。

ただし、Xeon E5-2600シリーズのCPUには、コアあたり正確に2.5 MBのL3キャッシュがあることに気付きました。

これにより、オペレーティングシステムはコアごとに2.5 MBのL3キャッシュを予約していると思います。ただし、L3キャッシュがすべてのコアで共有されているという矛盾した印象もあります。これに関する驚くべき情報や議論はほとんどありません。

私の主な懸念は、優先度の低いバックグラウンドアプリケーションがL3キャッシュを「占有」し、優先度の高いフォアグラウンドアプリケーションのパフォーマンスを低下させるかどうかです。この質問の動機となっている2つの特定のパフォーマンスの問題。

  1. 特定のC ++プログラムのコンパイルには、VS 2008の現在の開発システムで25分必要ですが、別のシステムでは、非常に高速で、VS 2008で同じ設定を使用すると、わずか5分で済みます-ほぼハイエンドのi7を持っているという事実にもかかわらず- 970 CPUおよび十分なRAM。

  2. 私のシステムでは、プログラムの実行(メインウィンドウの表示)に最大20秒かかることがよくあります。また、関連する注記では、コンテキストメニューのエントリを制限しようとしたにもかかわらず、WindowsシェルはWindowsエクスプローラーのコンテキストメニューを表示するのに最大10秒を必要とします(関連する動作も同じくらい長くかかります)(現在、おそらく10を超えています)デフォルト)。

私のシステムには、何年にもわたってインストール(およびアンインストール)した非常に多くのアプリケーションが確実に読み込まれていますが、それでもシステムを合理化するために最善を尽くします。

また、優先度の低い多くのバックグラウンドアプリケーションを実行しています。特に、CrashPlanなどの冗長クラウドバックアップソフトウェアは、通常、この6コア12スレッドシステムの合計CPU使用率の約25%を使用します。

新しいコンピュータを手に入れます。私は引き続き多くのバックグラウンドアプリケーションを実行し、多くのプログラムをインストール/アンインストールすることを知っています。コアだけでなくL3キャッシュも2倍にするデュアルCPUシステムを入手すると、恐ろしいC ++コンパイラのパフォーマンスと一般的なシステムの速度低下を克服するのに役立つと思ったら、喜んでそれを行います。

そこなければならないとしても、多くのプログラムやバックグラウンドアプリケーションで、ハイエンドのシステムは非常にゆっくりと動作しない理由もありません。しかし、システムに与えるCPUパワーとL3キャッシュの量に関係なく問題が発生する場合は、非常に多くのプログラムとバックグラウンドアプリケーションがインストールされて実行されているという理由だけで、デュアルCPUで$ 2,500を無駄に使いたくない私の問題の解決に役立たないシステム。

特に、L3キャッシュがすべてのコアで共有されているかどうかに関する質問(低優先度のバックグラウンドアプリケーションがL3キャッシュを独占している可能性が高いため、優先度の高いプログラムの速度が低下している可能性があります)、または個別に関連付けられている場合コア、いただければ幸いです。


L3が共有されたという印象も受けていたと言う以外は、個人的に良い答えはありません。「Xeon」が10年間インテル製品であるのに、なぜこれらを「第2世代」のXeonと呼んでいるのでしょうか。(これがSandy Bridge i3 / 5/7チップが「第2世代」であることのアナロジーによる場合、それは悪いアナロジーです)
Shinrai

Intelでは、CPUのi7-2600シリーズを「第2世代」と呼んでいます(ark.intel.com/products/family/59136/…)。「第2世代Xeon」とは、2012年3月6日のXeon Sandy-Bridge EアーキテクチャCPUの同等リリース(en.wikipedia.org/wiki/…)を意味します。
Dan Nissenbaum 2012

1
それはあなたが作っていると私が考えた類推です。それは悪いものです(これらは第2世代i7ですが、これらは第2世代Xeonではありません)。タイトルIMOを変更します... 12歳のプロセッサに関する質問を見つけることを期待していました。ここをクリックしてから。「2nd generation」を「Sandy Bridge-E」に変更するかもしれません。
Shinrai

回答:


13

これらのCPUでは、各物理コアに独自のL2キャッシュがあります。L3キャッシュはすべてのコアで共有され、包括的です。つまり、コアのL2キャッシュにあるデータはL3キャッシュにもあります。

これはL3スペースの無駄のように見えるかもしれませんが、実際には、L3をコア間メモリー操作の加速に非常に貴重なものにします。L3キャッシュの主な目的は、コアのスイッチボードおよびステージング領域として機能することです。たとえば、あるコアが別のコアによってメモリの領域がキャッシュされているかどうかを知りたい場合、L3キャッシュをチェックできます。情報が1つのコアで処理され、次に別のコアで処理する必要がある場合、低速のオフチップメモリ​​ではなく、L3キャッシュを介して情報を渡します。それ以外では、通常のアルゴリズムを除いて、パフォーマンスへの影響はそれほど大きくありません。L2キャッシュは小さなものには十分な大きさで、L3キャッシュは大きなものには小さすぎます。

したがって、各コアには独自の256KB L2キャッシュがあり、実質的に256KBがL3キャッシュに予約されていますが、残りはすべてのコアで共有されます。他のコアでのそれほど重要でないアクティビティは、L3スペースの使用から利益を得るより重要なタスクのパフォーマンスに悪影響を与える可能性があります。ただし、前述の理由により、実際にはそれほど大きな影響はありません。また、キャッシュの汚染を最小限に抑えるために「圧縮やスキャンなどの」「バルクデータ」操作を最適化する以上のことを考慮する必要はありません。(たとえば、非一時的な操作を使用します。)


0

キャッシュのすべてのレベルがチップに直接実装され、L2とL3は同じものである(Intelだけが違いを認識し、AMDがそれらを組み合わせる)ことは私の理解です。これを念頭に置いて、CPUのL3キャッシュがデュアルソケットマザーボードのCPU間で共有されていないことを想像します。これは、CPUごとにRAMへの個別のメモリチャネルを表示するのが一般的であることも覚えておいてください。

私が間違っている場合、誰かが私を訂正します。


L2とL3はまったく同じではありません。最近のIntelの設計では、L1 / L2はコアごとに小さく(32k L1 I $&D $ / 256k統合L2)、L3は包括的でGPUとすべてのコアで共有されます。L1 / L2は物理的に分離されていますが、一種の同様の目的に役立ちます(つまり、単一コアのメモリアクセスを高速にします)。インクルーシブL3には別の目的があります。コア(およびGPU)間のコヒーレンシです。@DavidSchwartzの回答を参照してください。
Peter Cordes
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.