Diit.cz - Novinky a informace o hardware, software a internetu

Diskuse k Tim Sweeney: vývoj software pro GPU je neekonomický, GPU zaniknou

Prvně tohle Sweeney tvrdil před deseti lety... a vlastně všechny prognózy, které od té doby vyřkl, nevyšly :-)

+1
-1
-1
Je komentář přínosný?

Ja nevim, proc uz konecne nevznikne jedna CPU (CENTRALNI=jedina vypocetni jednotka). To musi kdejaka periferie neco pocitat? Dnes, kdy je komunikace rychlejsi a efektivnejsi nez vypocty osamocenych "CPU" v periferiich,snad nema smysl praci rozmelnovat, ale naopak vsechnu tvrdou praci sverit povolanym ...

+1
0
-1
Je komentář přínosný?

Nie som vyvojar, ale chlapcov z EPICu nemusim. Akosi tychto samozvanych prorokov neuznavam z dovodu toho ze toho nic moc nepredviedli UE3.0 oproti tomu co bolo slubovane v roku 2004 obsahuje tak polovicu. Celkovo ich predpovede su zaujimave a vzdy obhajuju ich cestu a zatracuju vsetko ostatne. Je jasne ze tie ich hry nebudu slapat na konzoliach ak budu vyuzivat silne GPGPU operacie, Fyziku a podobne veci. tz. menej zisku, ale viac prace. Ich demagogia o buducnosti je fakt na usmiatie a pripadaju mi tak tocha ako Bill v Microsofte ked bol este mlady a hlupy.

+1
-1
-1
Je komentář přínosný?

jestli to dobře chápu padlo by "tabu" DX10 - pro systémy WinXP atd...
jednoduše proto, že žádné takové API nebude použito.

+1
0
-1
Je komentář přínosný?

Je to nejak divne napsane - tvrdi, ze GPGPU programovani je moc drahe a tak se neuchyti a v dalsich vetach pise, ze programovani v CUDA ano? CUDA neni nic jineho nez GPGPU, akorat to neni zavisle na presne jednom typu karty ale o neco univerzalnejsi

+1
0
-1
Je komentář přínosný?

Já tedy naopak věřím, že by časem mohla objevit varianta, kdy je "skoro vše" integrováno na motherboardu a jsou tam jenom dvě patice. A sice jedna pro CPU a jedna pro GPU. Jo a pak samozřejmě nějaké sloty pro paměti a konektory pro připojení periférií typu HDD apod.

+1
0
-1
Je komentář přínosný?

IMHO je tohle celé jen bouře ve sklenici vody. Kdyby si opravdu měli vyvíjet _celý_ engine, tak náklady nebudou 2-3násobné, ale 20-30násobné. O tom že to pak bude chodit jen na podporovaném HW ani nemluvě. Kdo si pamatuje doby DOSových her, kdy podpora "hloupého" zvuku byla v 90% omezena na Adlib + SB(Pro) a majitelé Gravis Ultrasound nebo ještě exotičtějších karet si mohli tak akorát vyzkoušet emulaci SB, mi dá za pravdu. U grafiky to zase vyzkoušelo 3dfx se svým Glide, že tudy cesta rovněž nevede.

Pokud to celé bylo míněno tak, že současné API má být nahrazeno API jiným, mnohem univerzálnějším, pak ano, to je možná cesta, ale vykoupená násobným zesložitěním (prakticky by se z GPU muselo udělat plnohodnotné CPU) HW běžícího pod tímto API _NEBO_ násobným zpomalením. Jestli to bylo cílení na larrabee, pak by to jistý smysl mělo, nicméně se domnívám, že výkonově jsou už dnešní karty nad úrovní budoucího Intel Larrabee.

+1
0
-1
Je komentář přínosný?

ten rozdiel programovania GPGPU a CUDA alebo jednovlaknove a viacvlaknove (povedzme larrabee) je asi brany skor z hladiska programatora a optimalizacie ako cisto z technickeho hladiska.
Urcite je jednoduchsie pisat v niecom unifikovanom a normalnym prog jazykom podomnom ako je CUDA nez v GPGPU (asi prave je to myslene skor ako low level assembler na karte nez technologia vypoctov na karte).A to iste aj Larrabee, asi sa predpoklada ze intel spravi fajny prechod na tuto platformu, kniznice kde nebude musiet programator az tak riesit ako sa dany algoritmus rozhodi na jadra (teda nebude musiet riesit ked nebude chciet).

+1
0
-1
Je komentář přínosný?

