Šta je novo?

Kraj grafickih API-ja...

  • Začetnik teme Začetnik teme Doktor
  • Datum pokretanja Datum pokretanja
To se i ocekuje... OGL i D3D ce ostati samo zarad kompatibilnosti.
Sada dolazi vreme kada ce deveoperima trebati jos vise vremena da naprave igru. Pojavice se timovi koji prave custom renderere. Posto se vec zna kako radi ray-tracing ili radiosity i sl. pojavice se razlicite implementacije tih tehnika. Porediceom brzine engine-a, kvalitet, a ponajvise sw i hw bug-ove. Programeri ce morati da prave razlicit codepath za svaki GPU. Nedostatak standarda za programiranje takvih GPU-ova ce u pocetku doneti veliku zbrku i probleme sa kompatibilnoscu programa na razlicitim GPU-ovima.

Sve u svemu... tek kada izadje larrabe-2 ili 3 ocekujem ono sto TS opisuje. Do tada ce sve biti na nivou pionirskih pokusaja.
 
Vec postovano u threadu o Larrabee.

Ne bih se slozio samo oko konstatacije da ce biti zbrke. Po meni i TS i JC jedva cekaju da mogu da ponovo pisu engine u C/C++ sto ce nativno raditi na Larrabee, a NVIDIA i ATI... pa... ATI ce se snaci za x86 GPU jos nekako, a zeleni tim ce bogami morati da ocekuje neka CUDA ne bi li se izvukao.
 
nije sve u x86... al ovo nije tema za to.
 
Svakako da nije sve u x86.

JS: I'd like to chat a little bit about Larrabee and software rendering. I'm sure you're NDA'd on it, but Intel just did a pretty substantial reveal so we can talk in more detail about it. So first off, I'm wondering if you're looking at any of the Larrabee native stuff. What do you think about the prospects of this whole idea of not doing Direct3D or OpenGL, but writing directly to Larrabee's micro-OS?

TS: I expect that in the next generation we'll write 100 percent of our rendering code in a real programming language—not DirectX, not OpenGL, but a language like C++ or CUDA. A real programming language unconstrained by weird API restrictions. Whether that runs on NVIDIA hardware, Intel hardware or ATI hardware is really an independent question. You could potentially run it on any hardware that's capable of running general-purpose code efficiently.

JS: So you guys are just going to skip these graphics APIs entirely?
 
Mislim da cemo prvo videti neki hibridni pristup. Necemo tek tako da odbacimo rasterizator koji odlicno radi svoj posao.
Takodje, razvoj rendering enginea na tako niskom nivou je mnogo komplikovan posao. Npr.. ako uporedimo tile-based hw, scanline hw ili quad+scanline nema sansi da isti code radi podjednako dobro na svim platformama. To takodje znaci da treba isprogramirati sve varijante.
Na danasnjem hw, rasterizator je taj koji se brine o redosledu obrade pixela.
 
Vec vidim kod :

#if defined(LARABI)
mov mmultra0, 512bitDWORD eax
...
#endif
#if defined(NVIDIA)
....
...

ili mozda jednostavnije
pDevice->DrawIndexedPrimitive
 
Poslednja izmena:
Slabo se razumijem u ovo a bas me interesuje. Sta ce novo da nam donese ovaj larrabe? Da li ce igre izgledati bolje i raditi brze? Ako sam dobro shvatio trebalo bi da graficke budu bolje iskoristene ili grijesim?
 
Cela fora larabija je da dinamicki rasporedjujes "resurse"... Ono sto je sada u hardware-u to ce na larabiju biti u software-u sto znaci da ako je recimo usko grlo shejder tebi zvrje ostali resursi u prazno a to je pojelo prostor na chip-u... bolje da to ostalo budu sejderi al ne moze... na larabiju moze jer je sve gomila procesora koji mogu da rade sve... znaci nisu jedinice hardware vec su jedinice moduli software-a pa je dinamicka raspodela resursa jako fina stvar... prednost je sto je intel isto dobro istestirao pentium chipove tako da ne bi trebalo da sto se tice samih procesora bude puno bagova...
mana je sto je software sporije resenje u odnosu na hardware-sko... da bi upisao jedan bajt u neki registar ti moras da ga dovuces iz memorije pa bla bla kes i slicno.. u hardware-skom resenju mozes da imas lokalnu memoriju samo za tu jedinicu tipa
reg [127:0] memorija [0:255];
i tu ce da se posadi ultra brzi sram recimo... jeste da ce da pojede prostor ali zato u paraleli sa pristupom njemu moze da se radi sa bilo cim drugim... kod larabija mislim da ne mozes da lokujes kes liniju kao lokalnu memoriju... ili kazes a<= b + c i posadi ti se jedan 32 bitni sabirac a ne da imas instrukciju koja traje jedan takt i koja mora da pristupa registrima i sl..

