Machine learning-tool schat effectiviteit code op CPU’s

deep learning artificial intelligence

Een machine learning-tool van het Massachusetts Institute of Technology (beter bekend als MIT) kan schatten hoe goed bepaalde code werkt op specifieke CPU’s. Op die manier kan dus ook de performance van een nieuwe app ingeschat worden.

In drie papers, die over de afgelopen zeven maanden zijn uitgebracht, beschrijven tien computerwetenschappers de tool ‘Ithemal’ (Instruction THroughput Estimator using MAchine Learning), een tool voor het voorspellen van het aantal processor clock cycles dat nodig is om een bepaalde instruction sequence uit te voeren. Het gaat om een test bij stabiel draaien van de applicatie. De wetenschappers hebben een ondersteunende benchmark en algoritme toegevoegd.

De meeste testsystemen gebruiken tot nu toe analytische modellen voor hun voorspellingen. Dit getrainde voorspellingsmodel van MIT is volgens de onderzoekers zelf sneller, en bovendien heeft het een foutmarge die gemiddeld zo’n 50 procent kleiner is.

Neural networks

De eerste paper over Ithemal zet uiteen dat dit soort manueel getrainde modellen meestal een flink stuk sneller zijn dan het meten van de ‘basic block throughput’- dat zijn instruction sequences zonder vertakkingen of sprongen. Het bouwen van dat soort modellen is echter een vrij langdradig, langdurend, handmatig proces dat bovendien gevoelig is voor fouten, vooral wanneer de details van de processor niet volledig bekend zijn. Als er echter een neural network gebruikt wordt kan er een model gecreëerd worden dat continu voorspelt door middel van gelabelde data.

De academici stellen dat hun werk de waarde van machine learning aantoont voor performance analysis: “Ithemal toont aan dat toekomstige comilation- en performance-engineeringstools kunnen worden aangevuld met data-driven benaderingen, om hun performance en portability te verbeteren, terwijl de inspanningen van de ontwikkelaars worden geminimaliseerd.”

nieuwsbrief

Abonneer je gratis op ITdaily !

  • This field is for validation purposes and should be left unchanged.