kilinux: Nebude to tím, že GPU zvládá akcelerovat současnou 3D grafiku asi tak 100-1000x rychleji, než CPU? Na základní filtraci textur, kterou jedna texturovací jednotka zvládne v jednom taktu, potřebuje CPU taktů desítky až stovky. A když si k tomu připočteš, že v současných GPU jsou texturovacích jednotek desítky a brzy se jejich počet bude pohybovat kolem stovky + že čistě bilineární Int8 filtrace se už taky moc nepoužívá a uživatelé/hry využívají trilineární (2x náročnější), nebo anizotropní (32x náročnější) filtraci, případně FP16 místo Int8, tak je jasné, že se současným přístupem tu grafické karty budou ještě pěkných pár let. Kdyby CPU byly rychlejší, proč by všichni vývojáři psali hry pro hardwarovou akceleraci?

Sweeney byl jedním z posledních šílenců, kteří ještě na konci 90. let tlačil softwarovou akceleraci, když ho situace přiměla přepsat Unreal pro Glide, mluvil o tom jako o naprosto zbytečné věci a ztrátě času, dodnes ten člověk odmítá akceptovat jakékoli přínosy FSAA a jeho enginy (jako snad jediné) jsou napsané tak, že FSAA nepodporují, takže ATi s nVidií mají plné ruce práce, aby jeho ignorantství obcházeli a aby si uživatelé AA nějakým způsobem mohli zapnout. Ten člověk je asi dobrý programátor, ale jako vizionář byl vždycky totálně mimo...

+1
-1
-1
Je komentář přínosný?

S timem ani moc nesouhlasím v otazce zániku GPU, ale fandím mu v boji proti blbosti zvané DirectX. Myslím si že odproštění od DirectX a OpenGL je krok správným směrem.

+1
0
-1
Je komentář přínosný?

A v čem je problém napsat vicevláknovou hru? Chce to jen rozdělit program na více úloh a vymyslet šikovné předavání dat mezi nimi. Nic složitého, funguje mi to i na malém procesoru v asembleru s pár byty RAMky, tak proč by to nemělo jít na PC?

+1
0
-1
Je komentář přínosný?

"čímž patrně míni ?klasickou jednovláknovou aplikaci?)."Tak to zaručeně nemíní
"Tim viděl a prozkoumal DirectX 11 a jeho komentář na omezenost divného rozhraní se vztahuje i na ně."To je vtip?
"V zásadě se tak hodlá vrátit do pre-DirectX dob"Proboha, už dost ... nějak to přestává být vtipné (bohužel to ani vtipné být nezačalo)
dál už radši nečtu

+1
0
-1
Je komentář přínosný?

Michal123: nikdo neříká, že to nejde, prostě je to jenom 2x dražší ... řekl bych, že ta čísla o náročnosti (tj. náročnosti časové = finanční) programování docela sedí.

+1
0
-1
Je komentář přínosný?

TyNyT: Napsat aplikaci vicevlaknove je samozrejme narocnejsi nez jednovlaknove ale 20-30x naklady sou blbost.
Nehlede na to naprosta vetsina PC dneska ma minimalne 2-4 jadra takze psat aplikace na dnesni PC jako jednovlaknove je blbost.
Ano je to trosicku drazssi, ale v ramci 10mil projektu dost silne pochybuju ze naklday presahnou 10% navyseni.

+1
0
-1
Je komentář přínosný?

Podle me je to dalsi IT prorok... jako by kazdy kdo v IT vydelal nejake prachy mel patent na budoucnost... :)

A z toho jeho vyjadreni mam spis pocit ze mu nekdo nedal neco co chtel (pripadne za to chteli zaplatit)

+1
0
-1
Je komentář přínosný?

Doufám že se Timovy prognozy vyplní. Konec konců je to i dost realistické. Na Unreal 4 enginu pracuje už od roku 2003, tedy šest let, byť nejprve jenom sám a větší skupina programátorů se k němu připojila tak před rokem. Je tedy zřejmé, že už si zde lecos odzkoušel a je nesmysl si myslet, že po 6-ti letch vývoje najednou zjistí, že tudy to nejde.

Jeho vize se mi velice líbí. Napsat kod hry v klasickém jazyce (např C++) a pak ho jenom překompilovat překladači k x86, GPU, či Larrabee na jednotlivé výpočetní platformy, je velice flexibilní a univerzální možnost. Ať se jednotlivé kusy HW ukáží, co dokáží s general purpose kodem.

