Nextgen Intel GPU
Moderátoři: morke, Walker1134
- CeBrk
- Nováček

-
- Registrován: 02. zář 2006
- Kontaktovat uživatele:
Nextgen Intel GPU
Jak asi již mnozí postřehli, Intel má v plánu vstoupit na trh grafických čipů ve velkém stylu. Pravda, tato společnost je v podstatě již nyní lídr v počtu prodaných grafických čipů, ale to je spíš malý styl ve velkém množství, než onen velký styl. Bližší informace o záměrech Intelu lze vyčíst z článku na Beyond3D ( http://www.beyond3d.com/content/articles/31/1 ), tedy pokud narozdíl ode mne ovládáte angličtinu, a nějaké české informace - vycházející z tohoto zdroje - jsou na konkurenčím serveru Světhardware ( http://www.svethardware.cz/art_doc-D633 ... E1FEE.html ).
Domnívám se, že jde o událost značného významu, protože vstup takto velkého molocha do prudce se rozvíjející oblasti grafických čipů se neděje každý den (ani rok). Zvlášť když se poslední dobou všude skloňují slova jako: "GPGPU, Terascale, multi-CPU" a jiná, která k sobě mají až podezřele blízko.
Nejsem nic víc než prostý laik s tristní znalostí této problematiky, takže fundovaný úvod k tomuto tématu ode mne nikdo čekat nemůže. Snad se toho ujme někdo zainteresovanější. Nicméně pro začátek bych měl alespoň pár otázek:
Nextgen GPU od intelu má disponovat 512 bitovými vektorovými jednotkami, takže v podstatě je schopen pracovat s 16-ti složkami najednou. Safra, bude to vůbec k využití? Jestli to dobře chápu, mohlo by se to hodit v případě, že by bylo třeba provést s čtyřmi pixely stejnou operaci. Neví někdo jestli je to při hrách častý požadavek?
Spekuluje se o tom, že ono GPU bude v podstatě množství jednoduchých in-order CPU (plus nějaké tranzistory na texturing, antialiasing, atd...). Dále se předpokládá, že by mělo jít o x86 architekturu. A v tom je ta potíž. Nebude kvůli tomu třeba psát programy jinak než pro dnešní grafárny od ATi a nVidie? To se mi zdá jako dost nekompatibilní řešení, takže předpokládám, že jsem si to špatně vyložil. Nicméně jestli o tom někdo něco ví, sem s tím...
Ono GPU má mít k dispozici relativně velkou cache o velikosti 4MB. Něčím takovým dnešní GPU nedisponují a pokud se nepletu, tak sazí na malé cache (registry?) pro jednotlivé shadery (bloky shaderů). Nebude takhle obrovská sdílená cache zahlcena požadavky všech shaderů (mini CPU)?
Na začátek by to snad stačilo. Doufám že na mé všetečné otázky někdo odpoví, nebo alespoň jiným způsobem zareaguje. Nerad zakládám témata, jenž následně zejí prázdnotou a můj úvodní příspěvek tak nemůže skrýt svou primitivnost v závalu další odpovědí. GPU které má mít teoreticky čtyřnásobný shaderový výkon dnešní GeForce 8800GTX a dvojnásobnou propustnost pamětí, si nějaké komentáře asi zaslouží.
Domnívám se, že jde o událost značného významu, protože vstup takto velkého molocha do prudce se rozvíjející oblasti grafických čipů se neděje každý den (ani rok). Zvlášť když se poslední dobou všude skloňují slova jako: "GPGPU, Terascale, multi-CPU" a jiná, která k sobě mají až podezřele blízko.
Nejsem nic víc než prostý laik s tristní znalostí této problematiky, takže fundovaný úvod k tomuto tématu ode mne nikdo čekat nemůže. Snad se toho ujme někdo zainteresovanější. Nicméně pro začátek bych měl alespoň pár otázek:
Nextgen GPU od intelu má disponovat 512 bitovými vektorovými jednotkami, takže v podstatě je schopen pracovat s 16-ti složkami najednou. Safra, bude to vůbec k využití? Jestli to dobře chápu, mohlo by se to hodit v případě, že by bylo třeba provést s čtyřmi pixely stejnou operaci. Neví někdo jestli je to při hrách častý požadavek?
Spekuluje se o tom, že ono GPU bude v podstatě množství jednoduchých in-order CPU (plus nějaké tranzistory na texturing, antialiasing, atd...). Dále se předpokládá, že by mělo jít o x86 architekturu. A v tom je ta potíž. Nebude kvůli tomu třeba psát programy jinak než pro dnešní grafárny od ATi a nVidie? To se mi zdá jako dost nekompatibilní řešení, takže předpokládám, že jsem si to špatně vyložil. Nicméně jestli o tom někdo něco ví, sem s tím...
Ono GPU má mít k dispozici relativně velkou cache o velikosti 4MB. Něčím takovým dnešní GPU nedisponují a pokud se nepletu, tak sazí na malé cache (registry?) pro jednotlivé shadery (bloky shaderů). Nebude takhle obrovská sdílená cache zahlcena požadavky všech shaderů (mini CPU)?
Na začátek by to snad stačilo. Doufám že na mé všetečné otázky někdo odpoví, nebo alespoň jiným způsobem zareaguje. Nerad zakládám témata, jenž následně zejí prázdnotou a můj úvodní příspěvek tak nemůže skrýt svou primitivnost v závalu další odpovědí. GPU které má mít teoreticky čtyřnásobný shaderový výkon dnešní GeForce 8800GTX a dvojnásobnou propustnost pamětí, si nějaké komentáře asi zaslouží.
- no-X
- Středně pokročilý

- Registrován: 24. úno 2004
- Bydliště: Č.Budějovice
Re: Nextgen Intel GPU
Nečetl jsem o tom ani ň, ale stejné operace na (třech) různých pixelech provádí už RV53x/560/570/580.CeBrk píše:Jestli to dobře chápu, mohlo by se to hodit v případě, že by bylo třeba provést s čtyřmi pixely stejnou operaci. Neví někdo jestli je to při hrách častý požadavek?
Nejlepší moderátor ve výslužbě
- CeBrk
- Nováček

-
- Registrován: 02. zář 2006
- Kontaktovat uživatele:
Re: Nextgen Intel GPU
To jenom dokazuje, že zakládat takhle sofistikované téma ode mne byla opravdu drzost :-)no-X píše:Nečetl jsem o tom ani ň, ale stejné operace na (třech) různých pixelech provádí už RV53x/560/570/580.CeBrk píše:Jestli to dobře chápu, mohlo by se to hodit v případě, že by bylo třeba provést s čtyřmi pixely stejnou operaci. Neví někdo jestli je to při hrách častý požadavek?
Mám neblahý pocit, že jsem se do toho trochu zamotal a ještě se v úvodním příspěvku blbě vyjádřil. Tebou zmiňovaná GPU jsou schopna zpracovávat svými shadery tři instrukce (2x sčítání a násobení) naráz na 4D vektorech. Jedno intelácké mini-CPU (asi obdoba shaderu) má zvládat 4 thready (obdoba 4 instrukcí v klasických shaderech) s 16-ti složkovými vektory. Hmm, safra, safra. 10 mini-CPU x 4 thready x 16 složek x 4 GHz = 2,56 TFLOPs. To je dvojnásobek Intelem udávaného výkonu. U R580 tenhle výpočet odpovídá. 48 pixelshaderů x 3 instrukce x 4 složky x 650 MHz = 0,374 TFLOPs.
V každém případě si nejsem zcela jist, co jsi myslel těmi operacemi na třech různých pixelech. Opravdu nevím jestli jsou jednotlivé výpočetní jednotky v shaderu R580 schopny pracovat na třech různých pixelech zároveň, nebo jsi to myslel jinak. V každém případě se zdá, že Intel bude mít ve svém GPU něco 4 krát širšího než ATi, ať už to bude cokoli :-)
Osobně se domnívám, že tyto super dlouhé vektory nebudou příliš efektivní. Ono to skalární počítání a lá SP v G80 bude mít asi lecos do sebe. O algoritmech ve hrách nevím vůbec nic, ale selským rozumem si to představuji tak, že pokud na nějaký pixel posvítí zombie baterkou (jde o baterku s úzkým kuželem světla) jejíž sklo je potřísněno krví, bude třeba onomu pixelu trochu přidat v R kanále. Na to se vyplácá celý Vec16 v Intel GPU, jehož efektivita tak bude 6%.
A tímto se přihlašuji do soutěže o nejnechápavější komentář PCTuningu.
- no-X
- Středně pokročilý

