L3 önbellek Sandy-Bridge E Xeon CPU için tüm çekirdekler tarafından paylaşılıyor mu?


12

Bir de ilgili soruya ben L3 önbellek iki katına açısından çift işlemci sisteminin yararına sordu.

Ancak, Xeon E5-2600 serisi CPU'ların çekirdek başına tam olarak 2.5 MB L3 önbelleği olduğunu fark ettim .

Bu, işletim sisteminin çekirdek başına 2,5 MB L3 önbellek ayırdığına inanmamı sağlıyor. Bununla birlikte, L3 önbelleğinin tüm çekirdekler arasında paylaşıldığı konusunda çelişkili bir izlenim de var . Bu konuda şaşırtıcı derecede az bilgi veya tartışma var.

Benim en büyük endişem, düşük öncelikli arka plan uygulamalarının L3 önbelleğini "barındırıp" tutamayacağı ve yüksek öncelikli ön plan uygulamaları için performansı yavaşlatıp yavaşlatamayacağı. Bu soruyu motive ettiğim iki özel performans sorunu.

  1. Belli bir C ++ programını derlemek VS 2008'deki mevcut geliştirme sistemimde 25 dakika gerektirirken, başka bir sistemde çok daha hızlı gider, VS 2008'de aynı ayarlarla sadece 5 dakika gerektirir - neredeyse üst düzey bir i7'ye sahip olmamıza rağmen - 970 CPU ve yeterli RAM.

  2. Programların sistemimde çalışması (yani ana pencerelerini görüntülemek) genellikle 20 saniye sürer; ve ilgili bir notta, Windows menüsü bağlam menüsünü görüntülemek için Windows kabuğunun 10 saniyeye kadar (ve ilgili davranışların da uzun sürdüğü) gerekir, ancak bağlam menüsü girişlerini sınırlama girişimlerime rağmen (şu anda belki de 10 tane daha var. varsayılan).

Sistemime kesinlikle yıllar içinde yüklediğim (ve kaldırdığım) çok sayıda uygulama yüklendi, ancak yine de sistemi kolaylaştırmak için elimden geleni yapıyorum.

Ayrıca çalışan birçok düşük öncelikli arka plan uygulamam var; özellikle, bu 6 çekirdekli 12 iş parçacıklı sistemdeki toplam CPU kullanımının yaklaşık% 25'ini kullanan CrashPlan gibi gereksiz bulut yedekleme yazılımı.

Yeni bir bilgisayar alacağım. Birçok arka plan uygulaması çalıştırmaya ve birçok programı yüklemeye / kaldırmaya devam edeceğimi biliyorum. Sadece çekirdekleri değil, L3 önbelleğini iki katına çıkartan bir sistem elde etmenin, korkunç C ++ derleyici performansının ve genel sistemin yavaşlamasının üstesinden gelmeye yardımcı olacağını düşünürsem, bunu memnuniyetle yaparım.

Orada gereken bir üst uç sistemi hatta birçok program ve arka plan uygulamaları ile, yani yavaş çalışır hiçbir neden olabilir. Ancak sistemime ne kadar CPU gücü ve L3 önbellek verirsek vereyim sorunlarım ortaya çıkarsa, yüklü ve çalışan çok sayıda program ve arka plan uygulamam olduğu için, çift CPU'ya 2.500 $ ek dolar harcamak istemiyorum sorunumu çözmeye yardımcı olmayacak bir sistem.

Özellikle L3 önbelleğinin tüm çekirdekler arasında paylaşılıp paylaşılmadığı (düşük öncelikli arka plan uygulamalarının L3 önbelleğini akla getirebileceği, daha yüksek öncelikli programları yavaşlatabileceği) veya daha ziyade bireye bağlı olup olmadığı hakkındaki sorumla ilgili herhangi bir öneri çekirdekler, takdir edilecektir.


