PS4 ve Gelecegi

Merhaba arkadaslar. Bu yazimda PS4'un gelecekte neler yapabilecegine dair bir haber yapmaya calisacagim. PS4'un gelecegine isik tutup, neler varmis neler yokmus anlamaya calisacagiz. Anlatim metodu ilginc olacak. Forum donanim sitesinde, Rubisco isimli bir uyenin yazilari baya bir dikkatimi cekti. Bu upuzun yazilari derlemeye calisacagim. Umarim fiyasko ile sonuclanmaz. :D

Rubisco:

Yorum 1:
''Şimdiye kadar kimse GDDR ile yüksek bant genişliğine sahip CPU/GPU hibrid bi sistem yapmadı, AMD'nin APU'ları dahil. GDDR bellek kontrolcüsü ile ilk defa CPU GDDR belleğe erişirken, aynı belleği GPU'da kullanabilecek.
Notebooklarda faln kullanılan paylaşımlı sistemlerde bant genişliği çok dardır, bu da performansa çok büyük olumsuz etkisi olur zaten.
Paylaşımlı sistemler zaten DDR3 kullanır, ddr3'ü en hızlı belleklerle 4 kanal kullansan bile buna erişemezsin zaten, arada 4 kat en az bantgenişliği farkı var.
CPU ve GPU'nun ortak adress alanını kullanabilmesi gibi şimdiye kadar hiçbiyerde olmamış başka katkıları da var. Büyük bant genişliği ile birleşince çok özgün program tasarımlarına imkan veriyor. CPU GPU arasında transfer yapmaya gerek kalmadığı için PC'de karşılaşılan kısıtlamalara maruz kalmayacak. Tress FX'de varolan teknolojiyi , daha fazla bellek kullanmaya karşılık daha yüksek performans verecek şekilde yeniden dizayn edebilirsin. Bunu çok manyak çalışma geliştirme süreci olmadan yapabilirsin. Tress'i açınca nasıl bellek kullanımı artıyor, bunu daha da arttırarak performansı yukarı çekmek mümkün. PC'de 2gb lık kartlar işe yaramaz hale gelirken PS4'de, geliştirmesi fazla zman almayan, daha fazla bellek kullanarak daha fazla performans verecek teknikleri kullanmaya müsait bi bellek yapısı.
Buna benzer bi sürü avantajı var, biraz araştırırsan bu forumda da benzer bilgiler var.''

Yorum 2:
''Esrram Cache olarak kullanılırsa bw açığı kapanır baya.

PS4'de Indie geliştriciler PS3'den çok farklı konumdalar. Bunların bi kısmı donanımdan bolca yararlanmak isteyeceklerdir. Benim bakış açıma göre ben indie geliştrici olsam, sadece PC + PS4 en minimum benim istediklerimi yapabilecek olsa Xbox'ı sallarım. PS4'ün yeteneklerini sonuna kadar kullanmak isterim.

Grafik işleme yeteneği daha az ve bu darbe vuracak doğru, ama konsolların esas olayı GPU Compute ile Grafik işlemlerini beraberce PC'den daha verimli yapabilmeleri. PC'de elinde 100 birim gücünde GPU CPU var ama, GFX+Compute olarak geçiş yapa yapa kullandığın zman bu 100 birim grafik işle 10 birim zaman bekle 4 birim compute işle gibi. Konsolda ise 64 birim grafik işe, 2 birim bekle, 64 birim compute işle gibi. Grafik >> compute >> grafik geçişleri için daha ince ayara daha çabuk geçiş ve daha geniş işleme imkanı var. Ama bu avantajlar GPU Compute amaçlı kullanılırsa daha çok ortaya çkacak.

PS4 başmimarı bunun yoğun olarak 2015 lerde kullanılmaya başlanacağına inanıyor. Belki anca o zmandan sonra daha iyi oyunlar ortaya çıkar.''

Yorum 3:
''Şunu yazmadan anlatamam, bugun PC'de oynadığın oyunların hemen hiçbiri Compute-bound değil, GPGPU ağırlıklı değil yani. Ya dönüp dolaşıp fillrate yüzünden sorun yaşanan, yada çip içi networkde BW limitine takılan oyunlar. ALU yüzünden gerçek anlamda duvara toslanılmıyor. Çünkü bu düzen böyle gelmiş, yıllar yıllar öncesinden beri aynı yaklaşım var hep. İster bunu 2000 öncesine indirge ister ekran kartı / GPU tarihi diye çok daha gerile indirge. Temelde hep aynı yaklaşım var. Günümüzde GPGPU'yu da bu klasik yaklaşımlara destek olması için 3 kuruş fark yaratsın diye kullanıyorlar. Büyük bambaşka yaklaşımlar yok, denenmişse bile GPU'lar ve PC bi şekilde ram engeli oluşturmuş (bunu PC'ye laf etmek için yazmıyorum, eski konsollarda bahsetmek istediğim şeylerin zerresii bile yok). Voxel bazlı işler mesela oyunun bi kısmı voxel tabanlı yapılırken geri kalan kısmı ram engeline takıldığından rasterization üstünden devam edilmiş. Unreal Engine 4, SVO diye yeni bişey kullanacaktı mesela yılan hikayesine döndü olayı. İlerlemek için yapman gereken şey GPU'yu bambaşka özgün bi şekilde programlamak. GPU programlamak derken de , GPU'lar anca Fermi ve GCN ile adam gibi programlanabilir oldular tarihi çok eski değil. Win Dx altında, GPGPU ile yepyeni bişey üretebilecek olsan bile yine kısıtlanıyorsun. Konsollar sana, bu alışılmışın dışına çıkıp GPGPU ve tamamen özel altyapı ile bambaşka imknlar verebilir, üstüne donanım komutu imkanı da tuzu biberi olur. Bunu altyapı olarak oturtana kadar, benimsenene kadar, bu alışmışın dışında render'a doğru konsollarda bi trend oluşana kadar PC'ye oyun da gelir başka şeylerde olur ondan bahsetmiyorum zaten. PC'ye oyun port edilemez diye bişey demedim şimdiye kadar hiçbi yerde şartlarını koydum. Ama yeni konsollarda oyunlrı Compute-bound / GPGPU temelli veya ona dayanan bi yapıya oturtma, özgün tasarım yapma, bunu da konsolun bütün nimetlerinden yararlanarak yapmaya başladıkları zaman PC'de Win Dx'in şimdiye kadar olandan çok çok daha fazla engel teşkil ettiğini görecekler. Mantle gibi şeyler, ne getireceğine bağlı olarak o zman PC'ye çok büyük katkıda bulunabilecek.''

Yorum 4:
''Kimsenin daha anlamadığı farketmediği şeyler var. Dünkü Mantle sunumlarından öğrendiğimiz, Ps4 'deki yazılım/driver altyapısı ile yapılabilecekler offf offf dedirtecek cinsten. Bunu, Crossfire setup için şimdikine göre acayip acayip ötesi imkanlar vermesi gibi imkanları da var. Sony daha akıllı davranıp bunlar hakkında daha öngörülü olabilse, veya mühendisler takım liderleri bişeylere uyanabilse, 2 GPU vs. ile çok çok ilginç şeyler yapabilme imkanı çoktan ciddi ciddi değerlendirebilirlerdi(dahili harici GPu farketmez kombinasyonlar yapın, sunumdaki gibi). Dahili GPU latency kritik işlemler yaparken mesela fizik hesaplaması vs. yaparken , genel render altyapısını hesaplarken harici / diğer GPU ile Global Illumination için Compute / GPGPU maksatlı kullandırtabilirlerdi (Mantle ile imkanı olan şeylerden biri). GI için gereken ram bantgenişliği bütün render için olandan daha az mesela. Harici GPU burda bi tür co-processor / hızlandırıcı gibi kullanılmış olacak.''

