Miért lett a GPU a mesterséges intelligencia egyik legfontosabb hardvereleme?
A mesterséges intelligencia fejlődésével a számítógépek hardveres felépítése is új szereposztást kapott. Miközben a processzor továbbra is nélkülözhetetlen az operációs rendszer, az alkalmazások és az általános számítási feladatok működtetéséhez, az AI-modellek tanítása és futtatása egyre inkább olyan műveletekre épül, amelyekből egyszerre hatalmas mennyiséget kell elvégezni.
Ebben erős a grafikus processzor, vagyis a GPU. Az eredetileg grafikai feladatokra kifejlesztett architektúra nagyfokú párhuzamossága jól illeszkedik a neurális hálózatok számítási igényeihez, ezért a GPU mára a játékok és a 3D grafika mellett az AI-infrastruktúra egyik meghatározó hardverelemévé vált.
CPU és GPU: eltérő feladatokra optimalizált processzorok
A CPU és a GPU közötti különbséget nem egyszerűen az határozza meg, hogy melyik „gyorsabb”. A két processzortípus eltérő munkavégzésre készült.
A CPU viszonylag kevés, de összetett végrehajtó maggal dolgozik. Ezek gyorsan képesek egymást követő utasításokat végrehajtani, összetett vezérlési feladatokat kezelni, elágazásokat követni és különböző programfolyamatok között váltani.
A GPU ezzel szemben arra épül, hogy nagyon sok hasonló számítást párhuzamosan hajtson végre. Az NVIDIA CUDA dokumentációja szerint a GPU-k több ezer végrehajtási szál párhuzamos kezelésére készülnek, míg a CPU-k tervezésénél nagyobb hangsúlyt kap az egyes szálak gyors végrehajtása és az összetett vezérlés.
Ez különösen fontos akkor, amikor ugyanazt a matematikai műveletet nagyszámú adatelemen kell elvégezni.
Tipikus GPU-barát feladatok például:
- mátrix- és vektorműveletek,
- képfeldolgozás,
- 3D grafikai számítások,
- fizikai szimulációk,
- neurális hálózatok tanítása,
AI-modellek következtetési, vagyis inference feladatai.
A mesterséges intelligenciában éppen ezekből a párhuzamosítható matematikai műveletekből van rendkívül sok.
Mi történik egy neurális hálózatban?
Egy modern neurális hálózat működésének jelentős része numerikus számításokra vezethető vissza. A modell rétegeiben adatokat kell súlyokkal kombinálni, összegezni, transzformálni, majd az eredményt továbbadni a következő rétegnek.
A háttérben ennek jelentős része mátrixszorzásokból és egyéb lineáris algebrai műveletekből áll.
Egyetlen ilyen művelet önmagában nem feltétlenül különleges. Egy nagy modellben azonban milliárdnyi paraméterrel és hatalmas adatmennyiséggel kell dolgozni, ezért ugyanazokból a számításokból rendkívül sokat kell rövid idő alatt végrehajtani.
Itt válik előnnyé a GPU párhuzamos felépítése.
Ahelyett, hogy a rendszer egymás után dolgozná fel az összes szükséges műveletet, sok számítást egyszerre lehet elindítani. Minél jobban párhuzamosítható egy algoritmus, annál hatékonyabban használhatja ki ezt az architektúrát.
A GPU ereje nem csak a számolóegységek számán múlik
AI-feladatoknál könnyű kizárólag a nyers számítási teljesítményre koncentrálni, pedig az adatok mozgatása legalább ilyen fontos.
A számolóegységeknek folyamatosan hozzá kell férniük:
- a modell paramétereihez,
- az aktuálisan feldolgozott adatokhoz,
- a köztes eredményekhez,
- az aktivációkhoz,
- tanításkor pedig további optimalizációs adatokhoz is.
Ha ezek az adatok nem jutnak el kellő sebességgel a számolóegységekhez, akkor a rendelkezésre álló számítási kapacitás egy része kihasználatlan maradhat. Az NVIDIA CUDA dokumentációja ezért a memóriahasználatot és a memória-átviteli sebességet is a GPU-s teljesítmény fontos tényezői között kezeli.
Miért lett ennyire fontos a VRAM?
A GPU saját memóriája, a VRAM különösen fontos tényezővé vált az AI terjedésével.
Egy modell futtatásakor annak paramétereit és a számításokhoz szükséges adatokat valahol tárolni kell. Ha ezek nagy része elfér közvetlenül a GPU memóriájában, a számolóegységek gyorsan hozzáférhetnek.
Ha viszont az adatok rendszeresen a rendszermemória és a videomemória között mozognak, az adatátvitel szűk keresztmetszetté válhat.
Ezért AI-felhasználásnál a videokártya kiválasztásakor nemcsak a GPU számítási teljesítménye számít. A különböző GPU-k között a VRAM kapacitása, a memória-sávszélesség, az alkalmazott architektúra és a támogatott számítási formátumok szempontjából is jelentős eltérések lehetnek.
Nagyobb nyelvi modellek, képgeneráló rendszerek vagy nagy felbontású képekkel dolgozó neurális hálózatok esetén ezért könnyen előfordulhat, hogy nem a számítási teljesítmény, hanem a rendelkezésre álló videomemória jelenti az első korlátot.
Nem minden számítást kell ugyanolyan pontossággal elvégezni
A hagyományos számítástechnikában gyakran találkozunk 32 vagy 64 bites lebegőpontos számításokkal. A gépi tanulás bizonyos feladatai azonban alacsonyabb numerikus pontosság mellett is megfelelően működhetnek.
AI-rendszereknél ezért többféle adatformátum használható, például:
- FP32,
- FP16,
- BF16,
- INT8,
illetve újabb hardvereken további csökkentett pontosságú formátumok.
Az alacsonyabb pontosság előnye, hogy egy-egy adat kevesebb memóriát igényelhet, és megfelelő hardveren több művelet végezhető el adott idő alatt.
Ez az egyik oka annak, hogy a modern AI-gyorsítókban külön, mátrixműveletekre optimalizált végrehajtóegységek is megjelentek. Ezek nem a hagyományos grafikai feldolgozást helyettesítik, hanem bizonyos gépi tanulási számítások gyorsítására használhatók.
Tanítás és inference: két eltérő terhelés
A mesterséges intelligenciánál fontos különbséget tenni a modell tanítása és használata között.
Modell tanítása
A tanítás során a rendszer nagy adathalmazokon dolgozik, eredményeket számol, meghatározza a hibát, majd módosítja a neurális hálózat súlyait.
Ez rendkívül számításigényes folyamat lehet, amelynél fontos:
- a nagy párhuzamos számítási teljesítmény,
- a nagy memóriakapacitás,
- a magas memória-sávszélesség,
több GPU esetén a gyors eszközök közötti kommunikáció.
Nagy modelleknél egyetlen GPU memóriája már nem feltétlenül elegendő, ezért a terhelést több gyorsító között kell elosztani. Az NVIDIA dokumentációja szerint a több GPU-s rendszerek az összesített számítási teljesítmény mellett nagyobb együttes memóriakapacitást és memória-sávszélességet is biztosíthatnak.
Inference
Az inference során a már betanított modell kap egy bemenetet, majd elkészíti rá a választ vagy előrejelzést.
Ilyen folyamat történik például:
- egy chatbot válaszának generálásakor,
- képgeneráláskor,
- beszédfelismerésnél,
- automatikus képfeldolgozásnál,
- tárgyfelismerésnél,
- vagy programkód generálásakor.
Az inference általában kisebb erőforrást igényelhet, mint ugyanannak a modellnek a teljes betanítása, de nagy modelleknél vagy egyszerre sok felhasználó kiszolgálásakor továbbra is komoly GPU-kapacitásra lehet szükség.
A hardver önmagában nem elég
A GPU-k AI-ban betöltött szerepéhez nemcsak megfelelő hardver, hanem kiforrott szoftveres környezet is szükséges.
Az NVIDIA CUDA platformja programozási modellt, fejlesztőeszközöket és könyvtárakat biztosít GPU-gyorsított számításokhoz, köztük deep learning és tudományos számítási feladatokhoz.
Az AMD saját GPU-s számítási platformja a ROCm. Ennek ökoszisztémája többek között PyTorch, JAX és más AI-keretrendszerek használatát, valamint nagy nyelvi modellek és generatív AI-rendszerek futtatását is támogatja kompatibilis AMD hardvereken.
Ez azért lényeges, mert egy gyors GPU csak akkor használható hatékonyan, ha az alkalmazások és a fejlesztői keretrendszerek ténylegesen képesek kihasználni az architektúra lehetőségeit.
Az AI egyre gyakrabban költözik a helyi számítógépre
A generatív AI terjedésének első látványos szakasza elsősorban felhőalapú szolgáltatásokhoz kötődött. A felhasználó elküldte a kérést egy távoli szervernek, a számítást pedig adatközpontokban működő gyorsítók végezték.
Egyre több feladat futtatható azonban helyben is.
Ilyen lehet például:
- kisebb nyelvi modellek futtatása,
- képgenerálás,
- képek AI-alapú zajszűrése,
- videók feldolgozása,
- beszédfelismerés,
- háttéreltávolítás,
- fejlesztői AI-eszközök használata.
A helyi feldolgozás egyik előnye, hogy az adatoknak nem feltétlenül kell minden művelethez külső szerverre kerülniük. Emellett nincs minden esetben szükség folyamatos internetkapcsolatra, és bizonyos feladatoknál a válaszidő is kedvező lehet.
Az, hogy egy adott AI-feladat mennyire használható helyben, természetesen a modell méretétől, a rendelkezésre álló memóriától, a GPU teljesítményétől és a szoftveres támogatástól is függ.
Miért nem váltja ki a GPU a CPU-t?
A GPU AI-ban elért sikere ellenére a számítógép központi processzora nem vált feleslegessé.
A két egység inkább együtt dolgozik.
A CPU többek között:
- kezeli az operációs rendszert,
- koordinálja az alkalmazások működését,
- előkészítheti az adatokat,
- vezérelheti a GPU-n futó feladatokat,
- kezelheti azokat az algoritmusrészeket, amelyek kevésbé párhuzamosíthatók.
A GPU eközben megkapja azokat a nagy számítási blokkokat, amelyek tömegesen párhuzamosíthatók.
A modern AI-rendszerek ezért egyre inkább heterogén számítási környezetként működnek: CPU, GPU és egyes rendszerekben külön AI-gyorsító vagy NPU is együtt végezhet különböző feladatokat.
A jövő nem egyszerűen a gyorsabb GPU-ról szól
Az AI hardverigénye várhatóan továbbra sem csak abban mérhető, hogy hány számítás végezhető el másodpercenként.
Legalább ilyen fontos kérdés:
- mennyi adat fér el a gyorsító memóriájában,
- milyen gyorsan mozgatható ez az adat,
- milyen numerikus formátumokat támogat a hardver,
- mennyire hatékony a több gyorsító közötti kommunikáció,
- mennyi energiát igényel a számítás,
- és mennyire képes a szoftver kihasználni az adott architektúrát.
A GPU azért vált a mesterséges intelligencia egyik kulcsfontosságú hardverelemévé, mert a neurális hálózatok számításai rendkívül jól illeszkednek a párhuzamos feldolgozáshoz. A fejlődés következő lépcsőjét azonban már nem pusztán több számolóegység jelenti: a memória, a speciális AI-egységek, a szoftveres ökoszisztéma és az energiahatékonyság együtt határozza meg, hogy egy rendszer milyen AI-feladatokra és milyen méretben használható.
*
Olvasd rendszeresen az Insidernews.hu innovációs portál és partneroldalunk, az Insiderblog.hu innovációs híreit is!


