Microsoft, yıllar evvel Vazife Yöneticisi’nde GPU performans bilgileri için dayanak sunmaya başlamıştı. GPU sekmesinde birçok grafik ve farklı ayrıntı bizi karşılıyor. Artık sunulan bu ekran kartı performans datalarını daha düzgün anlamak için Windows’un GPU’ları nasıl kullandığına derinlemesine bakacağız.
Grafik işlemciler Windows’ta Windows Ekran Şoförü Modeli (Windows Display Driver Model-WDDM) aracılığıyla çalışıyor. WDDM’nin kalbinde GPU’yu tüm çalışan süreçler ortasında soyutlamaktan, yönetmekten ve paylaşmaktan sorumlu olan Grafik Çekirdeği (Graphics Kernel) bulunuyor. Bu ortada her uygulama yahut oyunun birden fazla süreç yürüttüğünü ekleyelim.
Grafik Çekirdeği, bir GPU zamanlayıcı (VidSch) ve ayrıyeten bir görüntü belleği yöneticisi (VidMm) ile birlikte vazife yapıyor. VidSch, GPU’ların çeşitli motorlarını kullanmak isteyen süreçlere programlamak ve öncelik vermek için geliştirildi. VidMm ise hem VRAM (ekran kartınızdaki bellek) hem de GPU tarafından direkt erişilen ana DRAM (sistem belleği) dahil olmak üzere GPU tarafından kullanılan tüm belleği yönetmekten sorumlu. Ek olarak, sisteminizdeki her ekran kartı için bir VidMm ve VidSch örneği başlatılıyor.
Görev Yöneticisi’ndeki bilgiler direkt VidSch ve VidMm’den toplanmakta. Bu nedenle Microsoft DirectX API, OpenGL, OpenCL, Vulkan, hatta AMD Mantle yahut NVIDIA’nın CUDA’sı olsun, hangi API’nin kullanıldığına bakılmaksızın GPU için performans dataları kullanılabilir. Bildiğiniz üzere ekran kartı datalarını takip etmek için kullanılan birçok yardımcı yazılım var. Microsoft, VidSch ve VidMm’nin GPU kaynaklarını kullanma konusunda temeli oluşturduğundan ötürü öbür yardımcı yazılımlara nazaran daha yeterli sonuçlar vereceğini söylüyor.
Görev Yöneticisi üzerinden GPU performans datalarını izlemek için WDDM sürüm 2.0 yahut üstünü destekleyen bir ekran kartı şoförü kaide. WDDM 2.0, Windows 10’un yepyeni sürümüyle tanıtıldı ve Windows 10 popülasyonunun yaklaşık %70’i tarafından destekleniyor. GPU şoförünüzün kullandığı WDDM sürümünden emin değilseniz, öğrenmek için dxdiag yardımcı programını kullanabilirsiniz.
- dxdiag’ı başlatmak için Başlat menüsünü açın ve arama çubuğuna “dxdiag.exe” yazın. Şoför Modeli için üst kısımdaki Ekran sekmesine bakın.
- Eğer eski bir ekran kartı kullanıyorsanız (WDDMv1.x) Misyon Yöneticisi GPU bilgilerini göstermeyecek.
Performans sekmesi altında, WDDMv2 özellikli GPU’larınız için tüm süreçlerde toplanan performans datalarını bulacaksınız. Sol panelde sisteminizdeki GPU’ların listesini görebilirsiniz. Şayet bir dizüstü bilgisayar kullanıyorsanız, entegre ve harici grafikler olmak üzere burada iki farklı ekran kartı yer alabilir. Bunlar GPU0 ve GPU1 üzere numaralara sahip olacak. Birden fazla GPU mevcut olduğunda grafik işlemciler fizikî pozisyonlarına nazaran sıralanırlar (PCI data yolu/cihaz/işlev).
Windows ayrıyeten NVIDIA SLI ve AMD CrossFire olarak bilinen çoklu GPU kullanımı için takviye sunuyor. İlişkili kartlar tek bir VidMm ve VidSch örneğini paylaşmakta ve sonuç olarak, VRAM ölçüsüyle bir arada okuma ve yazma suratları da dahil olmak üzere birçok bilgi için yakın işbirliği yapılmakta.
GPU’lar birbirine bağlandığında, Vazife Yöneticisi her temas için bir İlişki # (Link #) etiketi atayacak ve bunun kesimi olan ekran kartlarını belirleyecek. Bu bağlamda oyun oynarken her bir GPU’nun ne kadar kullanıldığını gözlemlemenize imkan tanıyan bilgiler sunuluyor.
GPU Kullanımı
Bir GPU motoru, programlanabilen ve birbiriyle paralel olarak çalışabilen GPU üzerindeki bağımsız bir silikon ünitesini temsil eder. Örneğin, 3B sürece için bir 3B motor kullanılırken, bilgileri aktarmak için bir kopyalama motoru kullanılabilir. 3B motor tıpkı vakitte dataları taşımak için kullanılabilirken, kolay data transfer işleri kopyalama motoruna atanabilir ve 3B motorun daha karmaşık vazifeler üzerinde çalışmasına müsaade vererek genel performansı güzelleştirebilir. Bu durumda hem kopyalama motoru hem de 3D motoru paralel olarak çalışacaktır.
Bahsettiğimiz üzere VidSch, bu GPU motorlarını kullanmak isteyen çeşitli süreçler için programlamak ve öncelik vermekten sorumludur. GPU motorlarının GPU çekirdeklerinden farklı olduğunu bilhassa belirtmekte yarar var; GPU motorları aslında GPU çekirdeklerinden meydana gelir.
Örneğin 3B motor binlerce çekirdeğe sahip olabilir. Lakin bu çekirdekler, motor ismi verilen bir varlık içinde gruplandırılmıştır ve bir küme olarak programlanmıştır. Bir süreç bir motora tahsis edildiğinde, o motorun tüm temel çekirdeklerini kullanabilir.
Bazı GPU’lar ise tıpkı temel çekirdek kümesine eşlenen birden çok motoru desteklemekte. Motorlar paralel olarak programlanabilse de temeldeki çekirdekleri paylaşıyorlar. Bunu kavramsal olarak CPU’daki hiper iş parçacığına benzetebiliriz. Örnek olarak, bir 3B motor ve bir bilgi süreç motoru aslında tıpkı birleşik çekirdek kümesine dayanıyor olabilir. Bu türlü bir senaryoda, çekirdekler yürütülürken motorlar ortasında uzamsal yahut süreksiz olarak bölünmekte. Aşağıdaki şema, varsayımsal bir GPU’nun motorlarını ve çekirdeklerini gösteriyor.
Görev Yöneticisi, varsayılan olarak görüntülenecek dört motor seçmekte. Lakin hangi motoru gözlemlemek istediğinize, motor ismine tıklayarak ve GPU tarafından gösterilen motorlar listesinden öteki bir motor seçerek karar verebilirsiniz.
Motor sayısı ve bu motorların kullanımı GPU’lar ortasında farklılık gösterecektir. Bir ekran kartı şoförü, görüntü kod çözme motorunu kullanarak belli bir medya klibinin kodunu çözmeye karar verebilirken, farklı bir görüntü formatı kullanan öbür bir klip, hesaplama motoruna yahut hatta birden çok motorun bir kombinasyonuna güvenebilir. Vazife Yöneticisini kullanarak GPU’da bir iş yükü çalıştırabilir ve akabinde hangi motorların onu işleyebileceğini gözlemleyebilirsiniz.
GPU isminin altındaki sol bölmede ve sağ bölmenin altında GPU için birleştirilmiş kullanım yüzdesi göreceksiniz. Microsoft, burada grafik motorları ortasında kullanım oranını hesaplamak ve toplamak üzere birkaç farklı seçenek kullanabilirdi. 10 motora sahip bir GPU düşünelim. Örneğin 3D motoru ağır bir oyunla birlikte tam yükte çalışıyor. Tüm grafik motorlarını hesaba katarsak kullanım oranı sadece %10 görünecektir. Bu aldatıcı bir sonuç olur ve katiyen oyuncuların görmek istediği şey değil.
Ayrıca GPU’yu bir bütün olarak temsil etmesi için 3D motoru da seçilebilirdi çünkü bu ekseriyetle en bariz ve kullanılan motor. Lakin tekrar bu datalar kullanıcıları yanlış yönlendirebilir. Örneğin bir görüntü oynattığınızda 3D motorunun hiç kıpırdamadığını görebilirsiniz. Şayet algoritma bu türlü işleseydi GPU kullanım oranı %0 olarak raporlanacaktı. Yazılım devi, bunun yerine genel GPU kullanımının bir temsilcisi olarak en ağır motorların kullanım yüzdesini kullanmayı tercih etti.
Video Belleği (VRAM)
Görev Yöneticisi’nde grafiklerin çabucak altında görüntü belleği kullanım grafikleri ve özeti bulunuyor. Görüntü belleği iki büyük kategoriye ayrılıyor: adanmış (ayrılmış) ve paylaşılan.
Ayrılmış bellek, sırf GPU tarafından kullanılmak üzere ayrılmış ve VidMm tarafından yönetilen belleği temsil ediyor. Bu harici ekran kartınızda yer alan bellek olan VRAM, entegre grafiklerde ise ayrılmış sistem belleğidir. Birçok entegre ekran kartı, özel grafik kullanımı için bellek ayırmaktan kaçınır ve bunun yerine daha verimli olan CPU ile paylaşılan belleğe güvenmeyi tercih eder.
Dahili GPU’larda işler çok karmaşık. Kimi entegre grafik ünitelerde özel bellek bulunurken kimilerinde bulunmuyor. Kimi GPU’lar firmware ile (veya şoför başlatma sırasında) ana DRAM’den bellek tahsis eder. Bu bellek CPU ile paylaşılan DRAM’den ayrılsa da, Windows’tan alınır ve Windows bellek yöneticisinin (Mm) denetimi dışında tutulur, sırf VidMm tarafından yönetilir. Bu çeşit bir kapasite tahsis biçimi ekseriyetle daha esnek olan paylaşılan bellekler için önerilmiyor, fakat birtakım GPU’ların şu anda buna gereksinimi var.
Performans sekmesi altındaki ayrılmış bellek ölçüsü, bir süreç tarafından talep edilen belleği gösteren birçok mevcut yardımcı programın bilakis, tüm süreçlerde tüketilen bayt sayısını gösteriyor. Paylaşılan bellek, GPU yahut CPU tarafından kullanılabilen olağan sistem belleğini (RAM) temsil ediyor. Bu bellek esnektir, her iki formda de kullanılabilir ve hatta kullanıcı iş yükünün gerektirdiği biçimde ileri ve geri geçiş yapabilir. Hem ayrık hem de entegre GPU’lar paylaşılan belleği kullanabilir.
Windows, GPU’nun rastgele bir anda fizikî belleğin sadece yarısını kullanmasına müsaade veren bir unsura sahip. Bunun nedeni ise sistemin geri kalanında yaşanacak aksaklıkları engellemek ve öteki meselelerin önüne geçmek. Örneğin 16 GB belleğe sahip bir sistemde GPU’nun azamî 8 GB’a kadar kaynak kullanmasına müsaade veriliyor.
İşlemler Sekmesi
İşlemler sekmesi altında süreçlere nazaran ayrılmış toplu ekran kartı kullanımının bir özetini bulacaksınız. Bu sayfanın GPU açısından çalışma mantığı hayli farklı. Daha evvel belirttiğimiz üzere, bir PC birden fazla GPU’ya sahip olabilir ve bu GPU’ların her biri tipik olarak birden fazla grafik motoru barındırıyor.
Eğer her GPU ve motor kombinasyonu için bir sütun eklenseydi Misyon Yöneticisi içinden çıkılmaz bir hal alırdı. Performans sekmesi, bir kullanıcıya çalışan çeşitli süreçlerde sistem kaynaklarının nasıl kullanıldığına süratli ve kolay bir bakış sunmayı amaçlıyor; bu nedenle, GPU hakkında yararlı bilgiler sağlamak için kolay bir yol izlendi.
Microsoft mühendisleri, bu süreç için tüm GPU’larda en ağır motorun kullanımını genel ekran kartı kullanımını temsil edecek biçimde görüntülemeyi tercih ettiler. Lakin bir uygulama 3D motorunu %100 kullanırken, öteki bir uygulama da görüntü motorunu tam yük altında kullanabilir. Bu durumda her iki uygulama da %100’lük bir genel kullanım bildirirken baş karıştırıcı sonuçlar ortaya çıkabilir. Yazılım geliştiriciler, bu sorunu çözmek için gösterilen kullanımın hangi GPU ve motor kombinasyonuna karşılık geldiğini belirten ikinci bir sütun ekledi. Benzeri formda, sütunun üst kısmındaki kullanım özeti, tüm GPU’lardaki kullanım oranını gösteriyor. Buradaki hesaplama performans sekmesi altında görüntülenen genel GPU kullanımı ile birebir.
Ayrıntılar Sekmesi
Ayrıntılar sekmesi altında varsayılan olarak GPU hakkında bilgi sunulmuyor. Lakin sütun başlığına sağ tıkladıktan sonra “Sütunları seç” ile birlikte GPU kullanım sayaçlarını bu sayfaya ekleyebilirsiniz.
Bu görüntü belleği kullanım sayaçları hakkında dikkat edilmesi gereken birkaç nokta var. Sayaçlar, o süreç tarafından kullanılmakta olan toplam ayrılmış ve paylaşılan görüntü belleği ölçüsünü temsil ediyor. Yani hem özel belleği (yalnızca o süreç tarafından kullanılan belleği) hem de çapraz süreç paylaşılan belleği (CPU ve GPU ortasında paylaşılan bellekle karıştırılmaması için öteki süreçlerle paylaşılan belleği) içeriyor.
Bunun bir sonucu olarak, süreçler ortasında paylaşılan bellek daha kapsayıcı olduğundan ötürü bellek kullanımı daha yüksek görünebilir. Nitekim bir GPU tarafından toplam ne kadar bellek kullanıldığını anlamak için paylaşılan belleği yanlışsız formda hesaplayan performans sekmesine bakmakta yarar var.
Başka bir noktaya değinecek olursak, bilhassa dwm.exe ve csrss.exe üzere süreçlerin kaynak kullanım oranı gerçekte olduğundan çok daha büyük görünebilir. Örneğin, bir uygulama üst seviye pencere oluşturduğunda, o pencerenin içeriğini tutmak için görüntü belleği tahsis edilecektir. Bu görüntü bellek seviyesi uygulama ismine csrss.exe tarafından oluşturulurken uygulama sürecinin kendisiyle eşleniyor ve pencerenin masaüstünde oluşturulabilmesi için masaüstü pencere yöneticisi (dwm.exe) ile paylaşılıyor. Sonuç olarak, masaüstünüz meşgul hayli ölçülerin büyüdüğünü görebilirsiniz lakin bunların gerçekte tüm kaynakları tüketmediğini unutmayın.
Windows 11
Görev Yöneticisi Windows 10’da bilhassa GPU açısından değerli özellikler almıştı. Windows 11 ile birlikte Vazife Yöneticisi’nde hem görsel hem fonksiyonel olarak kimi yenilikler yapılıyor.
Microsoft’un yeni Misyon Yöneticisi artık Windows 11’e aitmiş üzere hissettiriyor. Yazılım devi, Süreçler, Performans ve başka kısımlar ortasında geçiş yapmak için kullanılan sekmeleri sol tarafta yer alan bir menüye ekledi. Soldaki kaydırma menüsüyle bir arada Misyon Yöneticisi artık birden fazla çağdaş Windows 11 uygulamasına çok daha fazla benziyor.
Verimlilik Modu
Microsoft ayrıyeten Misyon Yöneticisi için yeni bir “Verimlilik modu” test ediyor. Evvelden “Eko modu” olarak bilinen Misyon Yöneticisi’nin en son özelliği, kullanıcıların çalışan her sürecin güç tüketimini denetim etmesine imkan tanıyacak.
Verimlilik modunu Süreçler sayfasındaki yeni komut çubuğundan başlatabilir yahut sürece sağ tıklayabilirsiniz. Yeni özellik süreç bazında çalışıyor, bu nedenle tüm küme süreci için geçerli değil.
Adından da anlaşılacağı üzere, Verimlilik Modu bir bütün olarak işletim sisteminin performansını etkilemeden belli bir sürecin kaynak kullanımını en aza indirmek için misyon yapacak. Fakat temaslı süreçler için kararlılık problemlerine neden olabilir, bu nedenle şirket tüm mahallî uygulamalar ve dahili süreçler için seçeneği devre dışı bıraktı.