I u dnešních GPU je vidět tahle cesta. Nárůst ALU vzhledem k fixním texturovacím jednotkám je markantní a stejně tak snaha nVidie i ATi zpracovávat na GPU obecné výpočty dokazuje snahu postupně odstranit pochybná API a jít směrem ke general purpose počítání. Ačkoli zatím je to bída. I přes dost brutální hype a zfalšované testy, GPGPU implementace je jen u naprostého minima SW a navíc jde dost často o výpočty v mizerné kvalitě a s nutností si výpočty nechat napřed předžvejkat procesorem. Intel pracuje na Larrabee obsahující jen naprosto nezbytné množství fixních funkcí vzhledem k zpětné kompatibilitě. Carmack koketuje s voxely a raytracingem, stejně jako nVidia, Intel a ATi. Zánik klasické rasterizace je na spadnutí a s ní i fixní funkce texturovacích jednotek v GPU. To je také jediný důvod proč CPU nemůže počítat dnešní grafiku. Klasické shadery se dají krásně počítat ve vektorových jednotkách.

Mimochodem, zajímavý je také jeden starší rozhovor kde tvrdil, že Unreal 4 engine bude vyžadovat minimálně deseti jádrové CPU a dokáží využít maximálněcca 40 jader. Během vývoje se lecos může změnit, ale evidentně se řeči o nemožnosti ve hrách využít větší počet jader ukazují jako liché.

+1
0
-1
Je komentář přínosný?

Michal 123>
>A v čem je problém napsat vicevláknovou hru? Chce to jen rozdělit program na více úloh a
>vymyslet šikovné předavání dat mezi nimi

prve v tom co ste napisali, intel zitil, ze ani nie 1% programatorov dokaze vymysliet to sikovne predvanie dat.... A ti su drahi.... Pred multihjadrami stihal robit server aplikacie, ale teraz musia robit desktop, server aj GPGPU aplikacie a na to ich je malo a teda su drahi....

27 November 2007, 12:28

INTEL RECKONS barely one per cent of software programmers are prepared to face the challenge of parallel programming, which the hardware giant (unsurprisingly) reckons is the future of development.
http://www.theinquirer.net/inquirer/news/1026585/parallel-programmers-pr...

+1
0
-1
Je komentář přínosný?

Moc nerozumím, jak to Tim Sweeney myslel. Doufám, že ho článek moc dobře nevystihuje. Jsou tam docela zásadní rozpory a nepřesnosti. Viz CUDA ANO, multi-thread NE, nebo třeba to že současné herní enginy nejsou raytracingové ale rasterizační.

+1
0
-1
Je komentář přínosný?

"Nárůst ALU vzhledem k fixním texturovacím jednotkám je markantní"

A kde? :-) Za poslední 3-4 roky se totiž nezměnilo v tomhle ohledu prakticky nic. Nelze brát v potaz to, co tvrdí marketing, je třeba se podívat na reálná čísla. Pokud si poměr ALU:TEX vyjádříme pěkně univerzálně v teoretických gigaflops : teoretickým Int8 trilineárním texelům, tak jsou ty poměry u posledních generací hardwaru téměř neměnné: R580: 1:77, R600: 1:80, R670: 1:80, RV770: 1:80... u nVidie: G70: 1:27,6, G71: 1:27,3, G80: 1:28,2, G92: 1:30, GT200: 1:39. Ty rozdíly jsou tak nevýrazné, že se nedá mluvit o trendu. Možná to změní DX11 generace grafických čipů, ale od druhé generace SM3.0 hardwaru ATi i nVidie poměr ALU:TEX ve skutečnosti ani jeden z výrobců nezměnil... Dokonce spíš DX10 generace hardwaru vedla k posílení texturovacích jednotek - FP16 filtrace, která na SM3.0 hardwaru u nVidie běžela na 1/4-1/8 výkonu Int8 filtrace a na hardwaru ATi byla emulovaná, běží teď na DX10 hardwaru nVidie i ATi (podle konkrétních čipů) při plném (R6xx/G80), nebo polovičním výkonu (R7xx/G8x,G9x,GT2xx).

+1
0
-1
Je komentář přínosný?

Šmánkote Michale123, to že dokážete naprogramovat pár PIC či Atmelů, které posílají výsledky koordinačnímu procesoru a myslíte si jak je to snadné. Jakpak třeba máte ošetřeno aby to běhalo s jiným počtem procesorů? Také mám trochu praxi (robotika), ale to je vy o koze a článek o voze.
Programy musí běhat na libovolném počtu jader (CPU i GPU). A na světě není jen jeden typ (to je jako stroják přenést z PIC na Atmel). Tak se snažte pochopit, že regulace vytápění v RD s mnoha čidly se samostatnými procesory není to samé. Pokuste se na své platformě napsat třeba starého Wolfštejna a uvidíte.