druga stvar sto uraditi software-ski rasterajzer je extremno kompleksan posao... primera radi, najobicniji rasterajzer koji radi flat sencenje trouglica i to single thread-ed je prosta stvar... ali ako taj rasterajzer treba da radi na 32 jezgra pristupa istim kes linijama za upis rezultata pa treba izbeci lazno ili kvazi lazno deljenje kes linije.. tj da jedan kes ne trazi liniju koju drugi koristi i sl.. to su vec pipave stvari... ja bih za sada zaboravio na pricu o pisanju custom rasterajzera i recimo preorijentisao bih se na davanju dinamike u igricama... stvari koje izgledaju fotorealisticno se ponasaju kao kruta tela i interakcija sa njima je uzasna. Mene to nervira posto se to najmanje promenilo za ovih zadnjih 10 godina od kad je sve da kazem pocelo... Brdo igrica radi jos uvek kretanje po nivoima iz 3 lica vrsi kao rotate + translate neke predefinisane animacije koju su animatori nasnimili sto je grozno i ako ta figura izgleda "fotorealisticno"... fali puno toga...
meni je revolucija bio HL 1 jer sam po prvi put poistovetio sa glavnim likom jer su AI uradili perfektno... tako da za osecaj nije sve u engine-u...

edit:
ovo je samo nabacano ali mislim da se vidi sustina... a to je da nije tako lako pronaci optimalno resenje.
zaboravio sam jos jednu prednost larabija a to je da ce 90% bagova biti software-ski sto znaci skine se novi drajver i ispravljeno je... jako jednostavno
 
Poslednja izmena:
Bum tras zvizdeca ajkula 🙂 genuine uplasio me je tvoj post 🙂

Moja prica se ogranicava na nV procesore >= G80.
Jedini nedostatak koji ja vidim sa sadasnjim gpgpu resenjem je SIMT. Naime ako problem ima data dependent grananje onda su performanse na datom odredjenom multicore unitu kome je zapao takav warp ili warpovi - osetno degradirane. Warp = grupa od 32 threada iz thread block-a.
Znaci da bi se sadasnji GPU HW iskoristio maximalno, sam problem mora da bude takav da algoritam omogucava dobru paralelizaciju nad svojim setom podataka.
Larabi bi trebao da otkloni taj problem. Takodje mislim da ce Software podrska Intela biti izuzetna. No videcemo sta ce izbaciti nV u naredne 2-3 god, a isto tako cemo videti kako ce se CUDA razvijati.
Uzivacemo u kineskoj kletvi "Dabogda ziveo u zanimljiva vremena"

M.
 
mana je sto je software sporije resenje u odnosu na hardware-sko

Poenta softverskog resenja je sto nova verzija drajvera, mikro-kernela ili nova verzija Native C++ aplikacije za Larrabee moze doneti drasticno ubrzanje (ako se primeni optimalniji algoritam), dok kod hardverskog resenja mozes samo da pravis novi cip.
 
Poslednja izmena:
Slazem se da performanse mogu dosta da se poprave iz drajver-a za larabi ali mogu takodje i za standardni gpu... Moja cela poenta je bila da ako imas standardne operacije kao blending, zbuffer test stencil test i sl.. mnogo je efektnije da napravis posebne jedinice koje bi to radile nego da se to radi iz shader-a ili cega vec.. kod larabija svi moduli dele resurse i to su procesori sa kesevima svojagon dok kod klasicnih gpu-ova moduli imaju svoje resurse tako da nema nezeljenih efekata sa kesevima i sl. i svi rade paralelno... sa strane "generalnosti" larabi je skorz ok.. ali opet sa druge strane larabi nisam probao tako da je sve u domenu spekulacije... ako bude dobar to znaci novi konkurent za ati i nv i to znaci brzi napredak gpu-ova i takodje neko ce morati na zalost vise da radi... a ako ne bude dobar onda ce sigurno biti dobar pokusaj ala itanium
 
Poslednja izmena:
Prvo, Larrabee ima punu koherenciju, nema problema od cache-a, stavise to je prednost jer GPU-ovi lose rade sa deljenim podacima.

Drugo, ti kad imas hardverski blending:

