science >> Wetenschap >  >> Elektronica

Tool voorspelt hoe snel code op een chip zal draaien

Krediet:CC0 Publiek Domein

MIT-onderzoekers hebben een machine learning-tool uitgevonden die voorspelt hoe snel computerchips code van verschillende applicaties zullen uitvoeren.

Om code zo snel mogelijk te laten werken, ontwikkelaars en compilers - programma's die programmeertaal vertalen in machineleesbare code - gebruiken meestal prestatiemodellen die de code door een simulatie van bepaalde chiparchitecturen leiden.

Compilers gebruiken die informatie om automatisch code te optimaliseren, en ontwikkelaars gebruiken het om prestatieknelpunten aan te pakken op de microprocessors die het zullen uitvoeren. Maar prestatiemodellen voor machinecode zijn met de hand geschreven door een relatief kleine groep experts en zijn niet goed gevalideerd. Als gevolg hiervan, de gesimuleerde prestatiemetingen wijken vaak af van de real-life resultaten.

In een reeks conferentiepapers, de onderzoekers beschrijven een nieuwe pijplijn voor machine learning die dit proces automatiseert, het gemakkelijker maken, sneller, en nauwkeuriger. In een paper gepresenteerd op de International Conference on Machine Learning in juni, de onderzoekers presenteerden Ithemal, een neuraal netwerkmodel dat traint op gelabelde gegevens in de vorm van "basisblokken" - fundamentele fragmenten van computerinstructies - om automatisch te voorspellen hoe lang het duurt voordat een bepaalde chip voorheen onzichtbare basisblokken uitvoert. Resultaten suggereren dat Ithemal veel nauwkeuriger presteert dan traditionele, met de hand afgestelde modellen.

Vervolgens, op het IEEE International Symposium on Workload Characterization in november, de onderzoekers presenteerden een benchmarksuite van basisblokken uit verschillende domeinen, inclusief machinaal leren, samenstellers, cryptografie, en afbeeldingen die kunnen worden gebruikt om prestatiemodellen te valideren. Ze verzamelden meer dan 300, 000 van de geprofileerde blokken in een open-source dataset genaamd BHive. Tijdens hun evaluaties Ithemal voorspelde hoe snel Intel-chips code nog beter zouden uitvoeren dan een prestatiemodel dat door Intel zelf is gebouwd.

uiteindelijk, ontwikkelaars en compilers kunnen de tool gebruiken om code te genereren die sneller en efficiënter werkt op een steeds groeiend aantal diverse en 'black box'-chipontwerpen. "Moderne computerprocessors zijn ondoorzichtig, verschrikkelijk ingewikkeld, en moeilijk te begrijpen. Het is ook ongelooflijk uitdagend om computercode te schrijven die zo snel mogelijk wordt uitgevoerd voor deze processors, " zegt co-auteur Michael Carbin, een assistent-professor bij de afdeling Electrical Engineering and Computer Science (EECS) en een onderzoeker bij het Computer Science and Artificial Intelligence Laboratory (CSAIL). "Deze tool is een grote stap voorwaarts in de richting van het volledig modelleren van de prestaties van deze chips voor verbeterde efficiëntie."

Meest recent, in een paper gepresenteerd op de NeurIPS-conferentie in december, het team stelde een nieuwe techniek voor om automatisch compiler-optimalisaties te genereren. specifiek, ze genereren automatisch een algoritme, genaamd Vemal, die bepaalde code omzet in vectoren, die kan worden gebruikt voor parallel computergebruik. Vemal presteert beter dan handgemaakte vectorisatie-algoritmen die worden gebruikt in de LLVM-compiler, een populaire compiler die in de industrie wordt gebruikt.

Leren van gegevens

Het met de hand ontwerpen van prestatiemodellen kan "een zwarte kunst zijn, " zegt Carbin. Intel biedt uitgebreide documentatie van meer dan 3, 000 pagina's die de architectuur van zijn chips beschrijven. Maar er bestaat momenteel slechts een kleine groep experts die prestatiemodellen zullen bouwen die de uitvoering van code op die architecturen simuleren.

"De documenten van Intel zijn niet foutloos of volledig, en Intel zal bepaalde dingen weglaten, omdat het eigendom is, "zegt Mendis. "Echter, wanneer u gegevens gebruikt, u hoeft de documentatie niet te kennen. Als er iets verborgen is, kun je dat direct uit de data leren."

Om dit te doen, de onderzoekers klokten het gemiddelde aantal cycli dat een bepaalde microprocessor nodig heeft om basisblokinstructies te berekenen - in feite, de volgorde van opstarten, uitvoeren, en afsluiten - zonder menselijke tussenkomst. Door het proces te automatiseren, kunnen honderdduizenden of miljoenen blokken snel worden geprofileerd.

Domeinspecifieke architecturen

In opleiding, het Ithemal-model analyseert miljoenen automatisch geprofileerde basisblokken om precies te leren hoe verschillende chiparchitecturen berekeningen zullen uitvoeren. belangrijk, Ithemal neemt onbewerkte tekst als invoer en vereist geen handmatige toevoeging van functies aan de invoergegevens. Bij het testen, Ithemal kan worden gevoed met voorheen ongeziene basisblokken en een bepaalde chip, en zal een enkel nummer genereren dat aangeeft hoe snel de chip die code zal uitvoeren.

De onderzoekers ontdekten dat Ithemal de foutpercentages in nauwkeurigheid verminderde - wat het verschil betekent tussen de voorspelde snelheid versus de snelheid in de echte wereld - met 50 procent ten opzichte van traditionele handgemaakte modellen. Verder, in hun volgende krant, ze toonden aan dat het foutenpercentage van Ithemal 10 procent was, terwijl het foutenpercentage van het prestatievoorspellingsmodel van Intel 20 procent was op verschillende basisblokken in meerdere verschillende domeinen.

De tool maakt het nu gemakkelijker om snel prestatiesnelheden te leren voor nieuwe chiparchitecturen, zegt Mendis. Bijvoorbeeld, domeinspecifieke architecturen, zoals de nieuwe Tensor Processing Unit van Google die specifiek wordt gebruikt voor neurale netwerken, worden nu gebouwd, maar worden niet algemeen begrepen. "Als je een model wilt trainen op een nieuwe architectuur, je verzamelt gewoon meer data van die architectuur, voer het door onze profiler, gebruik die informatie om Ithemal te trainen, en nu heb je een model dat prestaties voorspelt, ' zegt Mendis.

Volgende, de onderzoekers bestuderen methoden om modellen interpreteerbaar te maken. Veel van machine learning is een zwarte doos, dus het is niet echt duidelijk waarom een ​​bepaald model zijn voorspellingen heeft gedaan. "Ons model zegt dat er een processor voor nodig is, zeggen, 10 cycli om een ​​basisblok uit te voeren. Nutsvoorzieningen, we proberen erachter te komen waarom, " zegt Carbin. "Dat is een fijne mate van granulariteit die geweldig zou zijn voor dit soort gereedschappen."

Ze hopen ook Ithemal te gebruiken om de prestaties van Vemal nog verder te verbeteren en automatisch betere prestaties te bereiken.

Dit verhaal is opnieuw gepubliceerd met dank aan MIT News (web.mit.edu/newsoffice/), een populaire site met nieuws over MIT-onderzoek, innovatie en onderwijs.