NVIDIA Tiled Caching Nedir?

In Makale by Recep Baltaş3 Comments

NVIDIA’nın Maxwell ile birlikte kullanmaya başladığı Tiled Caching yönteminin nasıl çalıştığına bakıyoruz.

NVIDIA, geçtiğimiz günlerde San Francisco’da düzenlediği etkinlikte yeni GTX 1080 Ti ekran kartını tanıttı. Firma bu tanıtımda ilk defa Maxwell ile birlikte kullanmaya başladığı Tiled Caching yönteminden bahsetti. Kökü 1989’a kadar giden, 1996’da ise piyasadaki ürünlerde kullanılmaya başlayan bu teknolojinin atası Tiled Rendering, daha çok mobil GPU’larda kullanılıyordu. NVIDIA, Tiled Rendering tekniğini biraz daha değiştirerek modern GPU’lara uyarlamış ve bu sayede Maxwell ile inanılmaz bir güç tasarrufu ve performans artışı elde etmiş. Peki bu teknoloji nasıl çalışıyor?

Tiled Rendering

Tiled Caching’i anlamak için öncelikle Tiled Rendering’i bilmek gerek. Bölünmüş işleme olarak adlandırabileceğimiz bu yöntem, mobil GPU’larda kullanılan ve karelerin bir bütün olarak değil, parça parça işlendiği bir render tekniği.

Öncelikle geleneksel render işleminde her bir kare bir bütün olarak ele alınıyor. Bu yönteme Immediate Rendering adı veriliyor, yani anında işleme. Fakat bu işlem, ekran kartı belleğine çok fazla veri yazılması anlamına geliyor.

Bölünmüş İşleme tekniğinde ise ekran parçalara ayrılıyor. Daha sonra her bir parça iki işlemden geçiyor. İlk işlemde görüntünün hangi alanlarında geometrik çizgiler olduğu tespit ediliyor ve elde edilen bilgi ekran kartı belleğine yazılıyor. İkinci geçişte ise bu geometriler tekrar işleme alınıyor ve bir sonraki bölüme geçmeden önce art arda renderlanıyor.

Bölümlerin boyutu, bütün render işlemi GPU üzerinde gerçekleşecek şekilde ayarlandığından ekran kartı belleğine sadece renk bilgisi yazılıyor. Fakat bu işlemde ortaya çıkan gruplandırma işlemi, gecikmeye ve ekran kartı sürücünün karmaşıklaşmasına yol açıyor. Bir başka önemli sorun da gruplandırma bilgisini kaydetmek ve daha sonra okumak için ekran kartı belleği kullanılması, karede yer alan geometri verisine bağlı olarak çok fazla bant genişliği gerektiriyor. Bu durumda bölünmüş render işlemi ancak piksel başına tasarruf edilen bant genişliği gruplandırma için kullanılan bant genişliğinden fazla olduğunda mantıklı oluyor.

Örneğin basit, az geometri içeren mobil oyunlar söz konusu olduğunda bu tekniği kullanmak mantıklı. Fakat inanılmaz render yükü barındıran günümüz oyunlarında bu yöntemi kullanmak daha fazla bant genişliği kullanılması anlamına gediğinden dolayı mantıklı değil.

Tiled Caching

Öte yandan NVIDIA bu tekniği biraz daha değiştirip Maxwell ile birlikte masaüstü PC’lere getiriyor. Firma, yine her bir kareyi bir bütün olarak işleme tekniğini kullanmaya devam ediyor. Fakat karelerde yer alan geometri verisini ayırıp bunları ekran kartı belleğine yazmak yerine çok daha hızlı olan L2 önbelleğe yazıyor.

Ayrıca her bir karenin karmaşıklığına göre gereken geometri hesabı gerçek zamanlı olarak tespit edilip buna göre L2 bellekte yer ayrıldığından dolayı da ön bellek taşması söz konusu olmuyor.

NVIDIA, bu teknolojiyi kullanabilmek için Kepler’den sonra L2 ön belleğin boyutunu tam sekiz kat artırarak 256 KB’tan 2 MB’a çıkarttı. Titan X’in kalbinde yatan GP102 GPU’sunda ise ön bellek iki katı daha artışla 4 MB seviyesine getirildi.

Sonuç olarak bu yeni yöntem sayesinde firma güç tüketimini azaltarak performansı artırmayı başarmış. Yeni nesil 4:1 ve 8:1 renk sıkıştırma oranı ile Tiled Caching bir araya gelince de ortaya çok daha verimli bellek bant genişliği kullanımı çıkmış.