Mokslininkai iš MIT ir NVIDIA sukūrė du metodus, kurie pagreitina retų tenzorių apdorojimą – duomenų struktūros tipą, naudojamą didelio našumo skaičiavimo užduotims atlikti. Papildomi metodai gali žymiai pagerinti sistemų, tokių kaip didžiuliai mašininio mokymosi modeliai, skatinantys generacinį dirbtinį intelektą, našumą ir energijos vartojimo efektyvumą.
Tenzoriai yra duomenų struktūros, naudojamos mašininio mokymosi modeliuose. Abu nauji metodai siekia efektyviai išnaudoti tenzoriuose vadinamą retumą – nulines reikšmes. Apdorojant šiuos tenzorius, galima praleisti nulius ir sutaupyti tiek skaičiavimo, tiek atminties. Pavyzdžiui, viskas, kas padauginta iš nulio, yra lygi nuliui, todėl šią operaciją galima praleisti. Ir jis gali suspausti tenzorių (nulių saugoti nereikia), todėl didesnę dalį galima išsaugoti lusto atmintyje.
Tačiau išnaudojant retumą kyla keletas iššūkių. Rasti nenulines reikšmes dideliame tenzoryje nėra lengva užduotis. Esami metodai dažnai riboja nulinių reikšmių vietas, taikydami retumo modelį, kad supaprastintų paiešką, tačiau tai riboja retų tenzorių, kuriuos galima efektyviai apdoroti, įvairovę.
Kitas iššūkis yra tas, kad nulinių reikšmių skaičius gali skirtis skirtinguose tenzoriaus regionuose. Dėl to sunku nustatyti, kiek vietos reikia įvairiems atminties regionams išsaugoti. Siekiant užtikrinti, kad regionas tilptų, dažnai skiriama daugiau vietos nei reikia, todėl saugojimo buferis yra nepakankamai išnaudojamas. Tai padidina ne lusto atminties srautą, o tai padidina energijos suvartojimą.
MIT ir NVIDIA mokslininkai sukūrė du sprendimus šioms problemoms spręsti. Viena vertus, jie sukūrė metodą, leidžiantį aparatūrai efektyviai rasti nulines reikšmes įvairesniems retumo modeliams.
Kitam sprendimui jie sukūrė metodą, kuris gali susidoroti su tuo atveju, kai duomenys netelpa į atmintį, o tai padidina saugojimo buferio išnaudojimą ir sumažina ne lusto atminties srautą.
Abu metodai padidina techninės įrangos greitintuvų, specialiai sukurtų paspartinti retųjų tenzorių apdorojimą, našumą ir sumažina energijos poreikį.
„Paprastai, kai naudojate labiau specializuotus ar konkrečiai domenui pritaikytus aparatūros greitintuvus, prarandate lankstumą, kurį gautumėte iš bendresnės paskirties procesoriaus, pavyzdžiui, procesoriaus. Šiais dviem darbais išsiskiria tai, kad parodome, kad vis tiek galite išlaikyti lankstumą ir gebėjimą prisitaikyti, būdami specializuoti ir efektyvūs“, – sako Vivienne Sze, MIT Elektros inžinerijos ir kompiuterių mokslų katedros (EECS) docentė. Elektronikos tyrimų laboratorija (RLE) ir vienas iš vyresniųjų straipsnių apie abu pasiekimus autorius.
Tarp jos bendraautorių yra pagrindiniai autoriai Yannan Nellie Wu PhD ’23 ir Zi Yu Xue, elektros inžinerijos ir informatikos magistrantūros studentė; ir vienas vyresnysis autorius Joelis Emeris, MIT kompiuterių mokslo ir elektros inžinerijos profesorius ir Kompiuterių mokslo ir dirbtinio intelekto laboratorijos (CSAIL) narys, taip pat kiti NVIDIA. Abu pranešimai bus pristatyti IEEE/ACM tarptautiniame mikroarchitektūros simpoziume.
HighLight: efektyvus nulinių verčių radimas
Retumas tenzoryje gali atsirasti dėl įvairių priežasčių. Pavyzdžiui, mokslininkai kartais „apkarpo“ nereikalingas mašininio mokymosi modelių dalis, kai kurias tenzoriaus reikšmes pakeisdami nuliais, sukurdami retumą. Skirtinguose modeliuose retumo laipsnis (nulio procentas) ir nulių vietos gali skirtis.
Kad būtų lengviau rasti likusias nulines reikšmes modelyje su milijardais atskirų reikšmių, mokslininkai dažnai apriboja nulinių reikšmių vietą, todėl jos patenka į tam tikrą modelį. Tačiau kiekvienas aparatūros greitintuvas paprastai yra skirtas palaikyti vieną konkretų retumo modelį, ribojant jo lankstumą.
Priešingai, MIT tyrėjų sukurtas aparatūros greitintuvas, vadinamas HighLight, gali valdyti įvairius neryškumo modelius ir vis tiek gerai veikia, kai naudojami modeliai, kuriuose nėra nulinių verčių.
Jie naudoja techniką, kurią jie vadina „hierarchiniu struktūriniu retumu“, kad efektyviai pavaizduotų įvairius retumo modelius, sudarytus iš kelių paprastų retumo modelių. Šis metodas padalija tenzoriaus reikšmes į mažesnius blokus, kur kiekvienas blokas turi savo paprastą, neryškų modelį (galbūt du nulius ir du nulius nenulines bloke su keturiomis reikšmėmis).
Tada jie sujungia blokus į hierarchiją, kur kiekviena blokų kolekcija taip pat turi savo paprastą, negausų modelį (galbūt vieną nulinį bloką ir tris nenulines blokus keturių blokų lygyje). Jie ir toliau jungia blokus į didesnius lygius, tačiau kiekviename žingsnyje modeliai išlieka paprasti.
Dėl šio paprastumo „HighLight“ gali efektyviau rasti ir praleisti nulius, todėl gali visapusiškai pasinaudoti galimybe sumažinti perteklinį skaičiavimą. Vidutiniškai jų greitintuvo konstrukcija turėjo maždaug šešis kartus geresnį energijos uždelsimo produktą (metriką, susijusią su energijos vartojimo efektyvumu) nei kiti metodai.
„Galų gale, „HighLight“ greitintuvas gali efektyviai pagreitinti tankius modelius, nes nesukelia daug papildomų išlaidų, ir tuo pačiu metu jis gali išnaudoti darbo krūvius su skirtingais nulinių verčių kiekiais, pagrįstas hierarchine struktūriniu retumu“, – sakė Wu. paaiškina.
Ateityje ji ir jos bendradarbiai nori pritaikyti hierarchinį struktūrinį retumą daugiau mašininio mokymosi modelių ir skirtingų modelių tenzorių tipų.
Siuvėjai ir „Swiftiles“: efektyviai „užsakyk per daug“, kad būtų paspartintas darbo krūvis
Tyrėjai taip pat gali panaudoti retumą, kad galėtų efektyviau perkelti ir apdoroti duomenis kompiuterio lustoje.
Kadangi tenzoriai dažnai yra didesni nei gali būti saugomi lusto atminties buferyje, lustas vienu metu paima ir apdoroja tik dalį tenzoriaus. Gabalai vadinami plytelėmis.
Siekdami maksimaliai išnaudoti šį buferį ir apriboti, kiek kartų lustas turi pasiekti išorinę atmintį, kuri dažnai dominuoja energijos suvartojime ir riboja apdorojimo greitį, mokslininkai siekia naudoti didžiausią plytelę, kuri tilps į buferį.
Tačiau retame tensoryje daugelis duomenų reikšmių yra nulinės, todėl į buferį gali tilpti dar didesnė plytelė, nei būtų galima tikėtis pagal jos talpą. Nulinių verčių saugoti nereikia.
Tačiau nulinių reikšmių skaičius gali skirtis skirtinguose tenzoriaus regionuose, todėl kiekvienoje plytelėje jos taip pat gali skirtis. Dėl to sunku nustatyti plytelės dydį, kuris tilps į buferį. Dėl to esami metodai dažnai konservatyviai daro prielaidą, kad nulių nėra ir galiausiai pasirenkama mažesnė plytelė, todėl buferyje išeikvojamos tuščios vietos.
Siekdami išspręsti šį neapibrėžtumą, mokslininkai siūlo naudoti perteklinį rezervavimą, kad būtų galima padidinti plytelių dydį, taip pat būdą toleruoti, jei plytelė netelpa buferio.
Lygiai taip pat aviakompanija perpildo bilietus skrydžiui, jei visi keleiviai pasirodo, aviakompanija turi atlyginti tiems, kurie atsitrenkia iš lėktuvo. Tačiau dažniausiai visi keleiviai nepasirodo.
Retame tensoryje galima pasirinkti tokį plytelių dydį, kad paprastai plytelėse būtų pakankamai nulių, kurių dauguma vis tiek tilptų į buferį. Tačiau kartais plytelės reikšmių, kurios skiriasi nuo nulio, turi daugiau nei telpa. Tokiu atveju tie duomenys išstumiami iš buferio.
Tyrėjai leidžia aparatūrai tik iš naujo gauti sugadintus duomenis, dar kartą neimant ir neapdorojant visos plytelės. Jie modifikuoja buferio „uodegos galą“, kad tai veiktų, todėl šios technikos pavadinimas Tailors.
Tada jie taip pat sukūrė metodą, kaip rasti plytelių dydį, kuris pasinaudotų perteklinio rezervavimo pranašumais. Šis metodas, vadinamas „Swiftiles“, greitai įvertina idealų plytelių dydį, kad tam tikra vartotojo nustatyta plytelių dalis būtų perkrauta. (Pavadinimai „Siuvėjai“ ir „Swiftiles“ reiškia pagarbą Taylor Swift, kurios paskutiniame „Eras“ ture buvo perpildyti išankstinio bilietų pardavimo kodai).
„Swiftiles“ sumažina kartų skaičių, kai aparatinė įranga turi patikrinti tenzorių, kad nustatytų idealų plytelės dydį, taip sutaupant skaičiavimų. Tailors ir Swiftiles derinys daugiau nei dvigubai padidina greitį ir reikalauja tik pusės energijos poreikio esamiems aparatūros greitintuvams, kurie negali susidoroti su pertekliniu rezervavimu.
„Swiftiles leidžia mums įvertinti, kokio dydžio turi būti šios plytelės, nereikalaujant kelių iteracijų, kad patikslintume sąmatą. Tai veikia tik todėl, kad palaikomas per didelis rezervavimas. Net jei jums nebloga suma, vis tiek galite šiek tiek pagreitinti dėl to, kaip paskirstomi ne nuliai“, – sako Xue.
Ateityje tyrėjai nori pritaikyti perteklinio rezervavimo idėją kitiems kompiuterių architektūros aspektams ir taip pat stengsis pagerinti optimalaus perteklinio rezervavimo lygio įvertinimo procesą.
Šį tyrimą iš dalies finansuoja MIT AI aparatinės įrangos programa.