-
Fototrend
A legtöbb kérdésre (igen, talán arra is amit éppen feltenni készülsz) már jó eséllyel megtalálható a válasz valahol a topikban. Mielőtt írnál, lapozz vagy tekerj kicsit visszább, és/vagy használd bátran a keresőt a kérdésed kulcsszavaival!
Új hozzászólás Aktív témák
-
Abu85
HÁZIGAZDA
válasz Petykemano #55855 üzenetére
A GCN-ben nem volt klasszikus értelemben dísz-ALU, ez akkor van, ha nem tudsz rá feladatot rakni. Kétféle limitbe ütközhet egy GPU, kihasználtság és függőség. Az architektúra dönti el, hogy melyik limit él.
Kihasználtságlimit az, amikor nem tudsz elég wave-et futtatni egy multiprocesszoron ahhoz, hogy átlapold a memóriaelérést. Ez a SIMT dizájnok sajátossága, és mindegyik GPU lehet kihasználtságlimites, viszont ezt nagyrészt az határozza meg, hogy van-e elég regiszter az ALU-k mellett. A probléma a mai GPU-kkal az, hogy az erőforrás-allokációjuk rém egyszerű. Egyszerűen statikus az egész, vagyis ha betöltesz egy shader programot, akkor előre lefoglal minden erőforrást, amire elméletben szüksége lehet. Ha nem nyúl hozzájuk, akkor is elveszi a helyet a regiszterekben és compute shader esetén az LDS-ben. Ennél sokkal jobb módszer lenne az, amit a CPU-k alkalmaznak, azok ugyanis dinamikus erőforrás-allokációval dolgoznak, vagyis csak olyan dolog kerül a regiszterbe, amivel dolgozni is fognak. De ez komoly ütemezőt is igényel, így egyelőre a GPU-knál ezzel nem foglalkoznak.
A fentiek mellett függőséglimit egy speciális korlát, ami a SIMD architektúrák sajátja. Klasszikus értelemben az AMD Terascale volt ilyen dizájn, azóta az alapfeldolgozást tekintve már mindenki SIMT-re váltott, tehát a mai GPU-architektúrák egységesen kihasználtságlimitesek. Technikailag az Intel dizájnja is, de annak egy sajátossága, hogy a regiszterek oldaláról ez a limit nem állhat be, viszont az LDS tekintetében ugyanúgy korlátozva lehet a feldolgozás. Ezért van az, hogy az Intel dizájnok az egzotikus, például geometry shader kódokban rohadt gyorsak, de a gyakorlatban ez egyáltalán nem mutatkozik meg, mert a fejlesztők compute shaderrel váltják ki a geometry shadert, amiben viszont eléggé vérzik az Intel hardvere.
A SIMT architektúrák esetében van egy speciális irány, amikor maga a dizájn SIMT, de egy ütemezőre több SIMD van felfűzve. Ilyenkor az architektúra egyszerre kihasználtság- és függőséglimites. Ide tartoznak az Intel dizájnjai, illetve az Ampere. Ezeknél látható, hogy papíron kurva nagy TFLOPS-ot tudnak, de ennek a gyakorlati felhasználás 95%-ában úgy kb. a 60%-a kihasználható.
Ezt azért csinálják a gyártók, mert maga az ALU olcsó a dedikált ütemezés és a dedikált regiszter nélkül. Illetve minden architektúrának vannak belső limitjei a működés tekintetében. Tehát dupla ALU-t nem olyan egyszerű ám beépíteni, mert lehet, hogy annyi multiprocesszort már nem tud kiszolgálni a tervezett memóriamodell. Azért ne felejtsük el, hogy a mai GPU-k memóriamodellje eléggé koros. Az AMD-é 2012-es, az NV-é 2010-es, az Intelé pedig 2009-es. Azóta a cégek ehhez nem nyúltak, csak viszik tovább az új dizájnokba. És egy ideje már a limiten vannak, azért próbálják ilyen-olyan egzotikus trükkökkel blokkokba rendezni a multiprocesszort, stb. És ha ez is kifújt, akkor jön elő az extra ALU tömb, de saját ütemező nélkül, mert ez a memóriamodell limitjeinek nem jelent extra terhelést, egyedül az a probléma vele, hogy a fejlesztőnek muszáj úgy programoznia, hogy a futtatott wave-ek között ne legyen függőség, mert ha az van, akkor az ütemező nélküli ALU tömb csak dísz. Nem tudja rárakni a hardver a következő wave-et, mert az éppen futtatott wave még számolja hozzá az szükséges adatokat. De mire ezt kiszámolja, addigra az elsődleges feldolgozótömb is felszabadul, tehát mehet arra a wave, ami a következő wave-hez számolja az adatokat, így azt sem lehet a másodlagos ALU-kra rárakni, és így tovább. Ezen úgy lehet segíteni, ha egy multiprocesszor két shadert is futtat, viszont ahhoz le kell particionálni a regiszterterületet, és abból nincs sok már egy shadernek sem, vagyis végeredményben, ha abból elveszünk, akkor kihasználtságlimitbe toljuk a multiprocesszort a túl nagy regiszternyomással. Ennek az eredménye ugyanúgy az, hogy az ALU nem dolgozik, csak nem a függőség miatt, hanem azért, mert nincs elég konkurens wave, így várni kell a memóriaelérésre.[ Szerkesztve ]
Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.
-
Jack@l
veterán
válasz Petykemano #55855 üzenetére
Féloff: ha esetleg neurális hálóval akarna nv sokkal jobb felskálázást csinálni (amit nem kell előre betanítani), lazán megtehetné. Van egy csomó tensor mag, ami játék közben nem csinál semmit.
A hozzászólási jogosultságodat 2 hónap időtartamra korlátoztuk (1 hsz / 10 nap) a következő ok miatt: Az ÁSZF III 10/8. pontjának megsértése - trollkodás - miatt. Többször és többen is kértek már, hogy hozzászólás írásakor használd a linkelés funkciót, mert ennek elmaradása sokak számára zavaró.
Új hozzászólás Aktív témák
A topikban az OFF és minden egyéb, nem a témához kapcsolódó hozzászólás gyártása TILOS!
MIELŐTT LINKELNÉL VAGY KÉRDEZNÉL, MINDIG OLVASS KICSIT VISSZA!!
A topik témája:
Az AMD éppen érkező, vagy jövőbeni új grafikus processzorainak kivesézése, lehetőleg minél inkább szakmai keretek között maradva. Architektúra, esélylatolgatás, érdekességek, spekulációk, stb.
- Nvidia GPU-k jövője - amit tudni vélünk
- Google Pixel topik
- iPhone topik
- Szeged és környéke adok-veszek-beszélgetek
- Gaming notebook topik
- Porszívók - akkus és klasszikus vezetékes
- Ukrajnai háború
- Debrecen és környéke adok-veszek-beszélgetek
- Politika
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- További aktív témák...
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest