Abstract-Tack vare deras utmärkta prestationer på typiska artificiell intelligens problem, djupt neurala nätverk har dragit en hel del intresse på sistone. Detta sker dock på bekostnad av stora beräkningsbehov och hög energiförbrukning. Att dra nytta av hög precision till acceptabla hårdvarukostnader på dessa svåra problem är en utmaning. För att ta itu med det förespråkar vi användningen av ternära neurala nätverk (TNN) som, när de är ordentligt utbildade, kan nå resultat nära toppmoderna med hjälp av flyttal aritmetik. Vi presenterar en mycket mångsidig FPGA-vänlig arkitektur för TNN där vi kan variera både antalet bitar av inmatningsdata och graden av parallellism vid syntestid, vilket gör det möjligt att handla genomströmning för hårdvaruresurser och strömförbrukning. För att visa effektiviteten i vårt förslag, genomför vi högkomplexitet konvolutionella neurala nätverk på Xilinx Virtex-7 VC709 FPGA styrelse. Samtidigt som vi uppnår en bättre noggrannhet än jämförbara konstruktioner, kan vi rikta antingen hög genomströmning eller låg effekt. Vi mäter ett genomflöde på upp till 27 000 fps vid 7 W eller upp till 8.36 TMAC/s vid 13 W. Artificiella neurala nätverk (ANN) har haft en lång och komplicerad historia [1], men det finns nu en konsensus om att nätverk med många lager och många neuroner per lager uppnår de bästa resultaten på ett brett spektrum av artificiell intelligens uppgifter. För protokollet behöver en ANN utbildas i många fall av ett problem för att bestämma synapsvikter (även kallad inlärning) som senare används för att lösa en ny instans av samma problem (en process som kallas inferens). Tack vare framsteg inom integrationsteknik och datorarkitektur kan kompletta mjukvarulösningar för både lärande och inferens utföras med hög prestanda på processorer för allmänna ändamål och grafiska bearbetningsenheter. Emellertid, lösa problem som kluster eller klassificering har en hel del intresse på system som sträcker sig från servrar i datacenter till batteridrivna enheter, två typer av system där effekteffektivitet är nyckeln. För att uppnå bättre resultat på ständigt ökande datamängder har ANN blivit bredare och djupare, vilket lett till ett stort antal neuroner. Som en följd av detta behövs en hel del flyttal-punkt multiplikationer för att förverkliga multiplikation-ackumulera operationer som beräknar aktiveringarna av neuronerna. Till exempel, genomförandet av ConvNet [2], ett relativt klassiskt konvolutionella neurala nätverk för syntetisk syn, kräver 435 miljoner multiplikation-ackumulera för VGA-storlek bilder när man använder en 7 × 7 konvolution kärna. Vårt mål i denna uppsats är att  på institutet för ingenjörsvetenskap Univ. Grenoble Alpes visar att det är möjligt att designa djupa neurala nätverk (DNN) arkitekturer som har hög genomströmning och låg effekt samtidigt som man producerar slutresultat som är nära den senaste tekniken. Det finns två strategier för att sänka strömförbrukningen: begränsa mängden data att arbeta på genom att använda applikationsspecifik förbehandling och/eller utföra beräkningar med ett lågt antal bitar eller en liten uppsättning värden [3]. Den extrema lösningen är att binarisera alla synaptiska vikter och aktiveringar, som eliminerar multiplikationer en gång för alla, som föreslås av [4], [5]. Förlusten av precision i dessa tillvägagångssätt är dock ganska hög. I detta dokument föreslår vi en FPGA-arkitektur för ternära neurala nätverk som en avvägning mellan inferensnoggrannhet, maskinvaruresursutnyttjande och strömförbrukning. Det har varit många senaste arbeten som syftar till att bättre utnyttja hårdvara resurser för att genomföra DNN. Vi kan klassificera dessa verk i två huvudkategorier. Den första använder fortfarande flyttal aritmetik, men begränsar antalet möjliga värden till en delmängd. Bland representativa verk [3] presenteras en ASIC-arkitektur där de syftar till att kraftigt begränsa antalet och storleken på extern åtkomst till minnet. I detta syfte beskär de överflödiga anslutningar och delar vikter genom lämplig utbildning. Som en följd av detta fungerar deras design på glesa matriser och använder små index för att komma åt matriser av vikter. Det tillvägagångssätt som föreslås i [6] är något annorlunda: vid träningstid används endast specifika kombinationer av aktiverings- och viktvärden. De förkalkylerade multiplikationsresultaten lagras i uppslagstabeller. De använder ternära innehåll adresserbart minne (TCAM) för att säkerställa en snabb och låg effekt sökning, men är därför begränsade till ASIC. Den andra kategorin, den vi också följer, begränsar antalet bitar för vikt och/eller aktiveringsvärden. Metoden är inte ny, och [7] är till exempel ett tidigt papper som studerar kvaliteten på resultatet som en funktion av antalet bitar för att koda vikterna. Med hjälp av normal aritmetik medges det idag att användningen av 6 eller 7 bitar inte signifikant försämrar resultatet av slutsatsen [8]
Såvitt vi vet finns det inget tidigare arbete med FPGA-implementeringen av helt ternära CNN (dvs. där både vikter och aktiveringar är ternära), utan vårt eget tidigare arbete presenteras i Reference Ref.
Scalable high-performance architecture for convolutional ternary neural networks on FPGA
{'venue': '2017 27th International Conference on Field Programmable Logic and Applications (FPL)', 'journal': '2017 27th International Conference on Field Programmable Logic and Applications (FPL)', 'mag_field_of_study': ['Computer Science']}