Processor för djupinlärning
En djupinlärningsprocessor ( DLP ), eller en djupinlärningsaccelerator , är en elektronisk krets designad för djupinlärningsalgoritmer , vanligtvis med separat dataminne och dedikerad instruktionsuppsättningsarkitektur . Processorer för djupinlärning sträcker sig från mobila enheter, som neurala bearbetningsenheter (NPU) i Huawei- mobiltelefoner, till molnservrar som t.ex. tensorbehandlingsenheter (TPU) i Google Cloud Platform .
Målet med DLP:er är att ge högre effektivitet och prestanda för algoritmer för djupinlärning än vad allmänna centralprocessorer (CPU) och grafikprocessorer ( GPU) skulle göra. De flesta DLP:er använder ett stort antal datorkomponenter för att utnyttja parallellitet på hög datanivå, en relativt större buffert/minne på chipet för att utnyttja mönstren för återanvändning av data och begränsade databreddsoperatörer för felresiliens vid djupinlärning. Deep learning-processorer skiljer sig från AI-acceleratorer genom att de är specialiserade för att köra inlärningsalgoritmer, medan AI-acceleratorer vanligtvis är mer specialiserade för slutledning. De två termerna (DLP vs AI-accelerator) används dock inte rigoröst och det finns ofta överlappning mellan de två.
Historia
Användningen av CPU:er/GPU:er
I början användes allmänna processorer för att utföra algoritmer för djupinlärning. Senare introduceras GPU:er till domänen för djupinlärning. Till exempel, 2012, antog Alex Krizhevsky två GPU:er för att träna ett nätverk för djupinlärning, dvs AlexNet, som vann mästaren i ISLVRC-2012-tävlingen. När intresset för algoritmer för djupinlärning och DLP fortsätter att öka, börjar GPU-tillverkare lägga till funktioner för djupinlärning i både hårdvara (t.ex. INT8-operatörer) och mjukvara (t.ex. cuDNN Library). Till exempel släppte Nvidia till och med Turing Tensor Core – en DLP – för att påskynda bearbetningen av djup inlärning.
Den första DLP
För att ge högre effektivitet i prestanda och energi börjar domänspecifik design dra till sig stor uppmärksamhet. År 2014, Chen et al. föreslog den första DLP i världen, DianNao (kinesiska för "elektrisk hjärna"), för att accelerera speciellt djupa neurala nätverk. DianNao ger 452 Gop/s toppprestanda (av nyckeloperationer i djupa neurala nätverk) endast i ett litet fotavtryck på 3,02 mm2 och 485 mW. Senare föreslås efterträdarna (DaDianNao, ShiDianNao, PuDianNao) av samma grupp, som bildar DianNao-familjen
De blommande DLP:erna
Inspirerad från pionjärarbetet hos DianNao Family, föreslås många DLP:er i både akademin och industrin med design optimerad för att utnyttja funktionerna i djupa neurala nätverk för hög effektivitet. Endast vid ISCA 2016 handlar tre sessioner, 15 % (!) av de accepterade artiklarna, alla arkitekturdesigner om djupt lärande. Sådana ansträngningar inkluderar Eyeriss (MIT), EIE (Stanford), Minerva (Harvard), Stripes (University of Toronto) inom akademin och TPU (Google), MLU (Cambricon) inom industrin. Vi listade flera representativa verk i tabell 1.
Tabell 1. Typiska DLP:er | |||||||
---|---|---|---|---|---|---|---|
År | DLP:er | Institution | Typ | Beräkning | Minneshierarki | Kontrollera | Topprestation |
2014 | DianNao | IKT, CAS | digital | vektor MAC | scratchpad | VLIW | 452 Gops (16-bitars) |
DaDianNao | IKT, CAS | digital | vektor MAC | scratchpad | VLIW | 5.58 Toppar (16-bitars) | |
2015 | ShiDianNao | IKT, CAS | digital | skalära MAC | scratchpad | VLIW | 194 Gops (16-bitars) |
PuDianNao | IKT, CAS | digital | vektor MAC | scratchpad | VLIW | 1 056 Gops (16-bitars) | |
2016 | DnnWeaver | Georgia Tech | digital | Vektor MAC | scratchpad | - | - |
EIE | Stanford | digital | skalära MAC | scratchpad | - | 102 Gops (16-bitars) | |
Eyeriss | MIT | digital | skalära MAC | scratchpad | - | 67.2 Gops (16-bitars) | |
främsta | UCSB | hybrid | Process-in-Memory | ReRAM | - | - | |
2017 | TPU | digital | skalära MAC | scratchpad | CISC | 92 toppar (8-bitars) | |
PipeLayer | U i Pittsburgh | hybrid | Process-in-Memory | ReRAM | - | ||
FlexFlow | IKT, CAS | digital | skalära MAC | scratchpad | - | 420 Gops () | |
2018 | MAERI | Georgia Tech | digital | skalära MAC | scratchpad | - | |
PermDNN | City University of New York | digital | vektor MAC | scratchpad | - | 614.4 Gops (16-bitars) | |
2019 | FPSA | Tsinghua | hybrid | Process-in-Memory | ReRAM | - | |
Cambricon-F | IKT, CAS | digital | vektor MAC | scratchpad | FISA | 14,9 toppar (F1, 16-bitars) 956 Tops (F100, 16-bitars) |
DLP-arkitektur
Med den snabba utvecklingen av algoritmer för djupinlärning och DLP:er har många arkitekturer utforskats. Grovt sett kan DLP klassificeras i tre kategorier baserat på deras implementering: digitala kretsar, analoga kretsar och hybridkretsar. Eftersom de rena analoga DLP:erna sällan ses, introducerar vi de digitala DLP:erna och hybrid-DLP:erna.
Digitala DLP:er
Huvudkomponenterna i DLPs arkitektur inkluderar vanligtvis en beräkningskomponent, minneshierarkin på chipet och kontrolllogiken som hanterar datakommunikationen och beräkningsflödena.
När det gäller beräkningskomponenten, eftersom de flesta operationer inom djupinlärning kan aggregeras till vektoroperationer, är de vanligaste sätten att bygga beräkningskomponenter i digitala DLP:er den MAC -baserade (multiplikator-ackumulering) organisationen, antingen med vektor-MAC:er eller skalära MAC:er. Snarare än SIMD eller SIMT i allmänna bearbetningsenheter, är djupinlärningsdomänspecifik parallellitet bättre utforskad på dessa MAC-baserade organisationer. När det gäller minneshierarkin, eftersom algoritmer för djupinlärning kräver hög bandbredd för att förse beräkningskomponenten med tillräcklig data, använder DLP:er vanligtvis en relativt större storlek (tiotals kilobyte eller flera megabyte) på chipet buffert men med dedikerad on-chip dataåteranvändningsstrategi och datautbytesstrategi för att lindra bördan för minnesbandbredd. Till exempel kräver DianNao, 16 16-tums vektor-MAC, 16 × 16 × 2 = 512 16-bitars data, dvs. nästan 1024 GB/s bandbreddskrav mellan beräkningskomponenter och buffertar. Med återanvändning på chip minskas sådana bandbreddskrav drastiskt. Istället för den allmänt använda cachen i allmänna bearbetningsenheter använder DLP:er alltid scratchpad-minne eftersom det skulle kunna ge högre möjligheter till återanvändning av data genom att utnyttja det relativt regelbundna dataåtkomstmönstret i algoritmer för djupinlärning. När det gäller kontrolllogiken, när algoritmerna för djupinlärning fortsätter att utvecklas i en dramatisk hastighet, börjar DLP:er att utnyttja dedikerad ISA (instruktionsuppsättningsarkitektur) för att flexibelt stödja djupinlärningsdomänen. Till en början använde DianNao en instruktionsuppsättning av VLIW-stil där varje instruktion kunde avsluta ett lager i en DNN. Cambricon introducerar den första domänspecifika ISA för djupinlärning, som skulle kunna stödja mer än tio olika algoritmer för djupinlärning. TPU avslöjar också fem viktiga instruktioner från ISA-liknande CISC.
Hybrid DLP
Hybrid-DLP:er uppstår för DNN-inferens och träningsacceleration på grund av deras höga effektivitet. Processing-in-memory (PIM)-arkitekturer är en av de viktigaste typerna av hybrid DLP. Det viktigaste designkonceptet för PIM är att överbrygga klyftan mellan datoranvändning och minne, med följande sätt: 1) Flytta beräkningskomponenter till minnesceller, kontroller eller minneschips för att lindra problemet med minnesväggen. Sådana arkitekturer förkortar datavägarna avsevärt och utnyttjar mycket högre intern bandbredd, vilket resulterar i attraktiva prestandaförbättringar. 2) Bygg högeffektiva DNN-motorer genom att använda beräkningsenheter. Under 2013 demonstrerade HP Lab den häpnadsväckande förmågan att använda ReRAM-tvärstångsstrukturen för datoranvändning. Inspirerande av detta arbete föreslås ett enormt arbete för att utforska den nya arkitekturen och systemdesignen baserad på ReRAM, fasförändringsminne, etc.
GPU och FPGA
Trots DLP:er används GPU:er och FPGA:er också som acceleratorer för att påskynda exekveringen av algoritmer för djupinlärning. Summit, en superdator från IBM för Oak Ridge National Laboratory, innehåller till exempel 27 648 Nvidia Tesla V100-kort, som kan användas för att accelerera algoritmer för djupinlärning. Microsoft bygger sin plattform för djupinlärning med hjälp av FPGA:er i sin Azure för att stödja djupinlärningstjänster i realtid. I Tabell 2 jämför vi DLP:er mot GPU:er och FPGA:er när det gäller mål, prestanda, energieffektivitet och flexibilitet.
Mål | Prestanda | Energieffektivitet | Flexibilitet | |
---|---|---|---|---|
DLP:er | Djup lärning | hög | hög | domänspecifika |
FPGA:er | Allt | låg | måttlig | allmän |
GPU:er | matrisberäkning | måttlig | låg | matrisapplikationer |
Atomtunna halvledare för djupinlärning
Atomtunna halvledare anses lovande för energieffektiv hårdvara för djupinlärning där samma grundläggande enhetsstruktur används för både logikoperationer och datalagring. År 2020, Marega et al. publicerade experiment med ett aktivt kanalmaterial med stor area för utveckling av logik-i-minne-enheter och kretsar baserade på flytande grind- fälteffekttransistorer (FGFET). De använder tvådimensionella material som halvledande molybdendisulfid för att exakt ställa in FGFETs som byggstenar där logiska operationer kan utföras med minneselementen.
Integrerad fotonisk tensorkärna
År 2021, J. Feldmann et al. föreslagit en integrerad fotonisk hårdvaruaccelerator för parallell faltningsbehandling. Författarna identifierar två viktiga fördelar med integrerad fotonik jämfört med dess elektroniska motsvarigheter: (1) massivt parallell dataöverföring genom våglängdsmultiplexering i samband med frekvenskammar , och (2) extremt höga datamodulationshastigheter . Deras system kan utföra biljoner multiplicerat-ackumuleringsoperationer per sekund, vilket indikerar potentialen hos integrerad fotonik i datatunga AI-applikationer.
Riktmärken
Benchmarking har länge varit grunden för att designa nya hårdvaruarkitekturer, där både arkitekter och praktiker kan jämföra olika arkitekturer, identifiera deras flaskhalsar och utföra motsvarande system/arkitektonisk optimering. Tabell 3 listar flera typiska riktmärken för DLP:er, från år 2012 i tidsordning.
År | NN Benchmark | Tillhörigheter | # av mikrobenchmarks | Antal komponentriktmärken | Antal applikationsriktmärken |
---|---|---|---|---|---|
2012 | BenchNN | IKT, CAS | N/A | 12 | N/A |
2016 | Famn | Harvard | N/A | 8 | N/A |
2017 | BänkIP | IKT, CAS | 12 | 11 | N/A |
2017 | DAWNBench | Stanford | 8 | N/A | N/A |
2017 | DeepBench | Baidu | 4 | N/A | N/A |
2018 | MLPerf | Harvard, Intel och Google, etc. | N/A | 7 | N/A |
2019 | AIBench | IKT, CAS och Alibaba, etc. | 12 | 16 | 2 |
2019 | NNBench-X | UCSB | N/A | 10 | N/A |