Oyunlarda İşlemci Darboğazı Nedir?

Durum
Mesaj gönderimine kapalı.
Olabildiğince basit, teknik terimlere, bilgisayar jargonuna hiç dokunmadan ve hayati pek çok detayı es geçerek anlatıyorum.

Süreç şu şekilde işliyor:

Ekran kartı oyunlarda, gözünüzle algıladığınız her bir noktanın temel olarak yüzey kaplamasını ve ışıklandırmasını yapar. Ancak bunu yapabilmesi için, üzerini kaplayacağı objenin uzay düzlem üzerindeki koordinatlarına ihtiyaç duyacaktır.

Yazılım, yani oyun, işlemciye giderek ekran kartının son haline getireceği sahnenin koordinatlarını hesaplamasını rica eder. İşlemci, gelen bu nazik teklifi kırmayarak, bu koordinatları hesaplayarak yazılıma teslim eder. Yazılım elindeki koordinatları aynı nezaket içinde ekran kartına teslim eder. Ekran kartı artık mutludur, çünkü hazırlayacağı sahnenin ne olacağını bilmektedir (Pamuk Prenses ve Yedi Cüceler gibi oldu ya, neyse devam edelim).

Ekran kartı sahneyi anladıktan sonra, oyun motorunun ona verdiği sahne için detayları işlemeye başlar. İlk olarak tel (wireframe) çizimler hazırlar. Ardından ikinci kaplama ve son olarak ekrana yansıyan görüntünün son halini bitirir.

Sağdan sola: tel çizim, ilk kaplama, olayın bitmiş hali:

wireframe.jpg


Her ne kadar basit bir şekilde anlatıyor olsam da, ekran kartlarının yaptığı hesaplar dudak uçuklatacak cinsten. Şöyle ki:

İnsan gözünün monitörde, bir hareketi sağlıklı olarak algılaması için ekran kartının saniyede 30 adet kare işlenmesi gerekiyor (alt limit 25-26 kare arasıdır).

1920 x 1080 ekranda = 2.0736.000 piksel bulunur.

Saniyede 30 kareden hesaplarsak, ekran kartı bir saniye içinde 62.208.000 tane pikseli işler.

Üst seviye ekran kartlarının GPU'ları (Titan, GTX 780 gibi), en hatırı sayılır işlemcilerin bile üzerinden silindir gibi geçerler. Daha da Türkçe'leştirirsek "ağızlarını, burunlarını kırarlar". Bu yüzden, küresel çapta bilimsel hesap yapan süper bilgisayarlar, işlemci yerine 20-30 bin kadar ekran kartını kullanır.

Konumuza dönersek, yukarıda anlattığım gibi en basit şekliyle işlemci koordinatları hesaplar, ekran kartı da aldığı bu koordinatların üzerine şehri kurar ve her objenin kaplamasını/ışıklandırmasını yapar. Yani oyunlarda, işlemcinin çok ama çok önemli bir performans girişi yoktur (online ve strateji oyunları hariç, ona biraz sonra değiniyorum).

Diyelim ki elimizde GTX 780 var. Fantezi olsun diye Crysis 3'ü 1024 x 768 çözünürlük ve en düşük detay kalitesinde oynuyoruz. Süreç şu şekilde işleyecektir:

Yazılım işlemciye gidip koordinatları alır, ekran kartına götürür. Ekran kartı bakar ki; çözünürlük düşük, detay kalitesi yerlerde sünüyor.

1920 x 1080 çözünürlükte 62.208.000 piksel hazırlayacağına, 1024 x 768 çözünürlükte 23.592.960 piksel hesaplayacaktır.

Ekran kartı verir coşkuyu ve anormal derecede performansa ulaşır. Ortaya çıkan frame sayısı 100-200 arasıdır. Bu sefer işlemci, ekran kartına koordinatları yetiştirmekte zorlanır. Ekran kartı saniyede 200 frame'e çıkar ama işlemci su koyar, yetiştiremez ve kasılır kalır. Biz buna: işlemci limiti diyoruz.

Aynı GTX 780'le bu sefer Crysis 3 1920 x 1080 çözünürlük ve en yüksek detay kalitesinde oynuyoruz.

Yazılım işlemciye gidip koordinatları alır, ekran kartına götürür. Ekran kartı bakar ki; çözünürlük yüksek, detay kalitesi kendini aşmış. Başlar hesaplamaya. E tabi düşük çözünürlükte coşan kart, bu sefer bu fazla çözünürlüğün/detayın altında ezilir. İşlemci çatır çatır koordinat hesaplayıp gönderirken, ekran kartı gelen işleri yetiştirememeye başlar. Frame sayısı, düşük çözünürlükte 100-200 arası iken, Full HD'de 40-50'ye düşer. Bunun adı da ekran kartı limitidir.

Eğer siz, 3.0GHz üzeri güncel yada bir iki nesil eski bir işlemci kullanıyor ve 1920 x 1080 çözünürlükte oyun oynuyorsanız, işlemci limitine takılmadan, ekran kartı limitine takılacaksınız. Bu durumun istisnası: düşük çözünürlüktür. Eğer düşük çözünürlükte oynamayı düşünüyorsanız, ekran kartı coşacağı için işlemci yetersiz kalacaktır. Ancak bu yetersizlik, oynanabilir seviye olan 30 frame'in bir hayli üzerinde gerçekleşir.

Diğer istisna online ve strateji oyunları.

Ekran kartları, her ne kadar bilimsel hesaplar için süper bilgisayarlarda kullanılıyor olsalar da, bizim bilgisayarda Command & Conquer oynarken tam anlamıyla birer "geri zekalılardır". Çünkü oyun oynarken tek işleri gelen koordinatları alıp üzerini kaplamaktan ibarettir. Strateji oyunlarda yüksek miktarda yapay zekaya ihtiyaç vardır. Yazılım, zeka işini ekran kartına değil, işlemciye yaptırır. Bu yüzden işlemciye daha fazla iş yükü düşer. Ancak; 3.0GHz üzeri güncel yada bir nesil eski işlemcilerde bu tip sorunlarla karşılaşmayız.

Olay kısaca bu şekilde. Eğer takıldığınız bir yer varsa soru sormaktan çekinmeyin. Hiç birimiz, elimizde klavye ile bu dünyaya gelmedik :)
 
Son düzenleyen: Moderatör:
Çok yararlı bir rehber hazırlamışsınız,elinize sağlık :) İşlemcimi değiştirmemin zamanı geldi...
 
Yani darboğaz dediğimiz şey, ekran kartı çok iyiyse yani yüksek FPS alıyorsa işlemci o kareleri işlemekte zorlanıyor. Yani bu durumda mesela eski nesil i3 işlemciye HD7990 taktık diyelim ve oyunlarda 100-200 FPS görüyoruz. Ama işlemci zorlanıyor, yani bu durumda oyunda bir kasma olur mu? Ya da şöyle mi olur, işlemci bu kareleri işleyemediğini söyler ve ekran kartı biraz yavaşlar, FPS'yi düşürür. Tam anlatamadım da demek istediğim işlemci limiti olduğu zaman ne olur? Düşük FPS mi alırız yoksa yüksek FPS aldığımız halde kasma mı yaşarız?
 
Yani darboğaz dediğimiz şey, ekran kartı çok iyiyse yani yüksek FPS alıyorsa işlemci o kareleri işlemekte zorlanıyor. Yani bu durumda mesela eski nesil i3 işlemciye HD7990 taktık diyelim ve oyunlarda 100-200 FPS görüyoruz. Ama işlemci zorlanıyor, yani bu durumda oyunda bir kasma olur mu? Ya da şöyle mi olur, işlemci bu kareleri işleyemediğini söyler ve ekran kartı biraz yavaşlar, FPS'yi düşürür. Tam anlatamadım da demek istediğim işlemci limiti olduğu zaman ne olur? Düşük FPS mi alırız yoksa yüksek FPS aldığımız halde kasma mı yaşarız?

İşlemci limiti olduğu zaman sanırım burada işlemci fazla ısınıyor.Kısacası ekran kartı ile işlemci aynı seviyede olmalı.Haluk arkadaşım gerçekten çok güzel anlatmışsın,ellerine sağlık. :)
 
Yani darboğaz dediğimiz şey, ekran kartı çok iyiyse yani yüksek FPS alıyorsa işlemci o kareleri işlemekte zorlanıyor. Yani bu durumda mesela eski nesil i3 işlemciye HD7990 taktık diyelim ve oyunlarda 100-200 FPS görüyoruz. Ama işlemci zorlanıyor, yani bu durumda oyunda bir kasma olur mu? Ya da şöyle mi olur, işlemci bu kareleri işleyemediğini söyler ve ekran kartı biraz yavaşlar, FPS'yi düşürür. Tam anlatamadım da demek istediğim işlemci limiti olduğu zaman ne olur? Düşük FPS mi alırız yoksa yüksek FPS aldığımız halde kasma mı yaşarız?

Temel kural: yüksek çözünürlük ve detay kalitesinde oyun oynarken, işlemci limitine takılmazsınız. Örnek:

Asus Maximus V Extreme, GeForce GTX 680, 8GB 2400MHz bellekli sabit bir sistem Crysis 2, 1920 x 1080, yüksek detay kalitesi:

Intel i7-3770K = 72.6 frame

Intel i3-2100 = 70.1 frame

Yani 350$'lık bir işlemci ile, 80$'lık eski nesil işlemci arasında sadece 2 frame fark oluşur.

Aynı sistem, Metro 2033, 1024 x 768, en düşük ayarlar:

Intel i7-3770K = 148.5 frame

Intel i3-2100 = 84 frame

Düşük çözünürlük ve düşük detay kalitesinde, işlemci çok fazla koordinat hesaplayacağı için, ekran kartının hızına yetişemez. Ancak, kimsenin de GTX 780 taktıktan sonra Crysis 3'ü 1024 x 768 çözünürlükte oynayacağını düşünmüyorum.
 
İşlemci limiti olduğu zaman sanırım burada işlemci fazla ısınıyor.Kısacası ekran kartı ile işlemci aynı seviyede olmalı.Haluk arkadaşım gerçekten çok güzel anlatmışsın,ellerine sağlık. :)

Bu konunun işlemci sıcaklığı ile yakında uzaktan bir ilgisi yok :)

Bana göre darboğaz yapıyor. Çünkü aynı karttan başkalarında da var. Youtube üzerinden herhangi birinin HD 7770 yapmış olduğu oyun testini izleyip,adamın kullandığı ayarları ben yaptığım zaman daha az fps alıyorum.

Oyun ayarları ve aldığınız frame sayısı nedir?
 
Çok güzel gayet bilgilendirici bir konu. Elinize sağlık.
 
Durum
Mesaj gönderimine kapalı.

Geri
Yukarı