2013-10-28 11 views
10

L2 önbellek, referansların konumu açısından Kepler mimarisine sahip GPU'larda nasıl çalışır? Örneğin, bir iş parçacığı, genel bellekte bir adrese erişirse, bu adresin değerini L2 önbelleğinde olmadığını varsayarak, önbelleğe alınan değer nasıl olur? Zamansal mı? Ya da bu adresin L2 önbelleğine getirilen diğer yakın değerleri de (mekânsal)?Kepler'de L2 önbellek

Aşağıdaki resim NVIDIA teknik incelemesinden alınmıştır.

Picture is from NVIDIA whitepaper

+1

L2 önbellek hesaplama yeteneği 2.0 ve üstü ile tanıtıldı ve Kepler mimarisine desteklenmeye devam etmektedir. Kullanılan önbellek politikası, temel bellek bant genişliği darboğazından kaçınmak olan ana amaç olan LRU'dur (en son olarak kullanılan). Bunu "Cuda Uygulama Tasarım ve Geliştirme" kitabından okumuştum. Bu, sorunuza cevap verip vermediğinden emin değil. –

+3

L1 önbelleğinin önbellek boyutu 128 bayttır. L2 önbelleğinin, 32 baytlık bir önbellek boyutu vardır. Yani bir L2 bayanı 32 baytlık bir yükü tetikler. Normalde normal yükler için Kepler normalde L1'e sahip değildir. –

cevap

10

Birleştirilmiş L2 önbellek hesaplama yeteneği 2.0 ve üstü ile tanıtıldı ve Kepler mimarisine desteklenmeye devam etmektedir. Kullanılan önbellek politikası, temel bellek bant genişliği darboğazından kaçınmak olan ana amaç olan LRU'dur (en son olarak kullanılan). GPU uygulaması, her iki yer türünü de gösterebilir (zamansal ve mekansal).

Belirli bir bellek okunduğunda, önbellekte L1 ve L2 görünüyorsa, önbellek satırından 128 bayt yüklenir. Bu varsayılan moddur. Aynısı, 128 bit erişim modelinin neden iyi sonuç verdiğini gösteren aşağıdaki diyagramdan anlaşılabilir.

enter image description here

+2

Yukarıdaki yazının ilk paragrafı soruyu yanıtlar. Bu cevabın ikinci paragrafı hakkında, yalnızca (varsayılan modda) cihaz mimarisinin Fermi olduğu zaman doğru olduğunu düşünüyorum. @Robert Crovella'nın yorumlarda da belirttiği gibi, Kepler bir L2 önbellek dosyasında 32 baytlık bir yüke neden oluyor. Ayrıca, bence diyagram yanıltıcıdır. Bir SM düşük sayıda iş parçacığı tarafından kullanılmadığında, daha geniş global bellek istekleri, global bellek bant genişliğini doyurabilir. SM daha fazla iş parçacığıyla daha fazla/dolu hale geldiğinde, genel bellek bant genişliği 4 baytlık yüklerle bile doygun hale getirilebilir. – Farzad