science >> Wetenschap >  >> Elektronica

Hardwareversnellers aan het werk zetten met automatische codevertaling

Bedrijven als Google, Amazone, en Intel hebben in grote lijnen verschillende soorten hardwareversnellers opgenomen in hun cloud computing-pijplijnen, maar veel programma's kunnen er nog steeds niet volledig van profiteren. Krediet:Universiteit van Michigan

Een nieuwe techniek ontwikkeld door onderzoekers van de Universiteit van Michigan zou een bredere acceptatie van post-Moore's Law computercomponenten mogelijk kunnen maken door middel van automatische codevertaling. Het systeem, genaamd AutomataSynth, stelt software-ingenieurs in staat om gebruik te maken van de kracht van hardwareversnellers zoals FPGA's zonder gespecialiseerde programmeerkennis of het herschrijven van oude, CPU-centrische code.

Nu de wet van Moore zijn einde nadert, bedrijven en ontwerpers vertrouwen op een aantal hardwaretechnieken om het afnemende rendement van nieuwe CPU's te omzeilen. Een van de meest haalbare kortetermijnkandidaten zijn hardwareversnellers zoals field-programmable gate arrays (FPGA's), die kan worden gewijd aan het snel uitvoeren van bepaalde veelvoorkomende functies en het elimineren van knelpunten in grotere toepassingen.

Hoewel hun acceptatie door bedrijven als Microsoft en Amazon Web Services al in volle gang is, FPGA's zijn beperkt in hun gebruik door programmeervereisten die vreemd zijn voor veel softwareontwikkelaars. Deze vereisten beperken ook het gebruik ervan op reeds bestaande legacy-software, die meestal is geschreven om specifiek met CPU's te werken.

De meeste programma's die tegenwoordig in gebruik zijn, moeten volledig worden herschreven op een zeer laag niveau om de voordelen van hardwareversnelling te plukken. Daarom, de componenten worden sneller geïnstalleerd dan ze daadwerkelijk worden gebruikt.

"Bedrijven ondernemen stappen om [FPGA's] toegankelijker te maken voor mensen, " zegt Kevin Angstadt, een doctoraat kandidaat die het project leidt, "maar als het gaat om het schrijven van nieuwe programma's, het proces is nog erg primitief."

Het team, waaronder profs. Westley Weimer en Jean Baptiste Jeannin, trachtte deze adoptiebarrières te doorbreken door automatisch bepaalde low-level functies die door veel grotere applicaties worden gebruikt, te herschrijven. Op schaal geïmplementeerd, dit zou betekenen dat ontwikkelaars volledig gebruik kunnen maken van FPGA's door simpelweg een paar regels aan hun bestaande code toe te voegen - herschrijven is niet nodig.

Angstadt vergelijkt het proces met de aanpassing van grafische verwerkingseenheden (GPU's) aan computers voor algemene doeleinden, aanvankelijk mogelijk gemaakt door NVIDIA's CUDA-platform. CUDA bood ontwikkelaars een interface waarmee ze konden profiteren van de verwerkingskracht van een GPU voor niet-grafische taken.

Krediet:Universiteit van Michigan

"Het doel van dit werk was om iets soortgelijks te doen met FPGA's, " Angstadt zegt. "Je kunt niet zomaar in dezelfde taal schrijven als je ze gebruikt, maar we kunnen je de illusie geven in dezelfde taal te schrijven."

Om dit te behalen, de onderzoekers maakten gebruik van een techniek genaamd bounded automata learning. De techniek maakt gebruik van een combinatie van verschillende programma-analyses om een ​​toestandsmachine te produceren die zowel qua functie equivalent is aan de originele code als vatbaar is voor versnelling met FPGA's. Eigenlijk, hun systeem leest de gegeven code, leert de functionaliteit van de code, en schrijft een hardwarebeschrijving van dit gedrag om naar de accelerator te sturen.

In een paper over het werk, ze demonstreerden hun techniek op één klasse van functies, string-kernels, die zoek- en vergelijkingsbewerkingen op tekst afhandelen.

"Elke keer dat u door een tekstdocument zoekt, je gebruikt een van de meest primitieve vormen van deze string-kernels, ", zegt Angstadt. Maar ze kunnen veel complexer zijn - de functies zijn fundamenteel voor zulke uiteenlopende toepassingen als spamdetectie, genetische analyse, productaanbevelingen, en deeltjesfysica.

AutomataSynth uitvoeren op een benchmarksuite van real-world stringfuncties die zijn geschreven om met CPU's te werken, het team ontdekte dat het in 72% van de gevallen volledig gelijkwaardige hardware-ontwerpen kon leren en in nog eens 11% dicht bij benadering.

Toepassing van deze techniek op andere klassen van functies blijft een open probleem voor verder werk, maar Angstadt is ervan overtuigd dat het breed kan worden gebruikt.

"Ons onderzoek geeft aan dat, hoewel er veel soorten functies bestaan, behalve degene die we ondersteunen, er zijn meer toepassingen dan we ons realiseren die kunnen worden herschreven als string-kernels, ", zegt Angstadt. "Dus misschien kunnen we nog steeds vergelijkbare technieken toepassen om andere soorten code te ondersteunen."

Indien succesvol, we zouden kunnen zien dat FPGA's een standaardcomponent worden voor algemeen gebruik.

De onderzoekers presenteerden hun bevindingen in het artikel "Accelerating Legacy String Kernels via Bounded Automata Learning, " geaccepteerd door de 2020 Architectural Support for Programming Languages ​​and Operating Systems (ASPLOS) Conference.