- Registrován: 24. úno 2004
- Bydliště: Č.Budějovice
Ufff... jinak. Jedna pixel shader jednotka R520 umí na jednom pixelu provést určitou operaci. Neřešme teď schopnosti této výpočetní jednotky (ADD/MUL...). R580 má 3x více PS, než R520, ale jejich uspořádání je takové, že vždy tři provádějí jednu stejnou operaci na třech různých pixelech (nemůže každý provádět jinou operaci na jiném pixelu - řídící logika je kvantitativně i kvalitativně stejná, jako u R520)
R520 se dá znázornit takhle:
XXXX XXXX XXXX XXXX
(čtyři quady po čtyřech PS)
R580 ale není toto:
XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
- jak se mnozí domnívají, ale spíš tohle:
XXXX XXXX XXXX XXXX
XXXX XXXX XXXX XXXX
XXXX XXXX XXXX XXXX
tedy vždy tři jednotky provádějí tutéž operaci
Byl bych nerad, kdyby tu někdo, kdo téhle problematice rozumí ještě míň, než já, začal vykládat, že je to neefektivní - na to bych mu totiž musel odpovědět, že nemá ponětí o tom, co je to efektivita, protože architektura R5xx byla navržena právě s ohledem na to, aby se výpočetní jednotky daly "přidávat" takhle v celých násobcích bez toho, aby se musela měnit i řídící logika - jelikož řídící logika (4 dispatch procesory) zabírá z R520 plnou třetinu plochy jádra, by bylo neefektivní snažit se dosáhnout naprosté samostatnosti každé výpočetní jednotky (na to by bylo třeba 12 dispatch procesorů a takový čip by byl >2x větší, než R520), kdežto využití možnosti téhle architektury v přidávání dalších jednotek znamená jen 1,2x vyšší plochu jádra, přičemž výkon v mnohých hrách jde nahoru výrazně více, než o 20%.
R520 se dá znázornit takhle:
XXXX XXXX XXXX XXXX
(čtyři quady po čtyřech PS)
R580 ale není toto:
XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
- jak se mnozí domnívají, ale spíš tohle:
XXXX XXXX XXXX XXXX
XXXX XXXX XXXX XXXX
XXXX XXXX XXXX XXXX
tedy vždy tři jednotky provádějí tutéž operaci
Byl bych nerad, kdyby tu někdo, kdo téhle problematice rozumí ještě míň, než já, začal vykládat, že je to neefektivní - na to bych mu totiž musel odpovědět, že nemá ponětí o tom, co je to efektivita, protože architektura R5xx byla navržena právě s ohledem na to, aby se výpočetní jednotky daly "přidávat" takhle v celých násobcích bez toho, aby se musela měnit i řídící logika - jelikož řídící logika (4 dispatch procesory) zabírá z R520 plnou třetinu plochy jádra, by bylo neefektivní snažit se dosáhnout naprosté samostatnosti každé výpočetní jednotky (na to by bylo třeba 12 dispatch procesorů a takový čip by byl >2x větší, než R520), kdežto využití možnosti téhle architektury v přidávání dalších jednotek znamená jen 1,2x vyšší plochu jádra, přičemž výkon v mnohých hrách jde nahoru výrazně více, než o 20%.
Nejlepší moderátor ve výslužbě
- CeBrk
- Nováček

-
- Registrován: 02. zář 2006
- Kontaktovat uživatele:
Jestli jsem to dobře pochopil, tak architektura R580 je spíš než rozložení 48 Vec4, podobná 16 Vec12 (pokud pominu režimy typu 3+1, jenž to trochu komplikují).
Naneštěstí je většina her asi dělána s ohledem na vysoký texturovací výkon (kvůli starším kartám), takže nevím jestli ne až tak vysoký nárůst výkonu mezi R580 a R520 je způsoben limitací texturovacích jednotek, nebo faktem, že provádět na třech různých pixelech stejné výpočty není ve hrách moc potřeba. Ano, ano, uznávám tvou "výhrůžku" o efektivitě a chápu že nárůst výkonu o více než 20%, při nárůstu počtu transistorů kolem 20%, je efektivní rozhodnutí. Nicméně mé dilema o využitelnosti Vec16 to neřeší.
Snad už tento příspěvěk bude alespoň z části technicky správně. V předchozích jsem byl asi trochu mimo. Trochu mne mrzí, že sem vyjma nás dvou nikdo nepřispívá. Zatím to tu vypadá jak debata trpělivého profesora s natvrdlým žákem :-)
Naneštěstí je většina her asi dělána s ohledem na vysoký texturovací výkon (kvůli starším kartám), takže nevím jestli ne až tak vysoký nárůst výkonu mezi R580 a R520 je způsoben limitací texturovacích jednotek, nebo faktem, že provádět na třech různých pixelech stejné výpočty není ve hrách moc potřeba. Ano, ano, uznávám tvou "výhrůžku" o efektivitě a chápu že nárůst výkonu o více než 20%, při nárůstu počtu transistorů kolem 20%, je efektivní rozhodnutí. Nicméně mé dilema o využitelnosti Vec16 to neřeší.
Snad už tento příspěvěk bude alespoň z části technicky správně. V předchozích jsem byl asi trochu mimo. Trochu mne mrzí, že sem vyjma nás dvou nikdo nepřispívá. Zatím to tu vypadá jak debata trpělivého profesora s natvrdlým žákem :-)
- no-X
- Středně pokročilý

