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:
Merhaba Haluk abi. Bir süredir gerek Technopat'ta, gerek diğer yerlerde yazdığınız yazılar gözüme çarpıyor ve çok güzel yazılarınız var. Yazılarınız için çok teşekkür ederim. Haluk abi, ben arkadaşlarımla birlikte çıkarttığımız bir pdf oyun dergisinde donanım yazıları yazıyorum. Birkaç yıl önce gazetelerin yanında verilen ucuz bilgisayar-oyun dergileri ve bulabildiğim her şeyi okuyarak başladım. Dergi aldığım zamanlarda da Recep abinin yazılarıyla büyüdüm diyebilirim. Son zamanlarda da her şeyi internetten takip ediyor ve sizin gibi değerli donanımcı abilerimin gerek makaleleri, gerek video incelemeleri (Recep Baltaş, siz, Levent Pekcan, Mesut Çevik, Burak Alkan ...) sayesinde bir şeyler öğreniyor, sizlere özenerek bir şeyler yazmaya çalışıyorum. İngilizce seviyem de güzel, yani yabancı dilde bir inceleme makalesini okuyup, bilmediğim kelimeleri Google'layarak her şeyi çözebiliyorum. Ancak bunlarla gelebildiklerim bir yere kadar. Yani, hemen hemen incelemelerin %99'unda böyle güzel bilgiler vermiyorlar. Ben ne yapayım HD7850'nin BF3'te bilmemkaç FPS aldığını, sizin bu makalede değindiğiniz şeyler insana bir şeyler katıyor. Sadede gelecek olursam, ben de bir soru sormak istiyorum. Bana böyle ekstra bilgileri öğrenebileceğim forum adresleri, keywordler, kitaplar (pdf olursa daha da memnun olurum:) ) önerebilir misiniz? En azından lütfen araştırmama yetecek kadar yol gösteriniz. Saygılarımla.
 
Bu kadar güzel anlatılabilirdi... Kafası karışanlar için şu şekilde özetlenebilir "ne kadar ekmek o kadar köfte" yani yüksek çözünülürlükte oynayacaksan hem işlemcin hem ekran kartın iyi olmak zorunda... Zayıf işlemci + yüksek kapasiteli ekran kartı size çözüm sağlamaz. Güçlü işlemci + zayıf ekran kartı ikilisi de yeterli gelmeyecektir...

Aslında tam tersi :)

"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."

İşlemci giriş seviyesi bile olsa, üst seviye ekran kartında darboğaz yapmaz. (ağır strateji ve online oyunlarda orta seviye tavsiye edilir)

Yani:

i3-3220 + GTX 780 = Darboğaz yapmaz
i5-3330 +GTX 780 =
Darboğaz yapmaz
i5-3570K + GTX 780 =
Darboğaz yapmaz
i7-3770K + GTX 780 =
Darboğaz yapmaz

i5-4430 + GXT 780 =
Darboğaz yapmaz
i5-4570 + GTX 780 =
Darboğaz yapmaz
i5-4670 + GTX 780 =
Darboğaz yapmaz
i7-4770K + GTX 780 =
Darboğaz yapmaz

FX-4100 +GTX 780=
Darboğaz yapmaz
FX-6300 +GTX 780= Darboğaz yapmaz
FX-8320 +GTX 780= Darboğaz yapmaz
FX-8150 +GTX 780= Darboğaz yapmaz
FX-8350 +GTX 780= Darboğaz yapmaz