Kişisel olarak L3'ün paylaşıldığı izlenimi altında olduğumu söylemek dışında iyi bir cevabım olmadığı iyi bir soru. 'Xeon' on yıldır bir Intel ürünü olduğunda neden dünyada bu '2. nesil' Xeon'ları çağırdığınızı soracağım. (Bu Sandy Bridge i3 /
5/7

Intel i7-2600 CPU serisi "2. nesil" ( ark.intel.com/products/family/59136/… ) olarak adlandırır. "2. nesil Xeon" ile, 6 Mart 2012'de Xeon Sandy-Bridge E mimarisi CPU'larının eşdeğer sürümünü kastediyorum ( en.wikipedia.org/wiki/… ).
Dan Nissenbaum

1
Yaptığını düşündüğüm benzetme bu. Bu kötü bir tane (bunlar 2. nesil i7'ler ama bunlar 2. nesil Xeons değil) ve IMO başlığını değiştirirdim ... 12 yaşındaki işlemciler hakkında bir soru bulmayı bekliyordum ve bu birçok insanı tutabilir buraya tıklamaktan. Belki '2. nesil' yi 'Sandy Bridge-E' olarak değiştirin.
Shinrai

Yanıtlar:


13

Bu CPU'larda, her fiziksel çekirdeğin kendi L2 önbelleği vardır. L3 önbellek tüm çekirdekler tarafından paylaşılır ve kapsayıcıdır - yani herhangi bir çekirdeğin L2 önbelleğinde bulunan tüm veriler de L3 önbelleğinde bulunur.

Bu bir L3 alanı kaybı gibi görünse de, aslında L3'ü çekirdekler arası bellek işlemlerini hızlandırmak için paha biçilmez kılıyor. L3 önbelleğinin temel amacı çekirdekler için bir pano ve evreleme alanı olarak hareket etmektir. Örneğin, bir çekirdek bir bellek bölgesinin başka bir çekirdek tarafından önbelleğe alınıp alınmayacağını bilmek istiyorsa, L3 önbelleğini kontrol edebilir. Bilgiler bir çekirdek tarafından işlendiyse ve bir sonraki işlemin başka bir çekirdek tarafından işlenmesi gerekiyorsa, daha yavaş yonga dışı bellek yerine L3 önbelleğinden dağıtırlar. Bunun ötesinde, olağan dışı algoritmalar dışında performans etkisi o kadar da fazla değil - L2 önbellek küçük şeyler için yeterince büyük ve L3 önbellek büyük şeyler için çok küçük.

Bu nedenle, her çekirdeğin kendi 256KB L2 önbelleği ve etkili bir şekilde L3 önbelleğinde ayrılmış 256KB olmasına rağmen, denge tüm çekirdekler tarafından paylaşılır. Diğer çekirdeklerdeki daha az önemli faaliyet, L3 alanını kullanmaktan faydalanan daha önemli bir görevin performansına zarar verebilir. Ancak bahsettiğim nedenlerden dolayı, uygulamada genellikle önemli bir etkisi yoktur ve önbellek kirliliğini en aza indirmek için "toplu veri" işlemlerini (sıkıştırma ve tarama gibi) optimize etmenin ötesinde endişelenmeye değmez. (Örneğin, geçici olmayan işlemler kullanarak.)


0

Tüm önbellek düzeylerinin doğrudan yonga üzerinde uygulandığını ve L2 ve L3'ün aynı olduklarını (sadece Intel farkı tanır, AMD bunları birleştirir). Bunu göz önünde bulundurarak, CPU'lardaki L3 önbelleğinin çift soketli bir anakarttaki CPU'lar arasında paylaşılmadığını hayal ediyorum. Bu aynı zamanda CPU başına RAM'a ayrı bellek kanalları görmenin tipik olduğunu akılda tutarak mantıklıdır.

Yanılıyorsam biri beni düzeltir.


L2 ve L3 aynı şey değildir. Son Intel tasarımlarında, L1 / L2 çekirdek başına ve küçüktür (32k L1 I $ & D $ / 256k birleşik L2), L3 kapsayıcı ve GPU ve tüm çekirdekler tarafından paylaşılmaktadır. L1 / L2 fiziksel olarak ayrıdır, ancak benzer amaçlara hizmet eder (yani tek bir çekirdek için bellek erişimini hızlı hale getirmek). Kapsayıcı L3'ün başka bir amacı vardır: çekirdekler (ve GPU) arasındaki tutarlılık. @ DavidSchwartz'ın cevabına bakınız.
Peter Cordes
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.