- Registrován: 24. úno 2004
- Bydliště: Č.Budějovice
vec12? Proč?
pracují na různých pixelech - ne na jednom. Tzn. nerozumím, proč by se to mělo sčítat.
Nárůst výkonu mezi R520 a R580 - no, to se nedá tak snadno říct. Mnoho lidí tvrdí, že R580 má málo texturovacích jednotek. Jenže to, že 16 texturovacích jednotek je málo, tvrdí jen kvůli tomu, že je to číslo, které vypadá jako nízké a je na očích. GF7950GX2 měla 48 texturovacích jednotek a k čemu jí to bylo?
V první řadě si musíme uvědomit, že rozdíl mezi R520 a R580 byl především v počtu pixel shader ALUs. Téměř v ničem jiném. Tzn. z nějakých deseti parametrů určujících výkon byl změněn jeden. Je téměř dětinské myslet si, že ztrojnásobením jednoho z cca deseti parametrů dosáhnu trojnásobného výkonu.
Tenhle krok spíš kompenzoval výkon ve hrách, kterým nestačil výkon 16ti pixel shaderů R520. Mnoho her běhalo již na R520 velice dobře a s těmi nebyl důvdo cokoli dělat - problém byl s těmi několika hrami, které vyžadovaly hrubý výkon pixel shaderů (např. AOE3) a tam R580 oproti R520 excelovala.
Fillrate R580 někde toršku schází, ale zdaleka ne tak, jak si mnoho lidí myslí. Díky fetch4 navíc má R580 4x nižší požadavky na fillrate pro rendering jednokanálových textur oproti R520.
Prostě a jednoduše - je tu fillrate, je tu bandwidth, je tu řídící logika, je tu internal bandwidth, jsou tu takty, vertex shadery... to vše se buď nezměnilo, nebo změnilo jen minimálně a v různých hrách. v různých scénách, v různých framech je limitujícím prvkem vždy některá z těchto vlastností. Nedá se říct, že by jedna výrazně převažovala ty ostatní...
Nárůst výkonu mezi R520 a R580 - no, to se nedá tak snadno říct. Mnoho lidí tvrdí, že R580 má málo texturovacích jednotek. Jenže to, že 16 texturovacích jednotek je málo, tvrdí jen kvůli tomu, že je to číslo, které vypadá jako nízké a je na očích. GF7950GX2 měla 48 texturovacích jednotek a k čemu jí to bylo?
V první řadě si musíme uvědomit, že rozdíl mezi R520 a R580 byl především v počtu pixel shader ALUs. Téměř v ničem jiném. Tzn. z nějakých deseti parametrů určujících výkon byl změněn jeden. Je téměř dětinské myslet si, že ztrojnásobením jednoho z cca deseti parametrů dosáhnu trojnásobného výkonu.
Tenhle krok spíš kompenzoval výkon ve hrách, kterým nestačil výkon 16ti pixel shaderů R520. Mnoho her běhalo již na R520 velice dobře a s těmi nebyl důvdo cokoli dělat - problém byl s těmi několika hrami, které vyžadovaly hrubý výkon pixel shaderů (např. AOE3) a tam R580 oproti R520 excelovala.
Fillrate R580 někde toršku schází, ale zdaleka ne tak, jak si mnoho lidí myslí. Díky fetch4 navíc má R580 4x nižší požadavky na fillrate pro rendering jednokanálových textur oproti R520.
Prostě a jednoduše - je tu fillrate, je tu bandwidth, je tu řídící logika, je tu internal bandwidth, jsou tu takty, vertex shadery... to vše se buď nezměnilo, nebo změnilo jen minimálně a v různých hrách. v různých scénách, v různých framech je limitujícím prvkem vždy některá z těchto vlastností. Nedá se říct, že by jedna výrazně převažovala ty ostatní...
Nejlepší moderátor ve výslužbě
- CeBrk
- Nováček

-
- Registrován: 02. zář 2006
- Kontaktovat uživatele:
A proč by se to sčítat nemělo? :-) Je to v podstatě jedna operace nad 12-ti různými čísly. To že jsou rozděleny do tří skupin je jedno. Pokud by se do vec12 jednotky načetly 3 pixely, výsledek by byl stejný, jako když tři vec4 jednotky upraví stejným způsobem 3 pixely. K čemu potom bude ta Vec16 jednotka v Intel GPU? Neumím si představit, že by ho bezezbytku využili na jeden pixel. Počítám že do ní narvou 4 pixely a ta se všemi jejich složkami provede stejnou operaci.
Chápu že teoretické ztrojnásobení výkonu v jedné oblasti nemůže přinést adekvátní navýšení výkonu celkově. Jde o rozbití do té doby "vyváženého pořádku" zatížení jednotlivých částí GPU. A právě to všechno dohromady sabotuje mou snahu nalézt odpověď na otázku: jak moc jsou (budou) ve hrách užitečné Intelem plánované super-široké vec16 jednotky? Hmm, asi to moc řeším. Pokud to tam Intel hodlá implementovat, asi to bude užitečné.
Chápu že teoretické ztrojnásobení výkonu v jedné oblasti nemůže přinést adekvátní navýšení výkonu celkově. Jde o rozbití do té doby "vyváženého pořádku" zatížení jednotlivých částí GPU. A právě to všechno dohromady sabotuje mou snahu nalézt odpověď na otázku: jak moc jsou (budou) ve hrách užitečné Intelem plánované super-široké vec16 jednotky? Hmm, asi to moc řeším. Pokud to tam Intel hodlá implementovat, asi to bude užitečné.
- no-X
- Středně pokročilý

- Registrován: 24. úno 2004
- Bydliště: Č.Budějovice
Většinou se v souvislosti s GPU za výpočetní jednotku považuje "to", co už není dále dělitelné. Protože jinak bychom z popisu výpočetních jednotek nezjistili prakticky nic o jejich konfiguraci. Proto se např. v souvislosti s R300-R5xx mluví o vec3+scalar a ne o vec4 (i když je to v podstatě správně). Můžeme sice trojici ALUs R580 považovat za vec12, ale k čemu nám takové označení je, když z něj nejde prakticky nic vyčíst?
Nejlepší moderátor ve výslužbě