Merhaba Haluk abi. Bir süredir gerek Technopat'ta, gerek diğer yerlerde yazdığınız yazılar gözüme çarpıyor ve çok güzel yazılarınız var. Yazılarınız için çok teşekkür ederim. Haluk abi, ben arkadaşlarımla birlikte çıkarttığımız bir pdf oyun dergisinde donanım yazıları yazıyorum. Birkaç yıl önce gazetelerin yanında verilen ucuz bilgisayar-oyun dergileri ve bulabildiğim her şeyi okuyarak başladım. Dergi aldığım zamanlarda da Recep abinin yazılarıyla büyüdüm diyebilirim. Son zamanlarda da her şeyi internetten takip ediyor ve sizin gibi değerli donanımcı abilerimin gerek makaleleri, gerek video incelemeleri (Recep Baltaş, siz, Levent Pekcan, Mesut Çevik, Burak Alkan ...) sayesinde bir şeyler öğreniyor, sizlere özenerek bir şeyler yazmaya çalışıyorum. İngilizce seviyem de güzel, yani yabancı dilde bir inceleme makalesini okuyup, bilmediğim kelimeleri Google'layarak her şeyi çözebiliyorum. Ancak bunlarla gelebildiklerim bir yere kadar. Yani, hemen hemen incelemelerin %99'unda böyle güzel bilgiler vermiyorlar. Ben ne yapayım HD7850'nin BF3'te bilmemkaç FPS aldığını, sizin bu makalede değindiğiniz şeyler insana bir şeyler katıyor. Sadede gelecek olursam, ben de bir soru sormak istiyorum. Bana böyle ekstra bilgileri öğrenebileceğim forum adresleri, keywordler, kitaplar (pdf olursa daha da memnun olurum:) ) önerebilir misiniz? En azından lütfen araştırmama yetecek kadar yol gösteriniz. Saygılarımla.

İnternet ortamında en kolay ulaşılan ve en ucuz kaynak: bilgidir.

Bilginin hiç bir değerinin olmadığı bu ortamda bulunmayan tek şey ise: tecrübedir. Bu işi yapmak istiyorsan, kaynağa ulaşmaktan çok, bol bol tecrübe kazanmaya bak :)
 
Merhabalar. Öncelikler verdiğiniz bilgiler çok açıklayıcı ve anlaşılır şekilde olduğu için teşekkürler. Yukarıda belirtmiş olduğunuz süreçler içerisinde oyun motoru dediğimiz directx oluyor sanırım directx'te oyunun sağdan sola vermiş olduğunuz resimlere gore 2'den 1'e giden yolda kaplamalarda ekran kartının nasıl dokuları dolduracağını gösteriyor. Buna dayanarak 3'ten 2'ye giden yolda ise cpu uzay düzlem üzerinde koordinatları ekran kartına hazırlamak üzere oyun motoruna veriyor. Buraya kadar anladıklarım doğru mudur Haluk Bey ?
 
Merhabalar. Öncelikler verdiğiniz bilgiler çok açıklayıcı ve anlaşılır şekilde olduğu için teşekkürler. Yukarıda belirtmiş olduğunuz süreçler içerisinde oyun motoru dediğimiz directx oluyor sanırım directx'te oyunun sağdan sola vermiş olduğunuz resimlere gore 2'den 1'e giden yolda kaplamalarda ekran kartının nasıl dokuları dolduracağını gösteriyor. Buna dayanarak 3'ten 2'ye giden yolda ise cpu uzay düzlem üzerinde koordinatları ekran kartına hazırlamak üzere oyun motoruna veriyor. Buraya kadar anladıklarım doğru mudur Haluk Bey ?

Aynı amaca hizmet ediyor olsalar da, oyun motoru ve DirectX aslında farklı yazılımlardır. Ancak oyun sırasında birbirlerini desteklerler. İşlemci, yazılımın istediği koordinatları hesaplar.
 
Anlatım, bilgi ve açıklamalar harika olmuş. Bu yüzden teşekkürler. Yeni rehberlerinizde ekran kartlarının (CF) veya (SLI) için ne tür güç kaynağı ve işlemci kullanılması ve işlemci 2 nesil geride olursa, işlemciyi overclock edip (CF) veya (SLI) için hazırlanması ile ilgili bir makale olursa harika olur.
 
Peki bu strateji oyunu Rome totalwar 2 olursa öneriniz ne olur ? Yapay zekayı en çok kullanan oyunlardan.

Strateji oyunlarında yapay zeka işlemciye daha fazla yük bindiriyor. Yine de; fazla abartmaya hiç gerek yok.
 
Abi o zaman şöyle amatörün babası bir sorum var. CPU ile GPU arasındaki temel fark dışındaki farklar nelerdir? Mesela bir CPU'yu GPU'ya modifiye edip limit tanımadan oynayabilir miyiz? Oynayabilseydik piyasada olurdu ama neyse.
 
Durum
Mesaj gönderimine kapalı.

Technopat Haberler

Geri
Yukarı