En intressant tid för FPGA
Smarta bilar och smarta robotar kräver nya, smartare och framför allt strömsnålare processorarkitekturer. Kampen står nu mellan programmerbar logik, anpassade signalprocessorer, grafikprocessorer och helt nya arkitekturer. Den snabba utvecklingen på AI-sidan (artificiell intelligens) gör att FPGAerna har en hygglig chans att ta en ordentlig bit av kakan de närmaste åren.
Xilinx satsar på mjukvara
Men då gäller det förstås att FPGA-tillverkarna gör det bra mycket enklare att använda programmerbar logik. AI-utvecklarna verkar inte vara ett dugg intresserade av att lära sig konstruera på grindnivå och de är måttligt imponerade av att numera kunna använda C stället för VHDL/Verilog. De kräver mycket mer.
Två populära plattformar för visionsbaserad AI verkar vara OpenVX från Khronos Group och Caffe från Berkeley Vision and Learning Center. I bägge fallen handlar det om öppna plattformar, där utvecklarna enkelt kan välja mellan att implementera resultatet på CPU eller GPU. Med sin nya reVISION-stack gör nu Xilinx det möjligt att addera FPGA till implementeringsvalen.
Smart
Det här är naturligtvis lättare sagt än gjort. Xilinx måste ha pumpat in mycket stora resurser i mjukvaruprojektet. Men det är samtidigt svårt att se någon annan väg som kan lyckas på bred front. Intresset för visionsbaserad AI har exploderat på universitet och forskningsinstitut, men samma sak gäller inte hårdvarukonstruktion.
Nya arkitekturer
Utvecklingsingenjörerna och forskarna arbetar på sina vanliga datorer och serveranläggningar. Vad finns det då som talar för helt nya hårdvaruarkitekturer?
Svaret är enkelt. Det går inte att stoppa in en arbetsstation eller serverhall i en personbil och det är inte acceptabelt att bildatorn drar mer energi än motorn. Dagens datorarkitekturer är alldeles för ineffektiva för de behov som finns.
CPU till GPU
Senast vi såg den här typen av tekniksprång handlade det om grafikprestanda för datorer (och senare smarta mobiltelefoner). Den utvecklingen började redan på åttiotalet med ”blitter”-chip som tog hand om och snabbade upp grundläggande grafikfunktioner. I slutet av nittiotalet hade tekniken vidareutvecklats till grafikprocessorer (GPUer) som kunde hantera 3D-grafik. Med massivt parallella GPUer har det blivit möjligt att nå grafikprestanda som var otänkbara med traditionella processorarkitekturer.
Därför var det också naturligt att använda generella GPUer för att klara andra typer av beräkningsintensiva och bildbaserade ”intelligenta” uppgifter. GPUerna fanns redan i många arbetsstationer och det är lätt och ganska billigt att lägga till ett eller flera extra GPU-kort.
Lägre energiförbrukning
Många ser nog de generella GPUerna som den naturliga hårdvaran för visionsbaserad AI i bilar eller robotar, men det finns problem. Om det krävs höga beräkningsprestanda är det svårt att hålla ner energiförbrukningen till en rimlig nivå.
Faktum är att energiförbrukningen är ett så stort problem att det överskuggar allt annat. Både hårdvara, arkitektur och mjukvara måste optimeras för att spara energi och det gör man bland annat genom att dynamiskt variera beräkningarnas precision beroende på kraven. Det är också viktigt att undvika snabb dataöverföring mellan komponenter, inte minst snabb extern minneshantering.
Flytande arkitektur
FPGA-tekniken har flera intressanta fördelar i det här sammanhanget. Framför allt går det att experimentera med nya och optimerade arkitekturer utan att behöva ta årslånga omvägar via halvledarfabrikerna. Det är till och med fullt möjligt att ladda ner helt nya arkitekturer i befintliga produkter.
Det finns också fördelar som beror på att FPGA-tekniken så länge använts i telekomsammanhang. Moderna FPGAer har ofta mycket breda och snabba interna kommunikationsvägar och ganska stora mängder internt minne. På det sättet är det möjligt att undvika en hel del extern minnesaccess. Att kommunicera snabbt på ett chip är ”billigt”, men extern kommunikation är ”dyrt”.
Som det ser ut idag blir en FPGA-lösning för fordon ofta betydligt effektivare än en lösning baserad på GPUer eller de tidiga specialkomponenterna (GoogleNet). Data från Xilinx visar ganska många gångers skillnad i energiförbrukning och en femtedel så lång fördröjning innan bromsning. Mycket beror just på att alla delar samlas i ett chip.
ASSP
Moderna FPGA-kretsar är förvånansvärt snabba och strömsnåla och så länge man kan skapa en mer optimerad arkitektur än vad som finns i generella komponenter står sig FPGAerna bra. Problemet kommer då man försöker göra exakt samma sak i en FPGA som i en dedicerad ASIC eller ASSP. Då har inte FPGA-tekniken mycket att komma med.
Men så länge ”allt flyter” har företag som Xilinx stora möjligheter att tjäna pengar. Att tillverka standardkomponenter eller ASIC-kretsar med nya arkitekturer är alltid en risk och tiden från konstruktionsstart till serieproduktion är lång. Risken är stor att det inte räcker med mjukvaruuppgraderingar för att klara uppkomna problem.
En konstruktion baserad på FPGA har mycket större potential för uppgradering, eftersom både hårdvara och mjukvara kan förändras. En bil kan faktiskt få en helt ny elektronik ”över natten”.
Med tiden lär väl tekniken för självkörande bilar mogna och mycket av hårdvaran landar säkert i avancerade standardkomponenter. Men fram tills dess finns ett stort och öppet fönster för teknik som går att konfigurera om dynamiskt. FPGA-tekniken kan nog se fram emot många goda år. Men det kommer förstås att kräva fortsatta investeringar för att gömma hårdvaran. Att försöka lära programmerare FPGA-konstruktion är inget enkelt projekt.
Filed under: Göte Fagerfjäll