İçeriğe geç

AMD Mantle: Derinlemesine Test Edilmiş Bir Grafik API’si

    1650445204

    API’ler, Soyutlama ve Manto: Bir API Astarı

    AMD’nin Mantle API’si, PC oyunları dünyasında kutuplaşan bir konudur. Pek çok fikir, pek çok bilgi, pek çok spekülasyon ve gözden geçirilecek bir avuç bilinen gerçek var. Bütün hikayeyi anlatmak istiyoruz ve bunu doğru yapmak istiyoruz. Ne yazık ki, bu konuyu endüstri jargonuna başvurmadan tartışmak neredeyse imkansız, bu yüzden en baştan başlayalım ve bazı tanımlar yapalım, zemini hazırlayalım, nerede olduğumuzu ve buraya nasıl geldiğimizi belirleyelim.

    API nedir?

    Kısaltma API’si, uygulama programlama arabirimi anlamına gelir. Buradaki anahtar kelime arayüzdür. Bir API, uygulamaların birbirleriyle arayüz oluşturmasına veya iletişim kurmasına izin vermek için tasarlanmıştır.

    Bunun harika bir örneği, Windows’taki kopyala ve yapıştır işlevidir. Tarayıcınızdan panoya bir metin paragrafı kopyaladığınızda ve ardından bu metni bir kelime işlemciye yapıştırdığınızda, bir API’nin gücünü uygulamış olursunuz. Tarayıcınızın geliştiricileri, API’nin kopyalama isteği (veya çağrısı) için destek içeriyordu, kelime işlemcinin programcıları ise API’nin yapıştırma çağrısı için destek içeriyordu. Bu iki program API aracılığıyla birbirleriyle iletişim kurar.

    Bir API’nin avantajı, yazılım geliştiricilerin olası her uygulama için özel bir destek kodlaması gerekmemesidir. API’ler olmasaydı, dünyadaki tüm belge düzenleme yazılımlarının, dünyadaki diğer tüm belge düzenleme yazılımlarıyla kopyala ve yapıştır işlevi gibi bir arayüz oluşturmak için benzersiz bir kod içermesi gerekirdi. Bu modelin sürdürülmesi imkansız olurdu.

    Dezavantajı? Bir API, yazılımlar arasında doğrudan iletişim için özel desteği kodlamak kadar verimli değildir. Kolaylığın bedeli, donanım ve işleme kaynaklarının artan kullanımıdır. 

     Tamam, grafik API’si nedir?

    Uygulamalar arasında bir iletişim arabirimi sağlamak için bir API mevcut olduğundan, bir grafik API’si bir uygulama ile bir grafik kartı sürücüsü arasında iletişim kurar.

    Buradaki oyunun adı uyumluluktur. Oyun geliştiricileri, belirli grafik kartı sürücüleriyle arabirim oluşturmak için birden çok yolu desteklemek üzere bir oyun motorunu kodlamak yerine, bunun yerine API ile iletişime odaklanabilir. API daha sonra talimatlarını grafik kartına uygulayan grafik sürücüsünü çağırır. Bu şekilde, grafik API’leri, işletim sistemi ve donanım arasındaki soyutlama katmanlarından biri olarak kabul edilebilir.

    Bir grafik API’sinin amacı basitlik ve kolaylıksa, neden birden fazla API var?

    OpenGL’nin kökleri, SGI’nin 1980’lerin başında piyasaya sürülen tescilli Iris GL’ye dayanmaktadır. Şaşırtıcı bir hamleyle şirket, bunu OpenGL (Open Graphics Library) API adlı bir açık standart olarak verdi. SGI’nın rakiplerine, kodu koruma ve güncelleme yükünü paylaşma karşılığında erişim verildi.

    Microsoft, şirketin artık daha üretken olan tescilli DirectX API’si lehine desteği çektiği 2003 yılına kadar OpenGL Mimarisi İnceleme Kurulu’nda bile yer aldı. Şu anda DirectX Windows ve Xbox’larda kullanılmaktadır, bu nedenle mevcut kaynaklarından en iyi şekilde yararlanmak isteyen bir geliştiricinin bakış açısından Microsoft’un API’sini seçmeyi haklı çıkarmak kolaydır.

    Bunu söyledikten sonra, John Carmack, OpenGL’nin hala yüksek kaliteli PC oyunlarını (Rage gibi) çalıştırmak için kullanılabileceğini kanıtladığını gördüğümüz ünlü bir destekçidir. Ayrıca OpenGL, platformlar arasında kullanılabildiği için önemlidir: Windows, Mac ve Linux. Android, Windows Phone ve iPhone, OpenGL ES (Gömülü Sistemler için Open GL) kullanır. Mobil cihazlarda oyun oynamanın önemi arttıkça OpenGL de önem kazanıyor.

    DirectX 11 ve OpenGL’de sorun ne? Dünyanın neden başka bir grafik API’sine ihtiyacı var?

    Birbiriyle çelişen iki standart yeterince kötü. Bir tane daha eklemek mantıksız görünüyor. Peki, mevcut API’ler nasıl geliştirici beklentilerinin gerisinde kalıyor?

    Hem DirectX hem de OpenGL, önceki bin yılda oluşturuldu. Ana akım cihazlarda çok çekirdekli CPU’ların mümkün olduğu bir zamandı. Son zamanlarda, bazı geliştiriciler, iyi iş parçacıklı platformlarda şişkin oldukları, istikrarsızlığa eğilimli oldukları ve zayıf (veya hiç ölçeklenmedikleri) endişelerini dile getirdiler. Ayrıca, hiçbir API mükemmel değildir. Bir oyunun düzgün çalışması için hiç bir grafik sürücüsünü güncellemek zorunda kaldınız mı? Bu her gerçekleştiğinde, grafik API’si bir soyutlama katmanı rolünde başarısız oldu.

    Buna ek olarak, Microsoft’un 2013’te DirectX geliştirmeyi durdurmayı düşündüğü söylendi. c’t ile yaptığı bir röportajda AMD’den Roy Taylor, “Yeni bir DirectX endüstriyi tekrar tekrar yeniledi, yeni grafik kartlarının daha fazlasına ihtiyacı var. işlemciler ve daha fazla RAM. Ama DirectX 12 gelmiyor. O kadar. Bildiğimiz kadarıyla DirectX 12” için bir plan yok. Ayrıca, sızdırılmış bir Microsoft e-postası, platformlar arası XNA Game Studio geliştirme platformunun aktif geliştirme aşamasında olmadığını ve DirectX’in artık bir teknoloji olarak gelişmediğini söyledi. Microsoft daha sonra bunu geri çekti ve bunun bir yanlış iletişim olduğunu iddia etti, ancak DirectX 12 için yayınlanmış bir plan olmadığı için geliştirici topluluğu tedirgin olmaya başladı.

    Microsoft Xbox One

    Sony Playstation 4

    AMD, DirectX ve OpenGL’nin büyüsünü yitirmiş geliştiricilerin emriyle bu sorunları çözecek yeni bir API oluşturmaya yönlendirildiğini iddia ediyor. Ek olarak, AMD APU’ları ve GPU’lar Xbox One, PlayStation 4 ve birçok PC’yi çalıştırdığı için şirket, potansiyel olarak birden fazla platformda kullanılabilecek bir API sunmak için benzersiz bir konumdadır.

    Mantle, OpenGL ve DirectX’e kıyasla sözde nasıl gelişiyor?

    Manto, “düşük seviyeli” ve “metale daha yakın” ifadeleriyle ilişkilidir. Ama, bu tam olarak ne demek oluyor? Basit bir ifadeyle, cevap minimalizmdir. DirectX 11 ve OpenGL’den daha küçük, daha basit ve sonuç olarak daha hızlıdır. AMD’nin yeni API’sinin, geliştiricilerin belirli bir sahneyi nasıl oluşturmak istedikleri konusunda daha az varsayımda bulunduğu iddia ediliyor. Bu, API’ler yerine kaynakların daha fazla kontrolünü geliştiricinin eline verir ve daha iyi optimizasyona izin verir.

    Bu ışıkta, Mantle daha verimli olma potansiyeline sahiptir. Ayrıca Mantle, iş yüklerini birden fazla CPU yürütme birimine bölmek için tamamen paralel çekiliş gönderimlerini yürütebilir. API daha fazla işlem kaynağını etkin bir şekilde kullanabiliyorsa, birden çok yürütme birimine sahip daha yavaş CPU’lar daha az darboğaz olabilir.

    Basitçe söylemek gerekirse, AMD, Mantle’ın daha yavaş çok çekirdekli ana bilgisayar işlemcilerine sahip sistemlerde performansı artırma potansiyeline sahip olduğunu iddia ediyor. CPU’nun darboğaz olmadığı durumlarda Mantle, GPU güç tüketimini bile azaltabilir.  

    AMD, açık kaynağın büyük bir destekçisi olduğunu iddia ediyor. Mantle açık kaynaklı bir API midir?

    Mantle açık kaynak değildir ve AMD gelecekte açık kaynak olacağını iddia etmez. Şirket, kapalı beta programı tamamlandıktan sonra Mantle SDK’yı 2014 yılı sonuna kadar herhangi bir lisans ücreti veya kısıtlama olmaksızın herkesin kullanımına sunacağını söylüyor.

    Açıklığa kavuşturmak için SDK’ya erişim, açık kaynak ile aynı şey değildir. Ancak bu, teorik olarak Nvidia ve Intel’in Mantle uyumlu bir sürücü yazabileceği anlamına geliyor. Gerçekçi olarak, bunun olası olmadığını düşünüyorum. Ama duruma ilişkin analizimi vardığımız sonuç için saklıyorum. Mesele şu ki, AMD, Mantle’ı GCN mimarisi için optimize etmek ve geliştiricilerin DirectX ve OpenGL gibi genel API’ler için pratik olmayan yeni donanım özelliklerini hızlı bir şekilde benimsemesine izin vermek için kontrolünü elinde tutmak istiyor.

    Pekala, sanırım Mantle’ın temellerine hakimim. Şimdi ne var?

    Mantle’ı test etmek ve tam olarak ne yapabileceğini görmek istiyoruz. AMD, birkaç geliştiricinin Civilization: Beyond Earth, Star Citizen ve Dragon Age: Inquisition gibi gelecek oyunlar için Mantle desteği üzerinde çalıştığını vaat ederken, bu yazının yazıldığı sırada piyasada şu anda AMD’nin API’sini destekleyen yalnızca üç oyun var. : Battlefield 4, Thief ve Plants vs. Zombies: Garden Warfare. Plants vs. Zombies: Garden Warfare, Mantle kıyaslama işlevine sahip olmadığından ve Battlefield 4’e güç veren aynı Frostbite motorunu kullandığından, Mantle özellikli ilk iki oyuna odaklanacağız.

    0 0 votes
    Rating post
    Subscribe
    Bildir
    guest
    0 comments
    Inline Feedbacks
    View all comments
    0
    Would love your thoughts, please comment.x