Virksomheder som Google, Amazon, og Intel har bredt taget forskellige slags hardwareacceleratorer i deres cloud computing-pipelines, men mange programmer kan stadig ikke udnytte dem fuldt ud. Kredit:University of Michigan
En ny teknik udviklet af forskere ved University of Michigan kunne muliggøre en bredere anvendelse af post-Moore's Law computing-komponenter gennem automatisk kodeoversættelse. Systemet, kaldet AutomataSynth, giver softwareingeniører mulighed for at udnytte kraften i hardwareacceleratorer som FPGA'er uden specialiseret programmeringsviden eller behov for at omskrive gamle, CPU-centreret kode.
Med Moores lov nærmer sig sin afslutning, virksomheder og designere er afhængige af en række hardwareteknikker for at omgå det faldende afkast fra nye CPU'er. Blandt de mest levedygtige kortsigtede kandidater har været hardwareacceleratorer som field-programmable gate arrays (FPGA'er), som kan dedikeres til hurtigt at udføre særlige fælles funktioner og eliminere flaskehalse i større applikationer.
Mens deres adoption af virksomheder som Microsoft og Amazon Web Services allerede er godt i gang, FPGA'er er begrænset i deres brug af programmeringskrav, der er fremmede for mange softwareudviklere. Disse krav begrænser også deres brug på allerede eksisterende ældre software, som typisk blev skrevet til at arbejde specifikt med CPU'er.
De fleste programmer, der bruges i dag, skal omskrives fuldstændigt på et meget lavt niveau for at høste fordelene ved hardwareacceleration. På grund af dette, komponenterne bliver installeret hurtigere, end de rent faktisk bliver brugt.
"Virksomheder tager skridt til at forsøge at gøre [FPGA'er] mere tilgængelige for folk, " siger Kevin Angstadt, en ph.d. kandidat, der leder projektet, "men når det kommer til at skrive nye programmer, processen er stadig meget primitiv."
Holdet, som omfatter Profs. Westley Weimer og Jean-Baptiste Jeannin, forsøgte at bryde igennem disse adoptionsbarrierer ved automatisk at omskrive visse lavniveaufunktioner, der bruges af mange større applikationer. Implementeret i skala, dette ville betyde, at udviklere kunne gøre fuld brug af FPGA'er ved blot at tilføje et par linjer til deres eksisterende kode - ingen omskrivning nødvendig.
Angstadt sammenligner processen med tilpasningen af grafikbehandlingsenheder (GPU'er) til generel databehandling, oprindeligt aktiveret af NVIDIAs CUDA-platform. CUDA gav udviklere en grænseflade, hvorigennem de kunne udnytte en GPU's processorkraft på ikke-grafiske opgaver.
"Målet med dette arbejde var at gøre noget lignende med FPGA'er, " siger Angstadt. "Du kan ikke bare skrive på samme sprog, når du bruger dem, men vi kan give dig illusionen af at skrive på samme sprog."
For at opnå dette, forskerne gjorde brug af en teknik kaldet bundet automatlæring. Teknikken bruger en kombination af forskellige programanalyser til at producere en tilstandsmaskine, der både er ækvivalent i funktion med den originale kode og egnet til acceleration med FPGA'er. I det væsentlige, deres system læser koden den er givet, lærer kodens funktionalitet, og skriver en hardwarebeskrivelse af denne adfærd for at sende til acceleratoren.
I et papir præsenteret om arbejdet, de demonstrerede deres teknik på en klasse af funktioner, strengkerner, som håndterer søge- og sammenligningsoperationer udført på tekst.
"Hver gang du søger gennem et tekstdokument, du bruger en af de mest primitive former for disse strengkerner, " siger Angstadt. Men de kan være langt mere komplekse - funktionerne er grundlæggende for så forskellige applikationer som spam-detektion, genetisk analyse, produktanbefalinger, og partikelfysik.
At køre AutomataSynth på en benchmark-pakke af strengfunktioner fra den virkelige verden skrevet til at arbejde med CPU'er, holdet fandt ud af, at det var i stand til at lære fuldt ækvivalente hardwaredesigns i 72 % af tilfældene og tætte tilnærmelser i yderligere 11 %.
Anvendelse af denne teknik til andre klasser af funktioner forbliver et åbent problem for yderligere arbejde, men Angstadt er overbevist om, at det kan bruges bredt.
"Vores forskning viser, at selvom der findes mange slags funktioner ud over dem, vi understøtter, der er flere applikationer, end vi er klar over, der kan omskrives som strengkerner, " siger Angstadt. "Så vi er muligvis stadig i stand til at anvende lignende teknikker til at understøtte yderligere typer kode."
Hvis det lykkes, vi kunne se FPGA'er blive en standardkomponent til generel databehandling.
Forskerne præsenterede deres resultater i papiret "Accelerating Legacy String Kernels via Bounded Automata Learning, " accepteret af 2020 Architectural Support for Programming Languages and Operating Systems (ASPLOS)-konferencen.