1. Ne mozes da ga zaobidjes kad ti ne treba
2. Ne mozes softverski da ga ucinis efikasnijim nego pravis novi cip

To sam hteo da kazem.
 
1. zasto ne bi mogao da da zaobidjes HW blending ?
2. pa upravo je poenta napraviti nesavrsen proizvod, onda ispravke i bolje performanse prodaju sledecu generaciju.

poz
M.
 
Ma Tim je poznat po tome da je najjaca marketinska igracka u dev industriji...

svi se secamo kako je svojevremeno "demonstrirao" UT3 na "zivom" PS3 i tvrdio da im je za portovanje sa PC-a trebalo samo par sati!!!

Posle se ispostavilo da je prebacivanje UE3 masine na PS3 posao koji zahteva GODINE!! Zbog tih obecanja o lakom portovanju Silicon Knight je tuzio Epic da ih je zeznuo i da je kod za PS3 mesecima daleko od stabilnog... zbog te "lakoce" je UT3 kasnio jer je na prvom mestu i bio obecan kao ultimativni FPS na PS3...
Naravno Tim je pragmatican covek i sve moze za one koji plate, pa tako mrtav ladan ide sa jedne na drugu konferenciju i onda se covek ubije od hvaljenja XB360 i lakoce programiranja na njemu... i tako sve u krug...

Mrzi me sad da googlam, ali sams e nacitao njegovih intervjua podosta i ono sto im je zajednicko, jeste da je covek apsolutno dosledan u svojim kontradiktornostima...

sve u svemu, poenta je da je danas jako skupo razvijati i najjednostavnije igre, akamoli AAA projekte... ne iskljucujem mogucnost R&D ulaganja u neke nove tehnike, ali dok god kriticnu masu igrackih akceleratora cine DX 9/10 ili OGL2/3 akceleratori, ti graficki API-ji ce itekako ziveti i razvijati se... sve suprotne tvrdnje nemaju veze sa realnoscu, narocito onom ekonomskom.
 
Poenta je da modelovanje i izrada igre (sandbox) bude sto jednostavniji i da na njemu mogu da rade direktno dizajneri, animatori i ostali koji ne umeju da kodiraju. Crysis sand box je recimo odlican, a Karamakov ce biti jos bolji, ono je cudo kako radi. Udjes i krenes da pravis igru. To je bliska buducnost, (bar mislim da je moguca, Rage nije tako daleko) da se kompleksne igre lakse prave te da ih vise imamo i manje cekamo.
Ko ce bre da ceka da neko napise rasterajzer za 10 razlicitih arhitektura grafickih karti i to za jednu igru ? Kolko ce da se razvija takva igra ? Ko duke nukem for (ne)ever ?

Jedino da svi kupimo Larabe posle, ali opet ce doci neka konkurencija pa ce opet biti vise larabe-like CPU-a i onda opet ko i sa grafickim kartama...Never ending story.
 
Ja mislim da vi svi strasno potcenjujete softverski renderer bez razloga. Neke od najboljih igara ikada su bile uradjene skroz softverski jer 3D nije ni postojao u to vreme u onom smislu u kom postoji danas.

Takodje gresite sto mislite da je to teze nego DirectX -- pa i za Larrabee ce neko napisati engine koji ce drugi koristiti kao sto danas koriste Crytekov engine, UT3 engine, Quake engine, etc. Razlika je samo u tome sto ce biti mnogo jednostavnije raditi customization takvog engine-a jer ce ceo biti u C++, a ne malo shaderi malo C++ malo asembler, malo CUDA, itd.
 
Razlika je samo u tome sto ce biti mnogo jednostavnije raditi customization takvog engine-a jer ce ceo biti u C++, a ne malo shaderi malo C++ malo asembler, malo CUDA, itd.

100% se slazem. Ali moramo da vidimo sta ce zaista Larrabee da donese. Meni nekako isuvise idealno zvuci da ce posle njega nastati potop i da nece biti drugih arhitektura. Odnosno isuvise grozno bi to bilo !
No na taj odgovor cemo morati da sacekamo jos 3 godine minimum. Tu racunam vreme da se Larrabee obznani svetini, da se napisu barem 2 engine-a za njega, da se istestiraju, puste u komercijalnu upotrebu i da se napisu barem 3-4 naslova koji ih koriste da bi uopste mogli da se porede medjusobno i sa drugim API-ima.
A za to vreme se ocekuje da nV i ATI mrse... i cekaju da ih intel ugazi... veoma mi je nerealan takav scenario.
 