+1
0
-1
Je komentář přínosný?

Programování pro více jader je problém. Ne že by to nešlo, ale problém je že koncepce vychází z programování jednoho jádra. To může fungovat u několika procesů jako to je dnes ale pokud bude v budoucnu 200-1000 plnohodnotných jader tak už to fungovat bude dost ztěží. To by si vyžádalo zdela jiný přístup k programování. Zcela jiný přístup by ovšem potřeboval i zcela jinou koncepci hw.

+1
0
-1
Je komentář přínosný?

Michal123> heh napisat mutithread hru no problem hej ? no dobre az na to ze hry vyuzivaju prakticky skoro vsetok hw v pocitaci (GPU,CPU,RAM,disk,cd/dvd rom,sietovka,audio,i/o klavesnica mys a dalsie minoritne extremnosti).
Ano napisat multithreadovu app kde jeden trhead pobezi na jednom jadre na 80% a druhy na druhom jadre povedzme na 20% a hra bude hlasit ze vytazila procak na 100% to fakt neni problem, ale napisat hru aby aspon ako tak linearne skalovala pri zvysovani poctu jadier to uz problem je.Napriklad bezna fpska,sietovy kod.Pri single hre ho mozete prakticky odignorovat ale bacha, ked hrac spusti hru ako server tak uz asi bude potrebovat viac vykonu na spracovanie komunikacie.

A imho rendering kompletne na cpu je podla mna dobra volba.Dnes hry po technickej stranke grafiky vyzeraju vsetky rovnako.Vyvjojari su obmedzeny tym co dokaze hw platforma - nvidia alebo ati.

+1
0
-1
Je komentář přínosný?

2TyNyT: Koukam zes toho uz hoodne pozapomel, Glide samozrejme cesta byla, ale 3Dfx nezvladli zcela zasadne marketing a vyvoj novych verzi karet. Glide bylo ve svy dobe min 3x vykonejsi nez tehdejsi pokusy M$ s Dx a pokud nektera gameska nebezela na Glide, nikdo po ni ani nestek.

2Azazel: To neni pravda, alespon ne takto obecne. Udelat vicevlaknovou aplikaci lze i s naprosto stejnymi naklady jako jednovlaknovou, dokonce ve specialnich situacich i levneji. Naopak pak existuji ulohy, ktere lze paralelizovat velice obtizne a pak takove, ktere paralelizovat nelze vubec. Vem si situaci, kdy na jednojadre resis pocitani dvou (nebo vice) vicemene nezavislych veci, ale s tim, ze aelspon u jedne z nich musis mit garantovanou odezvu. To je naprosto klasicky pripad prave her. Chces aby hra reagovala "okamzite" na vstupy hrace, ale hra zaroven pocita napr pohyby cen, chovani NPC (ktere hrac treba zrovna ani nevidi) ... to muze pockat, ovsem ne moc dlouho. Pokud mas vice CPU/GPU/... tak to vse muze bezet zaroven.
Vubec nemluve o tom, ze hruby rozlozeni (pokud mi na tom nesejde) udela samozrejme kompilator.

BTW: Miluju programatory napr v .NET, kazdej jejich canc, byt velky par kB potrebuje desitky/stovky MB knihoven a je 100x pomalejsi nez totez napsano primo pro konretni platformu. Java neni o moc lepsi, tedy jen o tom ze funguje i jinde nez na widlich, coz muze byt jakysi pofiretni duvod. Znam ovsem i znacne mnoztvi C/C++ aplikaci, ktere funguji na mnoha ruznych platformach a na vsech nasobne rychleji a s nasobne mensimi pozadavky. Obavam se, ze dotycny si to predstavuje jako .NET pro prgani games. Jenze to by nejdriv vykon HW musel vzrust cca milionkrat aby to behalo zhruba stejne jako ted.

+1
0
-1
Je komentář přínosný?

