Kredit:CC0 Public Domain
MIT-forskere har opfundet et maskinlæringsværktøj, der forudsiger, hvor hurtigt computerchips vil udføre kode fra forskellige applikationer.
For at få koden til at køre så hurtigt som muligt, udviklere og kompilatorer-programmer, der oversætter programmeringssprog til maskinlæsbar kode-bruger typisk ydelsesmodeller, der kører koden gennem en simulering af givne chiparkitekturer.
Kompilatorer bruger disse oplysninger til automatisk at optimere kode, og udviklere bruger det til at tackle flaskehalse med ydeevne på de mikroprocessorer, der vil køre det. Men ydelsesmodeller for maskinkode er håndskrevet af en relativt lille gruppe af eksperter og er ikke korrekt valideret. Som en konsekvens, de simulerede præstationsmålinger afviger ofte fra virkelige resultater.
I en række konferencepapirer, forskerne beskriver en ny maskinlærings-pipeline, der automatiserer denne proces, gør det lettere, hurtigere, og mere præcis. I et papir fremlagt på den internationale konference om maskinlæring i juni, forskerne præsenterede Ithemal, en model med neuralt netværk, der træner på mærkede data i form af "grundlæggende blokke"-grundlæggende uddrag af beregningsinstruktioner-for automatisk at forudsige, hvor lang tid det tager en given chip at udføre tidligere usynlige grundblokke. Resultaterne tyder på, at Ithemal udfører langt mere præcist end traditionelle håndstemte modeller.
Derefter, i november IEEE International Symposium on Workload Characterization, forskerne præsenterede en benchmark -pakke med grundlæggende blokke fra en række forskellige domæner, herunder maskinlæring, kompilatorer, kryptografi, og grafik, der kan bruges til at validere ydelsesmodeller. De samlede mere end 300, 000 af de profilerede blokke til et open-source datasæt kaldet BHive. Under deres evalueringer, Ithemal forudsagde, hvor hurtigt Intel -chips ville køre kode endnu bedre end en ydelsesmodel bygget af Intel selv.
Ultimativt, udviklere og kompilatorer kan bruge værktøjet til at generere kode, der kører hurtigere og mere effektivt på et stadigt voksende antal forskellige og "black box" chipdesigner. "Moderne computerprocessorer er uigennemsigtige, frygtelig kompliceret, og svært at forstå. Det er også utroligt udfordrende at skrive computerkode, der udføres så hurtigt som muligt for disse processorer, "siger medforfatter Michael Carbin, en adjunkt i Institut for Elektroteknik og Datalogi (EECS) og en forsker i Laboratoriet for datalogi og kunstig intelligens (CSAIL). "Dette værktøj er et stort skridt fremad mod fuldt ud at modellere ydeevnen af disse chips for forbedret effektivitet."
Seneste, i et papir fremlagt på NeurIPS -konferencen i december, teamet foreslog en ny teknik til automatisk at generere kompileroptimeringer. Specifikt, de genererer automatisk en algoritme, kaldet Vemal, der konverterer bestemt kode til vektorer, som kan bruges til parallel computing. Vemal overgår håndlavede vektoriseringsalgoritmer, der bruges i LLVM-kompilatoren-en populær kompiler, der bruges i branchen.
Lære af data
At designe performance -modeller i hånden kan være "en sort kunst, "Siger Carbin. Intel leverer omfattende dokumentation af mere end 3, 000 sider, der beskriver dens chips arkitekturer. Men der findes i øjeblikket kun en lille gruppe eksperter, der vil bygge præstationsmodeller, der simulerer udførelsen af kode på disse arkitekturer.
"Intels dokumenter er hverken fejlfrie eller komplette, og Intel vil udelade visse ting, fordi den er proprietær, "Siger Mendis." Dog, når du bruger data, du behøver ikke at kende dokumentationen. Hvis der er noget skjult, kan du lære det direkte fra dataene. "
For at gøre det, forskerne klokte det gennemsnitlige antal cyklusser, en given mikroprocessor tager for at beregne grundlæggende blokinstruktioner - grundlæggende, rækkefølgen af opstart, udføre, og luk ned - uden menneskelig indgriben. Automatisering af processen muliggør hurtig profilering af hundredtusinder eller millioner af blokke.
Domænespecifikke arkitekturer
I træning, Ithemal -modellen analyserer millioner af automatisk profilerede grundblokke for at lære præcis, hvordan forskellige chiparkitekturer vil udføre beregning. Vigtigere, Ithemal tager rå tekst som input og kræver ikke manuelt tilføjelse af funktioner til inputdataene. Ved testning, Ithemal kan fodres med tidligere usete grundblokke og en given chip, og vil generere et enkelt tal, der angiver, hvor hurtigt chippen vil udføre denne kode.
Forskerne fandt, at Ithemal reducerede fejlraterne i nøjagtighed-hvilket betyder forskellen mellem den forudsagte hastighed versus den virkelige hastighed-med 50 procent i forhold til traditionelle håndlavede modeller. Yderligere, i deres næste papir, de viste, at Ithemals fejlprocent var 10 procent, mens Intel performance-forudsigelsesmodels fejlprocent var 20 procent på en række grundlæggende blokke på tværs af flere forskellige domæner.
Værktøjet gør det nu lettere at hurtigt lære ydelseshastigheder for nye chiparkitekturer, Siger Mendis. For eksempel, domænespecifikke arkitekturer, f.eks. Googles nye Tensor Processing Unit, der specifikt bruges til neurale netværk, er nu ved at blive bygget, men er ikke bredt forstået. "Hvis du vil træne en model om noget ny arkitektur, du indsamler bare flere data fra den arkitektur, kør det gennem vores profiler, bruge disse oplysninger til at træne Ithemal, og nu har du en model, der forudsiger ydelse, "Siger Mendis.
Næste, forskerne studerer metoder til at gøre modeller fortolkelige. Meget af maskinlæring er en sort boks, så det er ikke rigtigt klart, hvorfor en bestemt model lavede sine forudsigelser. "Vores model siger, at det kræver en processor, sige, 10 cykler for at udføre en grundlæggende blok. Nu, vi prøver at finde ud af hvorfor, "Carbin siger." Det er et fint granularitetsniveau, der ville være fantastisk for disse typer værktøjer. "
De håber også at kunne bruge Ithemal til at forbedre Vemals ydeevne yderligere og opnå bedre ydeevne automatisk.
Denne historie er genudgivet med tilladelse fra MIT News (web.mit.edu/newsoffice/), et populært websted, der dækker nyheder om MIT -forskning, innovation og undervisning.