Aparatinė įranga, dabar rašanti sakinius ir atpažįstanti navikus, dalį savo karjeros skolinga senesnei problemai: nupiešti daugybę pikselių, kol žaidėjas pastebi, kad aplinka pasirodė per vėlai.
GPU tapo šiuolaikinio dirbtinio intelekto pagrindu, nes neuroniniuose tinkluose yra milžiniškas kiekis matematinių operacijų, kurias galima padalyti ir atlikti lygiagrečiai. Grafika reikalavo tokio pat plataus gebėjimo. Vėliau programinė įranga specializuotą vaizdo procesorių pavertė programuojamu matricų, modelių ir duomenų varikliu.
Pirmiausia atsirado pikseliai
Šiuolaikinis žaidimas nuolat apdoroja geometriją, tekstūras, apšvietimą, spalvas ir šešėlius milijonuose pikselių. Didelę šio darbo dalį galima suskaidyti į daugybę panašių skaičiavimų. Užuot paprašius vieno itin galingo darbuotojo nupiešti ekraną iš kairės į dešinę, grafinė aparatinė įranga organizuoja didžiules dirbtuves ir leidžia daugeliui mažesnių darbuotojų dirbti kartu.
CPU sukurtas kitaip. Mažesnis skaičius galingų ir lanksčių branduolių atlieka operacinės sistemos darbą, programų logiką, šakojimosi sprendimus ir užduotis, kuriose kitas žingsnis priklauso nuo ankstesnio rezultato. Nė viena architektūra nėra visuotinai pranašesnė. Teismo salėje ir sausainių fabrike dirba žmonės, tačiau tai nereiškia, kad jiems tinka tas pats darbuotojų paskirstymo planas.
Tada pikseliai tapo tensoriais
Neuroniniai tinklai nuolat derina didelius skaičių masyvus, taiko operacijas ir perduoda rezultatus per daugybę sluoksnių. Mokymas koreguoja modelį, o išvedimas jį naudoja. Pagrindinis darbas gali būti itin sudėtingas, tačiau didelę dalį intensyvių aritmetinių operacijų vis tiek galima paskirstyti lygiagrečiam procesoriui.
CPU gali atlikti šiuos skaičiavimus. GPU pranašumas išryškėja tada, kai užduotyje yra pakankamai tinkamo darbo, kad jo lygiagretieji ištekliai būtų nuolat užimti. Štai ryšys:
- grafika apima susijusius skaičiavimus, paskirstytus per pikselius, geometriją ir pavyzdžius;
- dirbtinis intelektas apima susijusius skaičiavimus, paskirstytus per modelio svorius, aktyvacijas ir duomenis;
- GPU sukurtas tam, kad per sistemą perduotų didelį lygiagretų darbo krūvį.
Karjeros pokytis įvyko keturiais etapais
- Fiksuota grafinė aparatinė įranga: pirmieji GPU spartino specializuotą darbą, reikalingą vaizdams ir 3D scenoms piešti.
- Programuojami šeideriai ir bendrosios paskirties skaičiavimai: aparatinė įranga tapo pakankamai lanksti, kad kūrėjai galėtų išreikšti įvairesnes lygiagrečias problemas.
- Praktiškos programinės įrangos platformos: tokios sistemos kaip CUDA ir ROCm suteikė programavimo modelius, kompiliatorius, bibliotekas ir įrankius.
- Gilusis mokymasis dideliu mastu: tyrimai, įskaitant „AlexNet“ 2012 m., parodė, kaip GPU skaičiavimai gali paversti didelio vaizdų atpažinimo tinklo mokymą praktišku.
Tuomet ciklas ėmė stiprinti pats save. Vis daugiau tyrėjų naudojo GPU skaičiavimus, programinė įranga tobulėjo, lustų kūrėjai diegė mašininio mokymosi operacijoms skirtas funkcijas, didesni darbo krūviai tapo praktiški, o paklausa finansavo naujos kartos aparatinę įrangą.
Programinė įranga yra priežastis, dėl kurios greitas lustas tapo naudingas
Vien neapdorotos lygiagrečios aritmetinės operacijos nesudaro tinkamos ekosistemos. Kūrėjams reikia kompiliatorių, vykdymo aplinkų, profiliavimo įrankių ir spartinamų bibliotekų, o tyrėjams reikia sistemų, leidžiančių išreikšti modelį neparašant kiekvienos žemo lygio operacijos rankiniu būdu.
NVIDIA CUDA programavimo vadovas aprašo jos programavimo modelį ir vykdymo platformą. AMD ROCm dokumentacijoje aprašomas atitinkamas atviras programinės įrangos paketas palaikomai AMD aparatinei įrangai. Sistemų palaikymas yra priežastis, dėl kurios du teoriškai pajėgūs GPU gali turėti labai skirtingą praktinę vertę vienai programai.
VRAM yra patalpa, kurioje vyksta darbas
Modelis ir jo laikini darbiniai duomenys turi tilpti į turimą atmintį. Priklausomai nuo užduoties, tai apima svorius, užklausas, vaizdus, paketus ir tarpinius rezultatus. GPU teoriškai gali būti pakankamai greitas, tačiau vis tiek nepaleisti darbo krūvio, nes nėra kur jo patalpinti.
Dėl to naudotos aparatinės įrangos pasaulyje pasitaiko keistenybė: senesnė profesionali vaizdo plokštė, turinti daugiau atminties, gali išlikti naudinga modeliui, kuris netelpa į naujesnę ir greitesnę žaidimų vaizdo plokštę. Galioja ir atvirkščias variantas. Jei numatyta programinė įranga naudoja mažai atminties ir jai naudingos naujesnės skaičiavimo funkcijos, pirkti talpą, kurios ji niekada nepasieks, yra brangus būdas grožėtis specifikacija.
Atminties pralaidumas taip pat svarbus. Tūkstančiai lygiagrečių darbuotojų nėra produktyvūs, kai duomenys juos pasiekia per pašto dėžutę.
Ar kiekvienai DI užduočiai reikia GPU?
Ne. Maži modeliai gali veikti CPU. Telefonuose ir naujausiuose kompiuteriuose vis dažniau yra NPU, skirti palaikomoms neuroninių tinklų operacijoms efektyviai vykdyti. Didieji operatoriai taip pat kuria konkrečioms reikmėms skirtus spartintuvus, pavyzdžiui, „Google“ tenzorinius procesorius.
GPU išlieka svarbus, nes jame derinamas didelis lygiagretus našumas, programuojamumas, vietinė atmintis ir subrendę įrankiai. Dėl šio derinio jis tinka daugeliui užduočių, tačiau tai nereiškia, kad jis yra teisingas atsakymas į kiekvieną užduotį, kurios pavadinime yra raidės A ir I.
Žaidimų GPU gali vykdyti DI užduotis - kai programinė įranga tam pritaria
Tinkamos žaidimų vaizdo plokštės gali vietoje atlikti vaizdų generavimą, transkribavimą, raiškos didinimą ir vykdyti mažesnius kalbos modelius. Tikrinkite konkrečią programą, o ne bendrinį teiginį „paruošta DI“:
- Ar GPU ir operacinė sistema palaikomi?
- Kiek VRAM reikia pasirinktam modeliui ir paketui?
- Kokie skaitiniai formatai ir spartinimo keliai galimi?
- Ar maitinimo šaltinis, korpusas ir aušinimas gali palaikyti šią vaizdo plokštę?
- Ar tikėtinas greitis iš tiesų vertas tam skirtos aparatinės įrangos pirkimo?
Praktinis pavyzdys: interviu transkribavimas
Tarkime, norite įrašus paversti tekstu jų neįkeldami. Renkate ne tiesiog „DI vaizdo plokštę“, o transkribavimo programą, modelio dydį, priimtiną tikslumą ir apdorojimo laiką. „Whisper“ saugykloje pateikiami apytiksliai atminties reikalavimai skirtingų dydžių modeliams. Tai yra pradinis orientyras konkrečiam įgyvendinimui, o ne visuotinis pažadas kiekvienai aplink jį sukurtai programai.
Didesniam modeliui gali reikėti daugiau atminties. Mažesnis modelis gali ir taip pakankamai tiksliai užbaigti darbą. Jei CPU apdoroja retkarčiais pasitaikantį įrašą dar prieš jums jo prireikiant, naujas GPU išspręstų neegzistuojančią planavimo problemą.
Naudingas istorinis atsitiktinumas
Ankstyvoji grafinė aparatinė įranga nebuvo kuriama galvojant apie šiuolaikinius kalbos modelius. Ji tapo naudinga todėl, kad pikseliams piešti sukurta architektūra taip pat tiko didelei daliai lygiagrečios matematikos, slypinčios už neuroninių tinklų. Programuojama programinė įranga atvėrė šį tinkamumo atsitiktinumą mokslininkams ir kūrėjams, o dešimtmečius trukusi grafikos paklausa toliau tobulino mechanizmą.
GPU nesukėlė DI bumo vien todėl, kad buvo greiti. Jie buvo lygiagretūs, programuojami ir apsupti programinės įrangos, galinčios šią struktūrą paversti naudingu darbu.
Peržiūrėkite DI ir mašininio mokymosi GPU, kuriuos tvarko GPUsed, perskaitykite, ką daro NPU, arba palyginkite VRAM talpą ir jos ribas. Jei klausimas susijęs su pirkiniu, pradėkite nuo darbo krūvio, o ne didžiausio modelio pavadinimo.