Jedini nacin da neko napise softwareski rasterajzer ili sta vec je da intel objavi source svog sto ne bi bilo prijatno za intel jel bi odali puno tajni.. ovako da neko drugi napise efikasan rasterajzer koji radi 50% brzine intelovog mislim da nema teorijske sanse... druga stvar je da microsoft to ne bi dao... Microsoft kontrolise Direct3D API i ne verujem da bi tako lako digo ruke od istog jer je to jedan od razloga zasto ljudi koriste windows. Ako bi larabi bio pobednik i svi bi koristili larabi onda ne bi bilo poente koristiti windows zato sto nema vise Direct3D-a (osim ako se ne koristi intelov drajver a onda larabi gubi poentu u programabilnosti)... extenzije Direct3D-a ne postoje tako da je to corsokak..

Za sada ja u opste ne bih razmisljao o odustajanju od opengl-a i direct3d-a jer je to sustina apstrakcije hardware-a za racunarsku grafiku.
 
druga stvar je da microsoft to ne bi dao... Microsoft kontrolise Direct3D API i ne verujem da bi tako lako digo ruke od istog jer je to jedan od razloga zasto ljudi koriste windows.

sjajno! 8)
 
Intel ce verovatno napraviti neki low-level API za programiranje larrabia i bice slican CUDA/OpenCL. Koristeci takav API bilo bi moguce napraviti high-level render API koji ne bi patio od neprilagodjenosti code-a arhitekturi. Bilo bi suludo programirati renderer i ASM-u. Verujem da bi audio to mogao ali bi u medjuvremenu osedeo. 🙂
 
Ja mislim da vi svi strasno potcenjujete softverski renderer bez razloga. Neke od najboljih igara ikada su bile uradjene skroz softverski jer 3D nije ni postojao u to vreme u onom smislu u kom postoji danas.

Takodje gresite sto mislite da je to teze nego DirectX -- pa i za Larrabee ce neko napisati engine koji ce drugi koristiti kao sto danas koriste Crytekov engine, UT3 engine, Quake engine, etc. Razlika je samo u tome sto ce biti mnogo jednostavnije raditi customization takvog engine-a jer ce ceo biti u C++, a ne malo shaderi malo C++ malo asembler, malo CUDA, itd.

Informacije koje sam off the record, iz razgovora, dobio od inženjera iz Intela, a koji stalno pominju da je "larrabee is about legacy", kao i da igre nisu najbitnija stvar - tu je i HD video, multi-view, GP-GPU itd - dovode me do zaključka da prvi Larrabee SKU-ovi neće biti pozicionirani kao hardcore grafičke. Niti je to moguće u startu, jer neće biti dobar u DX9 i DX10 naslovima (ali će verujem biti dobrih demoa koji rade sa njegovim internim API-jem) i AMD i NVIDIA će imati nešto ozbiljnije, niti, kako se čini, Intel želi u startu da napadne PC gaming. Verovatno će pre želeti da ga prekroji, na sopstveni način. Jedan od njih može da bude implementacija u neku konzolu, ali ako dev-kit ne bude jednostavan kao za Xbox360, ta konzola može da prođe još gore od PS3 kad je razvoj (portovanje) naslova za nju u pitanju. Ne kažem da Intel ne može da pokupuje pola game-dev timova, nego je samo pitanje da li cilj opravdava sredstva...
 
Prvo se sve obavljalo softverski na CPU-u, onda je napravljen odvojeni dedicated neprogramilni grafički čip da bi efikasnije obavljao posao od general purpose CPU-a. Onda je GPU postao programabilan, pa sada GPU postaje general purpose, da bi onda jednog dana GPU ponovo bio integrisan u CPU...

Totalno loodilo...
 
Ja bih pre reko da gpu postaje nesto sto je cpu trebalo da bude 🙂
 
Pa znam da je poznat ali kako organizovati podatke.. teksture... pipeline... ima tu puno mesta za poslovne tajne tipa intelova biblioteka za brzu matematiku ako se ne varam... barem da naprave neku osnovu ili primer kako treba raditi ali windows ddk i sl..
 
Poslednja izmena:
Informacije koje sam off the record, iz razgovora, dobio od inženjera iz Intela, a koji stalno pominju da je "larrabee is about legacy"...

Da, to sam i ja nacuo i to mi iskreno zvuci suludo... mislim WTF kakav legacy?! ispada da ce kullerapp za Larrabee biti Quake 4 + patch za RT :trust:
 
Nazad
Vrh Dno