Yorum 5:
''Yeni konsolların zorlayıcı yanı, yenilikçe yaklaşımlara imkan vermekten öte zorunlu kılması. Sony'nin GPGPU diyip durması gibi. Adam yıllarca, GPU'nun işlem kapasitesi artışına göre aynı telden çalmaya devam etmiş, 8 sene önce 1 pass ile render yapıyordu, yine çip içindeki bant genişliği ile limitliydi (ALU limitli değildi), rop/tmu yüzünden limitleniyordu, aradan 8 sene geçti şimdi 5-7 pass ile işliyor, yine rop tmu limitli yine çip içi network/bantgenişliği ile limitli. O zmanlar da bi texture alıyorlardı, derinlik testi yapıyorlardı, fillrate ile limitleniyorlardı bantgenişliği ile limitleniyorlardı, şimdi de aynısı var. Kimse birader bu derinlik testini yapmak için 50 tane farklı işlem yapmayalım diyip farklı bi render altyapısı kurduramadı onu diyorum. İş ondan sonra sidik yarışına dönüşüyor işte. Yeni konsollar yenilikçi şeyleri zorunlu kıldığından, bu kısır döngyü kırmaya yardımcı olabilir. Ama aynı zmanda herkesi afallatacağından hiç kolay da olmayabilir. 50 kere en az tekrarlamışımdır, çıkış oyunlarında en ex. olan oyunlarda daha GPGPU'nun, GPU compute ile alakalı olabilecek en ufak bişeyin emaresi bile yok. Ryse için adamlar resmen köle gibi çalıştırılmışlar. Bu şimdiki durum, çıkışa yetişsin diye. Çünkü beklemeye de tahammül yok tren kaçıyor. Adamlar geliştriciler oh be dedikten sonra, biraz zaman bulduktan sonra, hmmm bak burda böyle bişey yapabiliyor muşuz diyebildikten sonra anca yenilikçi şeyler konsollarda görülmeye başlar. ''

Yorum 6:
''Konsolda da, esnek programlanabilir bi GPU ile neler yapabileceklerini öğrenmeleri bana zaman alır gibime geliyor, işin orasında da sıkıntı var. Ryse'dan adamları eşşek gibi çalıştırdıklarını biliyoruz. Killzone'dan herşeyin CPU üstünde yapıldığını biliyoruz. Grafik için render için, kolay kolay kimsenin kısa zaman için donanıma yakın kodlama yapmayacağına da inanıyoruz. Donanıma yakın kodlama yapmak için AMD_IL'yi kullanmaları gerekiyor. Konsoldaki GPU driver/compiler zaten AMD_IL bi kod çıktısı veriyor olabilir. En azından onun üstünde ilave optimizasyon yapabilir miyiz diyecek kadar kurcalamayı düşüneceklerdir. Konsolda hala direk donanım komutlarına erişim imkanları var mı onu da bilmiyoruz (donanım komutları = ISA Assembly). Donanım komutlarına erişim imkanı varsa, daha da sonra GPU'yu çözdükçe onları da kullanıp 3 5 (veya daha fazla) ilave perf çıkartmak veya yenilikler çıkartmak isteyeceklerdir. Ama GPU'yu donanım komutu seviyesinde öğrenmek zaman alıcı iş. PS3'e göre çok daha kolay, sabit platform olduğu için her iki konsolda da çalışacağı için dert değil, ama zor iş yine de. Bilen içn x86'da asm kodlamak gibi. Bilir öğrenirsen belli işleri çatr çatr yaparsın. Compiler optimizasyon yapar, hızlı çalışan bi çıktı verir sana C ile bişey yazdığında. Sonra sen asm. ile elle optimize kod yazıp, compiler'ı yenmek istersin. Basit 20-30 satırlık bi kod için 2-3 gün zaman harcarsın, 2.5 kat fark atabilen bi kod yazabilirsin. x86 asm. yazmak ile GCN GPU'su için asm. yazmak farklı şeyler onu biliyorum, direk programın oyunun tamamı için öle 3-5 kat fark yaratack şeyler çıkmaz. Ama render'ın belli kısmında 1 saatte yazıp 100 birim perf veren bi kısmını , 30 saat uğraşıp 150 birime çıkartabilirsin. Elde ettiğin ilave performans da başka yerde kullanabilirsin. donanım komutları kullanmanın avantajı orda, eski konsollarda başka çareleri olmadığı için mecburen bunu yapıyorlardı. Nvidia'nın kendi dili yerine yer yer donanım komutlarıyla gidiyorlardı donanım aslında kısıtlı diye.''

