- Honor 200 Pro - mobilportré
- 200 megapixeles zoomkamerát sem kap az S26 Ultra?
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Samsung Galaxy S22 és S22+ - a kis vagány meg a bátyja
- Okosóra és okoskiegészítő topik
- Telekom mobilszolgáltatások
- Google Pixel topik
- Android szakmai topik
- A holnap határán: itt van minden új Galaxy promóképe
- Ulefone Amor 34 Pro - a nagy vetítőgép
Új hozzászólás Aktív témák
-
rudi
nagyúr
válasz
Tyberius #282 üzenetére
Lássuk a szoftveres részt. Ez az egész VS-PS futószalagosdi valamikor a DX8 megszületésekor kezdődött. Egy shaderkód akkoriban, ha jól emlékszem 16-32 szekvenciális utasítás lehetett, se ciklus, se elágazás se semmi. Még anno, jópár évvel ezelőtt, a VGA.nfo-n nagyjából leírtam, hogy is vannak a régebbi shader modellek mi is ennek a lényege, akit érdekel, nézzen bele [link].
Mára Shader Model 2.0 (DX9 alapkövetelménye) is hatalmas előrelépést jelentett az SM1.x modellekhez képest, de a hardver számolós része nem szélesedett olyan mértékben, mint amennyit emelkedett az esetleges kód komplexitása. Az első SM2.0-s hardverek a Radeon 9500-9700-ak voltak, de nagyjából az X850 és GF6 idejére jutottunk el oda, hogy nagyjából olyan potens volt a hardver, hogy bármilyen (pontosabban inkább szokásosan megvalósításra kerülő) SM2.0 kód CPU-limitesen tudott futni rajtuk. Persze a GF6 és X850 idejében már a GPU-gyártók az SM3.0-ra és HDR-re verték magukat, amint, mint láthatjuk az Oblivion vagy TR Legend alapján, még a mai hardverek sem bírnak el, pedig ma már a fizika az, amire a GPU-gyártók verik magukat
Összegezve:
A fícsörlista mindig jópár lépéssel a hardver képességei előtt halad, ezt diktálja a PR-gépezet. Jó példa lehet erre a hátizsák és a sherpa esete:
1. adott a sherpa aki 50 kilós zsákot bír el normálban (hardver számolási képessége)
2. a sherpaközvetítő (GPU-gyártó) rácsap a szegény hordár hátára egy 80 kilós zsákot és büszkén hirdeti: ''ez az ember 80 kilót is elbír''
3. amikor a kedves hegymászó (kóder) felbéreli a 80 kilósnak reklámozott, de csak 50-et bíró sherpát, és rápakol 80 kilót, akkor az csak négykézláb bír mászni, DE viszi! Ergo az ''ez az ember 80 kilót is elbír'' állítás igaz, csak ugye a kis csillagos rész...
4. mire szegény sherpa haverunk feledződik annyira, hogy már a 80 kilóbval is tud normálisan haladni, akkor mi történik? Jön a nagy kijelentés: ''ez az ember 150 kilót is elbír''
5. megint jön a négykézlábmászás...
6. goto 4. pont
Mit lát ebből a megrendelő (felhasználó), aki X kilót akart a hegymászóval és expedíciójával felvitetni a hegyre (vagyis full fícsörben akar játszani)? Ezt látja: ''kurv@életbe! felbéreltem a legjobb csapatot, beigérték, hogy 3 nap alatt felvisznek X kilót, és erre b@sszus 6 nap kellett rá...''
Na, erre jön a DX10-es csavar: váltsuk le a sherpánkat szamárra! Teljesen másképp működik, az összes hátizsákot, cipelőcuccot át kell hozzá tervezni, de ez 500 kilót bír -
rudi
nagyúr
válasz
Tyberius #282 üzenetére
A DX10-zel nem csak a softveres (API-s) megközelítés változik gyökeresen, hanem a GPU-k hardveres felépítése is, kicsit boncoljuk ezt.
Egy klasszikus GPU (legjobb példa erre a G7x sorozat, mert az X1000-es Radeonok más kicsit a jövő felé léptek) felépítése nagyos specifikusan blokkosítva van, ez a kép jól mutatja:
Látható, hogy vannak a VS-esk (hozzájuk lehet venni még a Cull/Clip/Setup részt, ami a geometriát építi fel és kiszedi a takarásban lévő részeket stb.), majd egy elosztó, majd ismét szélesesdik az architektúra - jönnek a PS-ek - aztán megint jön egy crossbar osztónű és a ROP (raszterizáló egységek). Ehher kívültől csatlakozik még a memvezérlő, amit itt elég egyszerűen vázoltak fel, de az is egy masszív crossbar vezérlő, 256 bit esetén 4 ággal.
Mi az a corssbar? Egy olyan összeköttetés kétfajta hardveregység között, ahol az egyik oldal minden eleme össze van kötve a másik oldal minden elemével.
A G73 24 pixel shadere 6 négyes blokkba (quadba - elgyen annyi elég, hogy a quad a 2x2 pixelt jelent, és mindenféle pixelszámolás alapja) szervezve és a 16 ROP egysége között 96 szálat kell megvalósítani. 32 pixel shader (8 quad) és 20 ROP esetén már 160 szálat kellene kivitelezni, amit már eléggé bajos megvalósítani helyügyileg is. Nem csoda, hogy az R580 48 shaderét (12 quad, de még azon sem lepődnék meg, ha nem csak négyes blokkokba lehetne őket szervezni) már nem corssbarral valósították meg, hanem egy osztóművel és egy nagy közös (ez fontos, hogy közös) regisztertömbbel.
De mi is az a regiszter? Nos az egy olyan, mondhatni adathely, amit a GPU számolói ''közvetlenük'' (idézőjelben, mert itt is van címzés meg pointerezés, de ez megint csak mellékes) nagyon kis késleltetéssel érnek el, ezekben található adatokkal hajtják végre a számolási műveleteket.
No, de térjünk vissza a hardverfelépítéshez. Szóval adott egy halom, specifikus VS és PS, aminek mindnek megvannak a maguk kis cachejei (ezekbe töltik a szükséges textúrákat és adatokat) és korlátozott számú regisztereik (ezekbe töltik fel a Cacheből az éppen szükséges adatokat, amikkel a számolás zajlik). Egy ilyen felépítést (sok kis részegység, mondhatni processzorblokkok a processzoron belül) hardveresen megvalósítani, és összehuzalozni meg összeszervezni nem egyszerű feladat. Éppen ezért van az, hogy olyasmit pusmogtak pl a G70 (GeForce 7800 GT/GTX GPU-ja), hogy hardveresen 8-10 quad (vagyis 32-40 pixel shader!!!) meg van benne valósítva, de ebből átlagosan csak 20-24 életképes (!). Állítólag a G73 (GF7600-ag GPU-ja) is hardveresen 4 quados (16 PS-es).
Ebből is látszik, hogy ez a quadozósdi már eléggé nehezen kezelhető felépítés lett. Mi a megoldás? Az, amit az ATI R5xx chipjainél láttunk, vagyis annak a továbbfejleszétse. Mit is tud az R5xx architektúra? A VS rész maradt a régi csak a pufferkezelését oldották meg (ez még fontos lesz). Utána viszont a PS-ek, textúrázók és ROP-ok kezelése gyökeresen megváltozott. Nézzük csak az R520 (X1800 GPU) blokkdiagramját:
Van először is a ''diszpécseregység'', ami a munkát osztja (no alapvetően ő már egy nagy titok, és a jövőben érdekes lehet, kinek mennyire jön össze a megvalósítása). Utána jönnek a PS-ek egyelőre (ez is fontos lehet) quadokban. Amit észre kell venni, hogy ezek már nem közvetlenül tartalmazzák, a textúrázókat, hanem azok is külön blokkba kerültek, és a diszpécser kezeli őket. A textúrázók másik vége a most már közös, baromi nagy regisztertömbnél van. A pixel shaderek quadok működése most (Radeon X1000 családnál) úgy megy, hogy a diszpécser kiszól ''itt ez a shaderkód, és ez a regisztertartomány, tessék kiszámolni''.
A közeljövőben, az uinified shaderes felépítéssel úgy módosul, hogy a diszpécser nem csak a PS-ek hanem általános shaderek fölött uralkodik. Innentől kezdve az utasításai nem úgy kezdődnek, hogy ''hé, pixelquad!'' hanem úgy, hogy ''hét ti, X számú általános sahder!'' az sem biztos, hogy továbbra is négyesével szóllítja majd meg a számolókat. A megszólítás úgy folytatódik tovább, hogy ''van itt egy VS vagy GS vagy PS meló''. Ez azt eredményezi, hogy amikor a korábbi 6-8 vertex shadeből 2-3 számolja a geometriát, a többiek beállnak pixelt vagy mást számolni. Ráadásul ennek a VS/PS terhelési aránynak még érdekesebb az eloszlása mint gondolnánk. Az alábbi ábra azt mutatja, hogy egy kép kiszámolása közben mikor, milyen terhelés van a VS és PS egységeken. Látható, hogy egyszerre szinte soha nincsenek kiterhelve.
A másik dolog, hogy az ATI az X1000-ben már a sokhuzalos Crossbar vezérlőt is leváltotta Ring-busra. Erre most nem térek ki, az X1000 cikkben elmagyaráztam [link]
Summázva. A szétválogatott blokkok, regiszterek és sok-sok összekötő huzal helyett most úgy épülhet fel egy GPU, hogy a következő elemei lesznek:
- valami nagyon titkos, trükkös és okos diszpécser (ez lesz az érdekes rész)
- baaaromi nagy általános, egyforma szhader számolókból álló hadsereg (ezt könnyebb lesz megvalósítani mint a mai, azért eltérő számolókat
- az R580 256 kB-os tömbjénél is nagyobb regiszteróriás (ez tudtommal egyszerűbb megvalósítani mint számolókat vagy kisebb memóriablokkokat
- amire az Xbox 360 GPU-ja (Xenos) alapján következtetni lehet, lesz még egy On-DIE (vagyis a GPU-val egy lapkára pakolt) memória, ami veszettül gyors lesz és akár 8-16 MB is lehet.
- egy ring-bushoz hasonló memóriakezelés
- kell még egy ügyes buszrendszer, ami összeköti a számolókat és egyéb egységeket.
A nagy kérdés az lesz, hogy egy ilyen architektúra felületre/fogyasztásra/tranzisztorszámra/órajelre vetítve milyen hatékonyságot mutat majd a mai cuccokkal összevetve. Valószínű, hogy jóval hatékonyabb lesz.
mindjárt folytatom a programozós résszel -
cousin333
addikt
válasz
Tyberius #282 üzenetére
Addig is, amíg Rudi kielégítő válasza megérkezik, egy két gondolatot hozzáfűznék:
Először is, mit jelent az, hogy aránytalan. A legújabb, VGA éhes játékok érkezéséig (F.E.A.R, Oblivion, Tomb Raider) erősen procilimites volt a dolog a csúcskártyák esetében (SLI-ről, Crossfire-ről nem is beszélve). Másrészt ha belegondolsz, rengeteg játékhoz bőven elegendő egy 3000+-os A64, nem nagyon veszed észre a különbséget egy gyorsabb procival.
A GPU kétségkívül átvállal 1-2 dolgot, például a fizikát. Hisz arról van szó, hogy pl. a régebbi VGA számolná a fizikát, a mellé kötött új pedig a grafikát. Esetleg külön bővítőkártya használata lehet a megoldás (Ageia), bár szerintem elkéstek vele, mert lehet, hogy jobb és gyorsabb, de nem olyan mértékben, mint amilyen problémát okoz az új alkatrész bevezetése (ár, kompatibilitás, meghajtóprogramok).
Namármost a fentiek kétségkívül több ''teret'' engednek a CPU-nak, de ez nem jelenti azt, hogy nem lehet leterhelni. Eleve nem egyfajta játékstílus létezik. Egy FPS-ben sokat számít a VGA. De egy stratégiai játéknál, legyen az akár Age of Empires, Civilisation, Heroes vagy Simcity nagyon sok múlik a processzoron. De még ha csak az FSP-eket nézed is, ott van mindjárt az AI. Nem is kell messze menni - elegendő szemügyre venni a 3DMark2006 procitesztjét, ami gyakorlatilag AI számolás (remélem, nem tévedek...) - hogy lássuk, ezzel az egy részfunkcióval is le lehet terhelni egy mai csúcsprocesszort. Stratégiáknál meg egyértelmű a dolog: több, intelligensebb egység, reálisabb szimuláció -> növekvő játékélmény (persze a fentiek önmagukban nem elegendőek).
Összességében elmondható, hogy általában nem azért tudnak a mai programok annyit, amennyit, mert bénák a programozók, hanem mert a hardverek jelenleg ennyire képesek (persze mindig vannak jobbak, akik azonos konfigból többet ki tudnak hozni).
Írtam már egyszerű társasjáték AI-t ami skálázható volt. Úgy érzed, a következő lépés kiszámítása túl gyorsan megy a gépnek (pl. 0,2 mp)? Semmi gond, egyetlen konstans értéket kell átírni ahhoz, hogy ugyanez mondjuk 3 percig tartson ugyanazon a gépen. És akkor már lassúnak fogod találni, és ha egy komoly, jó játékról lenne szó, rohannál a boltba új prociért. Viszont amellett, hogy lassabb, sokkal több lépést gondolkodik előre, ezáltal sokkal versenyképesebb ellenfél, sokkal jobban közelíti a valóságot, az emberi ellenfeleket.
Mindebből azt akarom kihozni, hogy ha a GPU át is veszi a terhek egy részét, még mindig marad elegendő feladat a CPU számára is. Csak több tere lesz kibontakozni,és ezzel új lehetőségek nyílnak meg. A fizika, a grafika, az AI (...) előtt egyaránt, mert nő a rájuk fordítható számolási teljesítmény.
Annál is inkább, mert - mint írtad is - ''the show must go on'', a fejlődés nem állhat meg, ez a processzorgyártók érdeke is (és ha figyelembe veszük, hogy volt szó arról, hogy a kisebbik processzorgyártó, az AMD esetleg megveszi az ATI-t, akkor az arányokat is láthatjuk). És ha kijön egy játék, ami a felszabaduló pluszt is kihasználva, leterheli a legújabb csúcsprocikat is, és a többinél jobb játékélményt nyújt (pl. x ezer harci egység egymástól független, egyidejű kezelése), akkor a többi játék és a felhaszálók számára is az válik mércévé (mint anno a far Cry, ami után már nem ütött annyira a HL2 és a Doom3), és aki nem akar lemaradni, az ebbe az irányba kell, hogy továbbmenjen.
Szóval úgy gondolom, nem kell temetni a CPU-t, mit a játékgép egyik legfontosabb elemét.
[Szerkesztve]
Új hozzászólás Aktív témák
- Vezetékes FEJhallgatók
- Kertészet, mezőgazdaság topik
- Apple asztali gépek
- Honor 200 Pro - mobilportré
- 200 megapixeles zoomkamerát sem kap az S26 Ultra?
- Milyen légkondit a lakásba?
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Kuponkunyeráló
- Szünetmentes tápegységek (UPS)
- Diablo IV
- További aktív témák...
- Samsung Galaxy A12 64GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA!Épített KomPhone i5 10600KF 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- Telefon felváráslás!! Xiaomi Redmi Note 11, Xiaomi Redmi Note 11 Pro, Xiaomi 11 Lite
- Eredeti Lenovo 230W töltők - 4X20Z83995
- Oppo Reno7 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest