AI at the Edge betyr ikke lenger nedtonet AI

Kilde node: 1579936

Et aspekt ved mottatt visdom på AI har vært at all innovasjon starter i de store maskinlærings-/treningsmotorene i skyen. Noe av den innovasjonen kan til slutt migrere i redusert/begrenset form til kanten. Til dels reflekterte dette nyheten i feltet. Kanskje også delvis reflekterte det behovet for ferdigpakkede en-størrelse-passer-mange løsninger for IoT-widgets. Der designere ønsket det smarte i produktene sine, men ikke var helt klare til å bli ML-designeksperter. Men nå tar disse designerne etter. De leser de samme pressemeldingene og forskningen som vi alle gjør, og det samme gjør konkurrentene deres. De ønsker å dra nytte av de samme fremskrittene, samtidig som de holder seg til makt- og kostnadsbegrensninger.

AI at the Edge betyr ikke lenger nedtonet AI

ansiktsgjenkjenning

AI-differensiering på kanten

Det handler om differensiering innenfor en akseptabel kostnads-/kraftramme. Det er vanskelig å få fra ferdigpakkede løsninger. Konkurrenter har tross alt tilgang til de samme løsningene. Det du virkelig vil ha er et sett med algoritmealternativer modellert i prosessoren som dedikerte akseleratorer klare til å brukes, med mulighet til å legge lag på din egen programvarebaserte verdiøkning. Du tror kanskje det ikke er mye du kan gjøre her, utenom noen admin og tuning. Tidene har endret seg. CEVA introduserte nylig deres NeuPro-M innebygde AI-prosessor som tillater optimalisering ved å bruke noen av de siste ML-fremskrittene, dypt inn i algoritmedesign.

OK, så mer kontroll over algoritmen, men til hvilket formål? Du ønsker å optimere ytelsen per watt, men standardverdien – TOPS/W – er for grov. Bildeapplikasjoner bør måles mot bilder per sekund (fps) per watt. For sikkerhetsapplikasjoner, for bilsikkerhet eller unngåelse av dronekollisjoner, er gjenkjenningstider per bilde mye mer relevante enn råoperasjoner per sekund. Så en plattform som NeuPro-M som kan levere opptil tusenvis av fps/W vil i prinsippet håndtere realistiske fps-hastigheter på 30-60 bilder per sekund ved svært lav effekt. Det er et virkelig fremskritt i forhold til tradisjonelle ferdigpakkede AI-løsninger.

Gjør det mulig

Ultimate algoritmer bygges ved å ringe inn funksjonene du har lest om, og starter med et bredt spekter av kvantiseringsalternativer. Det samme gjelder datatypediversitet i aktivering og vekter på tvers av en rekke bitstørrelser. Den nevrale multiplikatorenheten (NMU) støtter optimalt flere bitbreddealternativer for aktivering og vekter som 8×2 eller 16×4 og vil også støtte varianter som 8×10.

Prosessoren støtter Winograd Transforms eller effektive konvolusjoner, og gir opptil 2X ytelsesforsterkning og redusert kraft med begrenset presisjonsforringelse. Legg sparsity-motoren til modellen for opptil 4X akselerasjon avhengig av antallet nullverdier (enten i data eller vekter). Her støtter Neural Multiplier Unit også en rekke datatyper, fast fra 2×2 til 16×16, og flytende punkt (og Bfloat) fra 16×16 til 32×32.

Streaminglogikk gir muligheter for fast punktskalering, aktivering og pooling. Vektorprosessoren lar deg legge til dine egne tilpassede lag til modellen. "Så hva, alle støtter det", tenker du kanskje, men se nedenfor om gjennomstrømming. Det er også et sett med neste generasjons AI-funksjoner, inkludert synstransformatorer, 3D-konvolusjon, RNN-støtte og matrisedekomponering.

Mange algoritmealternativer, alle støttet av en nettverksoptimalisering til den innebygde løsningen din gjennom CDNN-rammeverket for å utnytte kraften til ML-algoritmene dine fullt ut. CDNN er en kombinasjon av en kompilator for nettverksavledningsgrafer og et dedikert PyTorch-tilleggsverktøy. Dette verktøyet vil beskjære modellen, støtter valgfritt modellkomprimering gjennom matrisedekomponering, og legger til kvantiseringsbevisst omopplæring.

Gjennomstrømningsoptimalisering

I de fleste AI-systemer kan noen av disse funksjonene håndteres i spesialiserte motorer, noe som krever at data blir avlastet og transformasjonen skal lastes tilbake når den er fullført. Det er mye ekstra ventetid (og kanskje kraftkompromisser), som fullstendig undergraver ytelsen i din ellers sterke modell. NeuPro-M eliminerer dette problemet ved å koble til alle disse akseleratorene direkte til en delt L1-cache. Opprettholde mye høyere båndbredde enn du finner i konvensjonelle akseleratorer.

Som et slående eksempel er vektorbehandlingsenheten, vanligvis brukt til å definere tilpassede lag, på samme nivå som de andre akseleratorene. Algoritmene dine implementert i VPU drar nytte av den samme akselerasjonen som resten av modellen. Igjen, ingen avlasting og omlasting er nødvendig for å akselerere tilpassede lag. I tillegg kan du ha opptil 8 av disse NPM-motorene (alle akseleratorene, pluss NPM L1-cachen). NeuPro-M tilbyr også et betydelig nivå av programvarekontrollert båndbreddeoptimalisering mellom L2-cachen og L1-cachene, optimaliserer rammehåndtering og minimerer behovet for DDR-tilgang.

Naturligvis vil NeuPro-M også minimere data- og vekttrafikk. For data deler akseleratorer den samme L1-cachen. En vertsprosessor kan kommunisere data direkte med NeuPro-M L2, noe som igjen reduserer behovet for DDR-overføringer. NeuPro-M komprimerer og dekomprimerer vekter på brikken ved overføring med DDR-minne. Det kan gjøre det samme med aktiveringer.

Beviset i fps/W-akselerasjon

CEVA kjørte standard benchmarks ved å bruke en kombinasjon av algoritmer modellert i akseleratorene, fra native gjennom Winograd, til Winograd+Sparsity, til Winograd+Sparsity+4×4. Begge benchmarks viste ytelsesforbedringer opptil 3X, med strøm (fps/W) med rundt 5X for en ISP NN. NeuPro-M-løsningen ga mindre areal, en 4X ytelse, 1/3 av kraften, sammenlignet med deres tidligere generasjon NeuPro-S.

Det er en trend jeg ser mer generelt for å få den ultimate ytelsen ved å kombinere flere algoritmer. Det er det CEVA nå har gjort mulig med denne plattformen. Du kan lese mer HER.

Del dette innlegget via: Kilde: https://semiwiki.com/artificial-intelligence/306655-ai-at-the-edge-no-longer-means-dumbed-down-ai/

Tidstempel:

Mer fra Semiwiki