2vwer: Obávám se, že jsi princip .NET nepochopil. Cílem této platformy nejsou rychlé výkonné aplikace, ale rychlé a snadné programování. A se snadným programováním souvisí málo chyb. Krátký přehledný managed kód je to, co umožňuje, aby programy byly spolehlivé a levné. Sice je každému jasné, že ta samá aplikace v C++ (nebo dokonce v C) bude rychlejší, ale:
1) Bude určitě obsahovat víc chyb.
2) Její vývoj bude trvat déle, tj. bude dražší a nikdo si jí nekoupí (cena je u software až na prvním místě - ostatně jako všudě).
3) Někdo jí musí umět naprogramovat. A není tajemstvím, že programovat v C++ na použitelné úrovni umí méně lidí, než kolik se jich tváří, že to umí.
Z benchmarků vyplývá, že .NET aplikace napsaná průměrným programátorem je rychlejší (!) než C++ aplikace napsaná průměrným programátorem. Ano, když C++ aplikaci napíše profesionál, výsledkem je rychlejší kód... akorát teda už nikdo neříká, kolik vývoj takovým profesionálem bude stát peněz a jak dlouho bude trvat. Nadávat na .NET je známkou nezkušenosti a nepochopení jeho cíle.

+1
0
-1
Je komentář přínosný?

Co se týče her, tak se stačí podívat na staré konzole jako byl ATARI Jaguar (tuším 6 procesorů), nebo SEGA Saturn (dva procesory). Ty pohořeli právě na tom, že vývoj her pro tak složitý hardware byl mnohem komplikovanější než u jednoprocesorové konkurence.

+1
0
-1
Je komentář přínosný?

re: ZOLLINO @ 198.178.192.1 - včera, 17. srpna 2009, 12:14
Nie som vyvojar, ale chlapcov z EPICu nemusim. Akosi tychto samozvanych prorokov neuznavam z dovodu toho ze toho nic moc nepredviedli UE3.0 oproti tomu co bolo slubovane v roku 2004 obsahuje tak polovicu. Celkovo ich predpovede su zaujimave a vzdy obhajuju ich cestu a zatracuju vsetko ostatne. Je jasne ze tie ich hry nebudu slapat na konzoliach ak budu vyuzivat silne GPGPU operacie, Fyziku a podobne veci. tz. menej zisku, ale viac prace. Ich demagogia o buducnosti je fakt na usmiatie a pripadaju mi tak tocha ako Bill v Microsofte ked bol este mlady a hlupy.

----------------------------------------------

Proč by jejich hry neměli špalat na konzolích? Právě naopak. Sám Tim několikrát zmínil, že Unreal 4 engine (tedy ten 100% napsaný ve skutečném jazyce) je cílen právě na konzole další generace a PC verze bude následovat později. Pokud to dobře chápu, jejich nový engine by neměl řešit nějaké ometení platforem, jako DirectX různých verzí, OpenGL, CUDA, atd. Oni prostě napíší obecný kod nezatížený nějakými fixními funkcemi a pak ho překompilujou pro různé platformy. Bude jim zcela jedno jestli v té konzoli ke HW od ATi, nVidie, Intelu, nebo IBM. Všechny tyhle platformy prostě dostanou obecný general purpose kod, nejprve napsaný například v C++, a budou se s tím muset poprat. Mě to přijde naopak jako méně práce, více flexibility a více zisku.
Mimochodem, také si vzpomínám na nějaký rozhovor s Timem, kde sice tvrdil že na nějaké API už kašlou, ale jejich uplnou eliminaci neočekávají. Není přece žádný problém koexistovat. Vývojáři neschopní efektivně programovat s klasickým programovacím jazykem prostě napíší hru pod nějakým API pro určitou platformu, kdežto oni prostě budou mít engine zcela nezávislý.

+1
0
-1
Je komentář přínosný?

vwer : Když o .netu nic nevíš, tak o něm laskavě nepiš .... garantuju ti, že program ve srovnatelné kvalitě udělám v C# netu 2x-3x rychleji než v C++*) a pomalejší to nebude.
 
*) C++ mě už pár let žíví, takže o tom něco málo vím

+1
0
-1
Je komentář přínosný?

Eagle_not_registered: souhlas, jenom si dovolím poznamenat, že když profesionál se bude v C# snažit, tak z toho vymáčkne stejnou rychlost jako z C++ (když se snažit nebude, tak je to typicky pomalejší tak o 10%).
 
Mimochodem, 99% programátorů používá určité knihovny a překladače, které mají na rychlost dramaticky větší vliv než použitý "jazyk" ... např. kolekce v MS implementaci STL (C++) jsou děsivě pomalé a i java je dokáže rozválcovat. Dalším příkladem může být GCC na MACu ... nedávno jsme přešli na verzi 4 a rychlost programu se zvýšila prakticky o řád! ... takže spoustu let to bylo děsivě pomalé - ale to nikdo neřešil, protože se o tom "nevědělo".

+1
0
-1
Je komentář přínosný?

Pro psaní komentářů se, prosím, přihlaste nebo registrujte.