AI at the Edge betyder inte längre nedsänkt AI

Källnod: 1579936

En aspekt av mottagen visdom om AI har varit att all innovation börjar i de stora maskininlärnings-/utbildningsmotorerna i molnet. En del av den innovationen kan så småningom migrera i en reducerad/begränsad form till kanten. Detta speglade delvis det nya inom området. Kanske också delvis speglade det behovet av färdigförpackade en-storlek-passar-många lösningar för IoT-widgets. Där designers ville ha det smarta i sina produkter men inte riktigt var redo att bli ML-designexperter. Men nu kommer dessa designers ikapp. De läser samma pressmeddelanden och forskning som vi alla gör, liksom deras konkurrenter. De vill dra fördel av samma framsteg, samtidigt som de håller sig till makt- och kostnadsbegränsningar.

AI at the Edge betyder inte längre nedsänkt AI

ansiktsigenkänning

AI-differentiering vid kanten

Allt handlar om differentiering inom ett acceptabelt kostnads-/effektomslag. Det är svårt att få från färdigförpackade lösningar. Konkurrenter har trots allt tillgång till samma lösningar. Vad du verkligen vill ha är en uppsättning algoritmalternativ modellerade i processorn som dedikerade acceleratorer redo att användas, med möjlighet att lägga på ditt eget mjukvarubaserade mervärde. Du kanske tror att det inte kan finnas så mycket du kan göra här, förutom en del admin och justering. Tiderna har förändrats. CEVA introducerade nyligen sin NeuPro-M inbäddade AI-processor som möjliggör optimering med några av de senaste ML-framstegen, djupt in i algoritmdesign.

OK, så mer kontroll över algoritmen, men i vilket syfte? Du vill optimera prestanda per watt, men standardmåttet – TOPS/W – är för grovt. Bildtillämpningar bör mätas mot bilder per sekund (fps) per watt. För säkerhetsapplikationer, för bilsäkerhet eller undvikande av drönarkollisioner, är igenkänningstider per bildruta mycket mer relevanta än obearbetade operationer per sekund. Så en plattform som NeuPro-M som kan leverera upp till tusentals fps/W i princip kommer att hantera realistiska fps-hastigheter på 30-60 bilder per sekund vid mycket låg effekt. Det är ett verkligt framsteg jämfört med traditionella färdigförpackade AI-lösningar.

Att göra det möjligt

Ultimata algoritmer byggs genom att slå in funktionerna du har läst om, med början med ett brett utbud av kvantiseringsalternativ. Detsamma gäller för mångfald av datatyper i aktivering och vikter över en rad bitstorlekar. Den neurala multiplikatorenheten (NMU) stöder optimalt flera bitbreddsalternativ för aktivering och vikter som 8×2 eller 16×4 och kommer även att stödja varianter som 8×10.

Processorn stöder Winograd Transforms eller effektiva faltningar, vilket ger upp till 2X prestandavinst och reducerad effekt med begränsad precisionsförsämring. Lägg till sparsity-motorn till modellen för upp till 4X acceleration beroende på mängden nollvärden (antingen i data eller vikter). Här stöder Neural Multiplier Unit också en rad datatyper, fixerade från 2×2 till 16×16, och flyttal (och Bfloat) från 16×16 till 32×32.

Streaminglogik ger alternativ för fast punktskalning, aktivering och pooling. Vektorprocessorn låter dig lägga till dina egna anpassade lager till modellen. "Så vad, alla stöder det", kan du tänka men se nedan om genomströmning. Det finns också en uppsättning nästa generations AI-funktioner inklusive visiontransformatorer, 3D-falsning, RNN-stöd och matrisupplösning.

Massor av algoritmalternativ, alla stöds av en nätverksoptimering till din inbäddade lösning genom CDNN-ramverket för att fullt ut utnyttja kraften i dina ML-algoritmer. CDNN är en kombination av en kompilator för nätverksavledningsgrafer och ett dedikerat PyTorch-tilläggsverktyg. Detta verktyg kommer att beskära modellen, stöder valfritt modellkomprimering genom matrisupplösning och lägger till kvantiseringsmedveten omträning.

Genomströmningsoptimering

I de flesta AI-system kan vissa av dessa funktioner hanteras i specialiserade motorer, vilket kräver att data laddas ur och omvandlingen laddas tillbaka när den är klar. Det är en hel del extra latens (och kanske kraftkompromisser), vilket helt undergräver prestandan i din annars starka modell. NeuPro-M eliminerar det problemet genom att ansluta alla dessa acceleratorer direkt till en delad L1-cache. Upprätthåller mycket högre bandbredd än du hittar i konventionella acceleratorer.

Som ett slående exempel är vektorbehandlingsenheten, som vanligtvis används för att definiera anpassade lager, på samma nivå som de andra acceleratorerna. Dina algoritmer implementerade i VPU drar nytta av samma acceleration som resten av modellen. Återigen, ingen avlastning och omladdning behövs för att accelerera anpassade lager. Dessutom kan du ha upp till 8 av dessa NPM-motorer (alla acceleratorer, plus NPM L1-cachen). NeuPro-M erbjuder också en betydande nivå av mjukvarustyrd bandbreddsoptimering mellan L2-cachen och L1-cachen, vilket optimerar ramhanteringen och minimerar behovet av DDR-åtkomst.

Naturligtvis kommer NeuPro-M också att minimera data- och vikttrafik. För data delar acceleratorer samma L1-cache. En värdprocessor kan kommunicera data direkt med NeuPro-M L2, vilket återigen minskar behovet av DDR-överföringar. NeuPro-M komprimerar och dekomprimerar vikter på chipet vid överföring med DDR-minne. Det kan göra samma sak med aktiveringar.

Beviset i fps/W acceleration

CEVA körde standardriktmärken med hjälp av en kombination av algoritmer modellerade i acceleratorerna, från ursprungligt genom Winograd, till Winograd+Sparsity, till Winograd+Sparsity+4×4. Båda riktmärkena visade prestandaförbättringar upp till 3X, med effekt (fps/W) med cirka 5X för en ISP NN. NeuPro-M-lösningen levererade mindre yta, en 4X-prestanda, 1/3 av effekten, jämfört med deras tidigare generation NeuPro-S.

Det finns en trend jag ser mer generellt att få den ultimata prestanda genom att kombinera flera algoritmer. Vilket är vad CEVA nu har gjort möjligt med denna plattform. Du kan läsa mer HÄR.

Dela det här inlägget via: Källa: https://semiwiki.com/artificial-intelligence/306655-ai-at-the-edge-no-longer-means-dumbed-down-ai/

Tidsstämpel:

Mer från Semiwiki