Yorum 7:
''Hocam anladığım kadarı ile PS4 gelecek açısından çok fazla şey vaad ediyor fakat bunun için yapımcıların uzun bir zamana ihtiyacı var. Ayrıca Compute alanında uzmanlaşmaları gerekiyor. PC tarafında Mantle haricinde başka bir karşılığı olmadığı için oyun yapımcıları Compute'ye yabancı. Fakat Sony'nin X86 kullanıyoruz diye, oyun programlamak daha kolay diye övündüğü şey Compute'siz oyun geliştirmek mi? Çünkü dediğinize bakılırsa PS4'ün çıkış oyunlarında GPU Compute ile uzaktan yakından alakası yok. Sony'de bu GPU Compute'nin PS4 için gelecek vaadettiğinin farkında olmalı ki oyun stüdyolarına gerekli yardımı sağlasın.
Umarım AMD ve Sony mühendisleri özellikle Naugthy Dog gibi Sony'nin gözbebeği stüdyolarına iyi eğitim verirler. Çünkü insan ister istemez yeni Killzone'dan, gelecek olan Uncharted'dan çok daha iyi grafikler bekliyor. PS3'de bile öyle veya böyle çok iyi görsel şölen sunmuşlardı.
Evt, x86 üstünden bahsettikleri genel kodlama yapısı için, oyunun ana hatları için, onun daha kolay olduğundan bahsediyorlar. x86'da da işleri yapmak Cell'e göre veya PPC temelli xbox'a göre daha kolay. Belli vektör işlemleri vs. için x86 üstünden hem daha programlanabilir, hem daha geniş bi kaynak / kütüphanelere erişim imkanı var, hemde en yeni kullanıcının CPU üstünde yapacağı işlemler için ister yüksek seviyeli ister düşük seviyeli her tür iş için başvurabileceği mutlaka bi yer var.
Bu bi nevi geçiş süreci boyunca işler CPU'nın sırtında olacağından, kaynağa ulaşma açısından da sıkıntı çekmeyecekleri için problem-sorn yok.
Sorun GPU kısmında, onun getirdiği kodlama / progrmama esnekliğinde ve Sony'nin bunu sonuna kadar kullanmalarını istemesinde. Ne yazıkki o alan da herşey için AMD'ye muhtaçlar destek anlamında, mimariye göre optimize edebilmek içn. Düşük seviyeli işler için de başvurulabilir kaynak çok hızlı azalıyor. Bunun bi yüksek seviyeli kodlama ile mimariye uygun / optimize edilmiş bi genel hatları var, bi de en azından belli işlemler için düşük seviyeli kodlama olayı var.
Oyun içinde DirectCompute dışında GPGPU kimsenin şimdiye kadar olmadığı bi alan. OpenCL ile oyun içerisinde o kadar rahat kullanmaya çalışma, Dx ile inter-operability rahatlığı yok (Tr'çesi ne bilmiyorum / beraber çalışma / aynı tür formatlı verilerle alışveriş vs.). Dx<<-->> DirectCompute için bu inter-operability imkanı var, ama önceden dediğim gibi Dx altında GPGPU'nun çok bi yaygınlığı da yok. Oyunlarda GPGPU bi nevi bakir bi alan, DirectCompute dışında OpenGL altında GPGPU için GLSL ile veya GL Compute Shader ile oyun hemen hemen hiç yok.
Konsolda oyun yapımcıları bu yüzden yanlızlar, ama mimariye özel kodlayabilecekleri için de bi o kadar şanslılar. Bununla ilgili küçük örnekler vs. ler faln var. ilgilenen varsa GCN GPU'su üstünde Sebbi'nin faln çalışmalarına baksınlar. Mimariye özel kodlayınca, aynı işi bodoslama yapmaya göre nasıl 2-2.5 kat fark yarattığını bazı işler için anlatıyor.
Ama dediğin gibi GPGPU'nun ne Sony'nin dedikleri ile nede çıkış oyunları ile alakası yok. GPGPU ile mesela farklı bi texture compression motoru yazacak adamlar, Killzone'daki 3GB VRAM kullanımı 1:2 oranında ilave sıkıştırılabilecek ve bu sayede sanki 8.5-9GB RAM varmış gibi kullanabilecekler. Veya biraz abartılı sallıyorum yine, Linux'deki Compcache/Z-Ram gibi bişey yapacaklar Ram üstünde swap kullanacaklar, texture sıkıştırması + diğer veriler için sıkıştırma ile birlikte sanki 12GB ram varmış gibi olacak, vs. vs.
GPGPU ile yapılabilecekler senin ne kadar uğraşacağına faln bağlı. Seni rezil de eder anca bu kadar mı yapabldin dedirtir, vezir de eder vay anasını dedirtir. Sparse Voxel olayını yukardaki örnekle birleştirdiler diyelim, 12 GB genişletilmiş ram gibi bişeymiz olduğunu varsay, iş görecek kadar yeni şeyler yapılabilir mesela. PC için kimse bu tür bi örnekle çıkıp, ""bizim oyun en az 3GB Vram istiyor, en az 6-7 GB Ram istiyor" gibi min. bi sistem greksinimi isteyemez, satamaz o oyunu çünkü.
Başlarda, PC'deki kullanımına benzer şekilde kullanacaklardır. Zaman içerisinde daha özgün işlere yelken açarlar diye umut ediyoruz. PS4 için boşuna 8 ACE istenmedi yani az buçuk yetenekli bi GPU var compute için CPU-GPU arasında limit olmaması adına.''

Yazi epey uzun oldu. 14 sayfalik yazidan derlemeler biraz hasta etti. :D Ama benim baya ilgimi cekti. Adam kutuphane gibi valla. :D Sorulari olan olursa, cevaplamaya calisirim. Yeterki okuyun. :D
 
Son düzenleme:
Konu hortlatmak gibi olmasın ama gerçekten müthiş bir yazı. Rubisco gerçekten müthiş bir insan. Yazısındaki en önemli yerleri alıntılıyorum, bir nevi özetin özetini çıkarmış gibi oluyorum:

1/Şunu yazmadan anlatamam, bugun PC'de oynadığın oyunların hemen hiçbiri Compute-bound değil, GPGPU ağırlıklı değil yani. Ya dönüp dolaşıp fillrate yüzünden sorun yaşanan, ya da çip içi networkde BW limitine takılan oyunlar. ALU yüzünden gerçek anlamda duvara toslanılmıyor.

2/GPGPU ile yapılabilecekler senin ne kadar uğraşacağına falan bağlı. Seni rezil de eder anca bu kadar mı yapabildin dedirtir, vezir de eder vay anasını dedirtir.

3/Grafik işleme yeteneği daha az ve bu darbe vuracak doğru, ama konsolların esas olayı GPU Compute ile Grafik işlemlerini beraberce PC'den daha verimli yapabilmeleri. PC'de elinde 100 birim gücünde GPU CPU var ama, GFX+Compute olarak geçiş yapa yapa kullandığın zaman bu 100 birim grafik işle 10 birim zaman bekle 4 birim compute işle gibi. Konsolda ise 64 birim grafik işe, 2 birim bekle, 64 birim compute işle gibi. Grafik >> compute >> grafik geçişleri için daha ince ayara daha çabuk geçiş ve daha geniş işleme imkanı var. Ama bu avantajlar GPU Compute amaçlı kullanılırsa daha çok ortaya çkacak.

4/GPGPU ile mesela farklı bi texture compression motoru yazacak adamlar, Killzone'daki 3GB VRAM kullanımı 1:2 oranında ilave sıkıştırılabilecek ve bu sayede sanki 8.5-9GB RAM varmış gibi kullanabilecekler. Veya biraz abartılı sallıyorum yine, Linux'deki Compcache/Z-Ram gibi bir şey yapacaklar Ram üstünde swap kullanacaklar, texture sıkıştırması + diğer veriler için sıkıştırma ile birlikte sanki 12GB ram varmış gibi olacak, vs. vs.
 
Son düzenleyen: Moderatör:
Gerçekten de öyle. Okuduğunuz için, yorum yazdığınız için ayrıca teşekkürler. Umarım bu konuya ilgi biraz daha artar. Çünkü çoğu insanın kafasına takılan sorulara bir nevi cevap, ders niteliğinde.
 
Uyarı! Bu konu 10 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı