A most mondatokat író és daganatokat felismerő hardver karrierjének egy részét egy régebbi problémának köszönheti: rengeteg pixel kirajzolásának, mielőtt a játékos észrevenné, hogy a látvány késve érkezik.
A GPU-k azért váltak a modern MI központi elemeivé, mert a neurális hálózatok hatalmas mennyiségű matematikai műveletet tartalmaznak, amelyek feloszthatók és párhuzamosan végrehajthatók. A grafika ugyanezt az általános képességet igényelte. A szoftver ezután a specializált képfeldolgozót mátrixokhoz, modellekhez és adatokhoz használható programozható processzorrá alakította.
Először jöttek a pixelek
Egy modern játék ismételten végigszámolja a geometriát, textúrákat, megvilágítást, színeket és árnyékokat több millió pixel esetében. Ennek jelentős része sok hasonló számításra bontható. Ahelyett, hogy egyetlen rendkívül képzett dolgozót kérnénk meg a képernyő balról jobbra történő megfestésére, a grafikus hardver hatalmas műhelyt szervez, és sok kisebb dolgozót foglalkoztat egyszerre.
A CPU-t másképp tervezték. Kisebb számú, nagy teljesítményű és rugalmas magja az operációs rendszer feladatait, az alkalmazáslogikát, az elágazó döntéseket, valamint azokat a feladatokat kezeli, amelyeknél a következő lépés az előző eredményétől függ. Egyik architektúra sem minden szempontból jobb a másiknál. Egy bíróság és egy kekszgyár is embereket alkalmaz, ez azonban nem jelenti azt, hogy ugyanazt a létszámtervet igénylik.
Azután a pixelek tenzorokká váltak
A neurális hálózatok ismételten nagy számtömböket kombinálnak, műveleteket alkalmaznak, majd az eredményeket számos rétegen továbbítják. A tanítás módosítja a modellt, a következtetés pedig használja. A mögöttes munka rendkívül kifinomult lehet, a nehéz számtani műveletek jelentős része azonban továbbra is felosztható egy párhuzamos processzoron.
Ezeket a számításokat a CPU is el tudja végezni. A GPU előnye akkor jelenik meg, amikor a feladat elegendő megfelelő munkát tartalmaz ahhoz, hogy párhuzamos erőforrásai folyamatosan terhelve legyenek. Ez a kapcsolat:
- a grafika pixeleken, geometrián és mintákon elosztott, egymáshoz kapcsolódó számításokat foglal magában;
- az MI a modell súlyain, aktivációin és adatain elosztott, egymáshoz kapcsolódó számításokat foglal magában;
- a GPU-t arra tervezték, hogy nagy párhuzamos munkaterhelést futtasson végig a rendszeren.
A pályamódosítás négy felvonásban történt
- Fix grafikus hardver: a korai GPU-k felgyorsították a képek és 3D-s jelenetek kirajzolásához szükséges specializált munkát.
- Programozható árnyalók és általános számítás: a hardver elég rugalmassá vált ahhoz, hogy a fejlesztők szélesebb körű párhuzamos problémákat is kifejezhessenek vele.
- Gyakorlati szoftverplatformok: az olyan rendszerek, mint a CUDA és a ROCm, programozási modelleket, fordítókat, könyvtárakat és eszközöket biztosítottak.
- Mélytanulás nagy léptékben: a kutatások, köztük a 2012-es AlexNet, bemutatták, hogyan teheti a GPU-s számítás praktikusan betaníthatóvá a nagyméretű képfelismerő hálózatokat.
A kör ezután önmagát erősítette. Egyre több kutató használt GPU-s számításokat, javult a szoftver, a chiptervezők gépi tanulási műveletekhez adtak hozzá új funkciókat, a nagyobb munkaterhelések praktikussá váltak, a kereslet pedig finanszírozta a hardver újabb generációját.
A szoftver tette hasznossá a gyors chipet
A nyers párhuzamos számtan önmagában nem használható ökoszisztéma. A fejlesztőknek fordítókra, futtatókörnyezetekre, profilozókra és gyorsított könyvtárakra van szükségük; a kutatóknak pedig olyan keretrendszerekre, amelyekkel modelleket fejezhetnek ki anélkül, hogy minden alacsony szintű műveletet kézzel kellene megírniuk.
Az NVIDIA CUDA Programming Guide ismerteti programozási modelljét és végrehajtási platformját. Az AMD ROCm dokumentációja a támogatott AMD hardverekhez tartozó megfelelő nyílt szoftveres stacket mutatja be. A keretrendszerek támogatása az oka annak, hogy két elméletileg képes GPU gyakorlati értéke nagyon eltérő lehet ugyanazon alkalmazás esetében.
A VRAM az a helyiség, ahol a munka zajlik
Egy modellnek és ideiglenes munkadatainak be kell férniük a rendelkezésre álló memóriába. A feladattól függően ide tartozhatnak a súlyok, promptok, képek, kötegek és köztes eredmények. Egy GPU elméletben lehet elég gyors, mégis meghiúsulhat egy munkaterhelés futtatása, mert nincs hová elhelyezni az adatokat.
Ez egy használt hardverekre jellemző furcsaságot eredményez: egy több memóriával rendelkező régebbi professzionális kártya továbbra is hasznos lehet egy olyan modellhez, amely nem fér el egy újabb, gyorsabb játékos kártyán. Ennek a fordítottja is igaz. Ha a választott szoftver kevés memóriát használ, és az újabb számítási funkciókból profitál, akkor drága módja a specifikáció csodálatának olyan kapacitást vásárolni, amelyet sosem használ.
A memória-sávszélesség szintén számít. Több ezer párhuzamos dolgozó nem produktív, ha az adatok egy levélnyíláson keresztül jutnak el hozzájuk.
Minden MI-feladathoz GPU kell?
Nem. A kis modellek CPU-kon is futhatnak. A telefonok és az újabb számítógépek egyre gyakrabban tartalmaznak NPU-kat, amelyeket a támogatott neurális műveletek hatékony végrehajtására terveztek. A nagy szolgáltatók célzott gyorsítókat is építenek, például a Google Tensor Processing Unitjait.
A GPU azért marad fontos, mert nagy párhuzamos teljesítményt, programozhatóságot, helyi memóriát és kiforrott eszközöket egyesít. Ez a kombináció számos feladathoz megfelelő, de nem teszi a GPU-t automatikusan helyes válasszá minden olyan feladathoz, amelyben szerepel az A és az I betű.
Egy játékos GPU képes MI-feladatokra, ha a szoftver is egyetért
A megfelelő játékos kártyák helyben képesek képgenerálásra, átírásra, felskálázásra és kisebb nyelvi modellek futtatására. Általános „MI-kész” állítás helyett ellenőrizd a konkrét alkalmazást:
- Támogatott a GPU és az operációs rendszer?
- Mennyi VRAM-ra van szüksége a választott modellnek és kötegnek?
- Mely numerikus formátumok és gyorsítási útvonalak érhetők el?
- Elbírja a tápegység, a ház és a hűtés a kártyát?
- Valóban megéri a várt sebesség miatt hardvert vásárolni?
Gyakorlati példa: egy interjú átírása
Tegyük fel, hogy feltöltés nélkül szeretnéd a felvételeidet szöveggé alakítani. Egy átíróalkalmazást, modellméretet, elfogadható pontosságot és átfutási időt választasz - nem egyszerűen egy „MI-grafikus kártyát”. A Whisper-tárhely hozzávetőleges memóriaigényeket ad meg a modellméreteihez, amelyek az adott megvalósítás kiindulópontját jelentik, nem pedig univerzális ígéretet minden köré épülő alkalmazáshoz.
Egy nagyobb modellnek több memóriára lehet szüksége. Egy kisebb már így is elég pontosan végezhet. Ha a CPU elvégzi az alkalmi felvétel feldolgozását, mielőtt szükséged lenne rá, akkor egy új GPU olyan ütemezési problémát oldana meg, amely nem is létezik.
A hasznos történelmi véletlen
A korai grafikus hardvert nem a modern nyelvi modellek figyelembevételével tervezték. Azért vált hasznossá, mert a pixelek kirajzolására épített architektúra a neurális hálózatok mögött álló párhuzamos matematika jelentős részéhez is illett. A programozható szoftver ezt az alkalmassági véletlent megnyitotta a tudósok és fejlesztők előtt; a grafikai igények évtizedeken át folyamatosan javították a gépezetet.
A GPU-k nem pusztán azért hajtották az MI fellendülését, mert gyorsak voltak. Párhuzamosak és programozhatók voltak, ráadásul olyan szoftver vette körül őket, amely ezt a struktúrát hasznos munkává tudta alakítani.
Tekintsd meg az MI- és gépi tanulási GPU-kat, amelyeket a GPUsed kezel, olvasd el, mit csinál egy NPU, vagy hasonlítsd össze a VRAM kapacitását és korlátait. Ha a kérdés vásárlásról szól, kezdd a munkaterheléssel, ne a legnagyobb modell nevével.