Günümüzde bir oyun bilgisayarının en önemli donanımının ekran kartı olduğunu bilmeyen yoktur. Ancak buna rağmen kullanıcıların büyük bir kısmı ekran kartı satın alırken vahim hatalar yapmakta ve konu hakkında yeterince bilgisi olmayan kişilerin hatalı yorumlarına kanmaktadırlar. Yapılan bu hatalar sonucu elde edilen kötü deneyimler hatalı çıkarımlara yol açıp başka kullanıcıların da aldanmasına yol açacak hurafelere dönüşmekte, bu hurafelerse sadece bilinçsiz kullanıcıları değil, ürün almadan önce araştırıp sorgulayan kullanıcıları da etkilemekte ve birçok insanın mağduriyetiyle sonuçlanmaktadır. Ekran kartları konusunda ahkâm kesen kimselerin ekseriyetinin bir gramlık bir bilgi öğrenince kendini bilgisayar uzmanı zanneden ve bu bilgileri edindikleri kaynakları sorgulamaya zahmet etmeyen, pek çok kritik noktayı önemsiz teferruat olarak gören kişiler olduğuna tanık oldum. Uzun zamandır hazırlamayı düşündüğüm bu rehber, ümit ederim ki kullanıcıların oradan buradan edindikleri bilgilerin ne kadar ve neden hatalı olduğunu öğrenmelerine ve teknolojinin hatta hayatın her alanındaki pek çok iddiayı daha sorgulamalarına yol açar.
eski ekran kartı
Her yazı gibi bu da herkese hitap eden bir yazı olmayacaktır. Bu tarz yazılar herkese hitap edemez. Mutlaka birileri için oldukça karışık gelirken başkalarının bunlar zaten bildiğim şeyler, okuyarak vakit kaybettim demelerine sebep olacaktır. Mümkün olduğunca gereksiz detaylara girmemeye ve anlaşılabilir olmaya çalışacağım ancak mutlaka üzerinde durulması gereken konuları es geçmeyecek, ufak bir Google aramasıyla rahatça anlamı öğrenilebilecek olduklarından teknik terimleri kullanmakta tereddüt etmeyeceğim.
Konuya en iyisi, halk arasında yaygın olan mitlerden bahsederek başlayayım. Aşağıdaki safsataları mutlaka pek çok kişiden, hatta çoğunluğun saygı duyduğu ve bilgili sandığı kişilerin ağzından bile işitmişsinizdir:
1/Bellek miktarı performansı belirler ya da bellek miktarının hiçbir zaman, hiçbir önemi yoktur.
2/Ekran kartında performansın belirleyicisi bittir ya da bitin hiçbir önemi yoktur.
3/ROP birimleri artık eskisi kadar ehemmiyet arz etmez.
4/Ekran kartına düşen yük çözünürlükle beraber her zaman lineer olarak artmaktadır.
5/NVIDIA kusursuz driverlar üretir, belalı driverlar her zaman AMD nin eseridir.
6/En güncel driver her zaman en iyi driverdır.
7/Oyun üreticileri her zaman kasti olarak oyunların verimsiz çalışmasını sağlıyorlar. Şu an konsollarda oyunlar tam verimle çalışıyor.
8/Bir driver kurdum mavi ekran almaya başladım. Daha sonra başka drivera geçince sorun düzeldi. O zaman sorunumun donanımın kendisi ile alakası olma olasılığı %0.
9/ Oyunlarda akıcılığın göstergesi fpsdir. Ya da insan gözü x fpsden sonrasını algılayamaz/ x fps yetersizdir en az y fps gerekir.
10/ Bir saniyede gösterilen kare sayısı ekranın tazeleme hızını geçmediği takdirde asla tearing oluşmaz.
11/FRAPS gibi yazılımlar, oyun performansını test etmeye kâfidir.
12/ Overclock çok risklidir ya da hiçbir riski yoktur.
13/ X kartı %Y kadar OC oluyormuş, o zaman ben bu kartı alırsam üç aşağı beş yukarı aynı oranda OC edebilirim. 1 Mhz bile OC olmuyorsa o zaman mutlaka güç kaynağımda ya da soğutmamda problem vardır. Sorunsuz ve yüksek oranda yapılmış bir OC her zaman ekran kartına düşen işlemlerdeki performansı arttırır.
14/ X firması Y GPUlu kartı, Z firmasının Y GPUlu kartından çok daha ucuza satıyor. O zaman Zden almak enayiliktir.
15/TDP ekran kartının tüketebileceği maksimum güç demektir.
16/ Güç tüketimi kartını günde bir iki saat yük altına sokan kullanıcılar için bile çok önemlidir.
17/X GPUlu kartın soğutması çok kötüymüş.
18/ Alacağımız ekran kartının geleceğin teknolojisine sahip olması her zaman büyük bir artı.
19/Stuttering sadece V-SYNCin açık olup olmamasıyla alakalıdır. V-SYNC ile alakalı takılmalarda bu opsiyonu açmak hiçbir zaman stutteringi çözmez, kapatmak her zaman çözüm olur.
20/Oyunlarda takılma varsa donanımlarınızdan biri yetersiz kalıyordur.
21/Ekran kartınızın driverını işaret eden bir mavi ekran alıyorsanız ya kartınızda donanımsal bir hata vardır, ya güç kaynağınız yetmiyordur ya da driverın kendisinde bir sorun vardır.
22/ Stres testleri kartınızın sağlam olup olmadığını anlamanız için yeterlidir. En azından ısınma sorunu yaşayıp yaşamadığınızı anlamak için bu testler %100 yeterlidir.
23/Ekran kartı kaç teraflopluksa o kadar yüksek performansla çalışır.
24/ NVIDIAdan şaşmamak lazım ya da AMDden şaşmamak lazım
25/ X kartı a oyununu oynarken b ayarlarında Yye performans açısından büyük bir fark atıyorsa, aynı oyunun c ayarlarında Ynin Xi geçmesi söz konusu olamaz.
Mitler ve. Gerçekler
Aklıma gelen ve yaygın mitler bunlardı. Ekran kartları konusundaki hurafelerin sayısı rahatça üst düzey bir GPUdaki transistör sayısını geçebilecek durumda. Bu yüzden az yaygın olan ya da olağanüstü saçma olan batıl inançları eledim.
Yukarıda bulunan mitleri bir kenara koyarak bir ekran kartını nasıl değerlendireceğimize bakmak gerekirse. Öncelikle elbette karttaki en önemli kısım GPUdur. GPU ise oldukça komplike bir yapıya sahiptir. Örneğin günümüzde sık kullanılan ve farklı mimarilere sahip 3 GPUnun blok diyagramı:Gtx 970
GM204 blok diyagramı
Hawaii blok diyagramı
Donanım dünyasına aşina olmayan okuyucular için yukarıdaki resimler ürkütücü olabilir. Bu durumda biz nasıl ekran kartı satın alacağız? İlk rakamı aynı olan GPU nun model numarasındaki ikinci rakama bakmak yeter mi? Yoksa azıcık daha bilgi göz çıkarmaz mı?
ROP mu, TMU mu, ALU mu, bit mi, byte mı, cache mi?
GPU en basit haliyle anlatmak gerekirse, performansı belirlemesi açısından 4 temel birime sahiptir: ROP, TMU, Shaderlar ve bellek kontrolcüsü. Cache belleklerin, ACElerin, tessellation unitlerin ve daha bir çok şeyin önemi yok mu yani? Var,ancak konuyu daha da karmaşıklaştırmamak adına belki de yazı boyunca onlardan sadece yüzeysel bir şekilde bahsedeceğim. ROP, TMU, Shader ve bellek kontrolcüsünün tanımlarını zaten rahatlıkla bulabilirsiniz. Burada önemli olan bu birimlerin performansa ne kadar etki ettiğini bilmektir.
Bir GPU hayal edelim. 2048 adet Shadera, 64 adet ROPa ve 128 adet TMUya ve GTX 980e benzememesi için de 384 Bit bellek kontrolcüsüne sahip olsun. Farklı senaryolardaki hesaplamaları kolaylaştırmak için de 1 Ghz gibi bir frekans belirleyelim. Bellekleri de 6 Ghz hızında çalışsın. Bu durumda incelemeye önce ROP birimlerinin performansından başlayalım. Kuramsal olarak, 64 Gigapixel fillrate performansımız var. Ancak bu GPU her zaman 64 Gigapixellik performans mı gösterecek?
Standart renk kanalı başına 8 bit olan integer fillrate performansına elimizdeki bant genişliği yeter mi? Elimizde 288 GB/sn teorik bandwith var. 1 Ghzde çalışan 64 ROP ünitesinin teorik olarak tam kapasite çalışması için INT8deki bellek ihtiyacı:
(1 ghz) x (64x 4) byte= (256 GB/sn)
Bu durumda bellek bant genişliği açısından sınırlanmıyoruz. Peki FP16ya geldiğimizde durum ne oluyor:
1 Ghzx 8 byte x 64 = 512 GB/sn
Bize ziyadesiyle yeterli gibi görünen bellek bant genişliği daha FP16da Ropları dizginledi. FP32ye geldiğimizde ise durum daha da berbat:
1 Ghz x16 byte x64 = 1 Terabyte/sn
Fillrate sorunu her zaman BW yüzünden mi yaşanıyor? Ve yukarıda bahsettiğim durumlar için gerçek hayatta çözüm yok mu?
Öncelikle yukarıdaki hesaplar; sırf problemin doğasını anlatmak için, hayali bir GPUdan verilmiş teorik senaryolardı. Vurgulamak istediğim şey fillrate in belirli durumlarda oldukça ciddi düştüğüydü. Fillrate konusunu daha net ve kısa bir şekilde anlatmak için aşağıda bir testten alınmış iki tablo size fikir verebilir:
Azametli HD 7970 32 bitte canavar kesilmişken, FP32de performansı yarıdan fazla düşüyor. Blend edilirken de çeyrek kapasite çalışıyor. GTX 580in durumu içler acısı. FP32 Blendingte durumu 2.4 gigapixel! Bu durumda fillratein günümüz oyunlarında bile hala en önemli sorun olduğunu görüyoruz. Birçok kaynakta Bugün artık ROP birimlerinin pek bir önemi kalmamıştır gibi akıl dışı iddialara karşı karşıya kalmanız, uzman geçinen çokbilmişlerin insanları nasıl yanılttıklarına dair sayısız örnekten sadece bir tanesi.
Fillrate hakkında düşülen en önemli hatalardan biri de 1080pde 60 fps hedeflendiğinde (2 milyon~ piksel)x60=120 megapixelin gani gani yeteceği yanılgısıdır. Tamam FP64ü bırak FP128de bile şu kadar düşüyor ama sonuçta en maliyetli haliyle 120 megapixel/s bize yetiyor denebilir. Burada gözden kaçırılan en önemli faktör derinlik karmaşıklığı ve overdraw fenomenidir. Klişe ancak iyi bir örnek üzerinden gidersek: Bir fps oyunu düşünün. Elinizde bir silah var ve karşınızda düşmanınız duruyor. Düşmanınız bir duvarın önünde. Dünyanın en önemli sorusunu soralım: Bu durumda üst üste binen nesnelerden etkilenen kaç tane piksel var?
Elinizin olduğu yönden uzanan hayali bir doğru düşünelim. Elinizin bir kısmı silahınızın altında kalıyor ve gözükmüyor. Silahınız karşınızdaki düşmanın belirli bir bölgesinin görünmesini engelliyor. Düşmanınız da duvarın bir kısmını kapatıyor. Sonuçta sizin gördüğünüz silahın tek bir pikseli. Ama elinizin o doğruya denk düşen pikseli de, adamın ilgili bölgesi de duvar da kapatılmış durumda. Bu durumda sizin gördüğünüz tek bir pikselin bedelinin tek bir piksel olduğunu mu zannediyorsunuz? Yanıldınız, bedel çok daha ağır! Tek bir piksel bu durumda 4 piksele mal oldu. İşte bu durumda derinlik karmaşıklığı değerimiz 4. 3 defa overdraw yapılmış durumda. 2 milyon pikselde, ortalama 5 overdraw yapıldığını tahmin edelim. Bu durumda derinlik karmaşıklığı 6 eder. Yani 2 milyon piksel sırf bu sebeple 12 milyon piksele mal oluyor.
İş bununla mı sınırlı? Kesinlikle hayır! Anti aliasing sırasında kullanılan örneklem sayısı da, tüm render süreci boyunca kullanılan render target sayısı da fillratei düşüren etmenler arasında. Bu durumda işin ne kadar tüyler ürpertici boyutlara geldiğini sanırım tahmin edebilmişsinizdir.
Ancak sıkıntı salt ROP birimlerini arttırmakla çözülecek kadar çantada keklik değil. ROPların yanında yeterince yüksek bant genişliği olmazsa çok şey değişmiyor.
GTX 960 performansı
Burada belleği son derece randımanlı kullanan ve yeni renk sıkıştırma teknolojileriyle gelen GTX 960ın durumunu görüyoruz. 32 adet ROP birimine sahip. Ancak zar alanından tasarruf adına sadece 128 Bitlik bir bellek kontrolcüsüyle geliyor. GTX 760 ve R9 285 de aynı sayıda ROPa sahipler ancak 256 Bit bellek kontrolcüleri var. Müthiş bir gerçek performans/teorik performans oranına Maxwell mimarisinin sahip olan bir üyesi olan GTX 960 1080pde GTX 760ı da R9 285i de geçerken işin rengi daha fazla bant genişliğine gereksinim duyan 1440pye gelince değişiyor. 1080pde %4 geçtiği R9 285e 1440pde aynı oranda yenik düşmüş. Bu arada bitin bir önemi yok şeklinde son derece sakat bilgi veren uzmanların kulaklarını burada çınlatmak lazım. Evet Maxwelldeki yeni nesil sıkıştırma teknolojileri belleğin daha verimli kullanılmasını sağlasa da buradan Bit önemli değildir gibi bir çıkarım yapmak çok hatalı olur.
Bit ile beraber en çok yanlış anlaşılan bir konu da GB miktarıdır. Kartları bellek miktarına göre değerlendirmek de, kartta bellek miktarının hiçbir önemi olmadığını iddia etmek de, her GPUnun yanına hak ettiği ölçüde bellek konduğunu söylemek de insanları yanıltmak olur. Bellek yeterli geldikten sonra arttırmanın performansa bir katkısı olmayacağı doğrudur. Ancak kartın belleği dolduktan sonra performansta öyle dramatik bir düşüş olur ki yetersiz GPU yüzünden düşen kare oranını arar hale gelirsiniz. Şu tablo epey şey anlatıyor olmalı:
Crysis performansı
Kaldı ki bu tablo üç yıl öncesine yani oyunların VRAMi bugünkü kadar kullanmadığı bir çağa ait. Günümüzde Shadow of Mordor gibi büyük texturelar kullanan oyunlarda neler yaşandığı malumumuz. Bugün 2 GB kart kullananlar çoğu oyunda ya config dosyalarından ince ayarlar yapmak ya da texture kalitesini düşürmek zorundalar.
Peki bu muazzam texturelarla uğraşmak için geliştirilmeye çalışılan yöntemler yok mu? Elbetteki var. AMDnin GCN serisiyle beraber lügatımıza giren PRT(Partially Resident Textures) ve DirectX 11.2nin Tiled Resources bu çözümlerden en meşhurları. Bu iki teknoloji kocaman textureları 64 KBlık parçalara bölerek textureların gereken parçalarını yüklemeyi hedefliyor. Ancak oyun yapımcıları PC ortamında bunu halen kullanmış değiller ve bundan sonrası için de pek umut yok. PRT çıktığı anda çok ses getiren ama gerçek hayatta hiçbir işe yaramamış pek çok geleceğin