Hvordan Qualcomm gjorde store forbedringer i AI på Snapdragon 865

click fraud protection

Qualcomm gjorde store hopp i AI-ytelse med den nye Snapdragon 865 SoC. Vi analyserer endringene som Qualcomm gjorde for å akselerere maskinlæring.

Det virker som om vi ikke kan gå en dag uten å se "kunstig intelligens" i nyhetene, og denne siste uken var ikke noe unntak i liten grad takket være Snapdragon Tech Summit. Hvert år avslører Qualcomm overfloden av forbedringer den bringer til sin Hexagon DSP og Qualcomm AI Engine, et begrep de bruker for hele sin heterogene dataplattform - CPU, GPU og DSP - når de snakker om AI arbeidsbelastninger. For noen år siden virket Qualcomms insistering på å flytte samtalen bort fra tradisjonelle samtalepunkter, for eksempel år-til-år CPU-ytelsesforbedringer, litt rart. Men i 2019 og med Snapdragon 865 ser vi at heterogen databehandling faktisk er ved roret for deres mobile databehandling, som AI og maskinvareakselererte arbeidsbelastninger ser ut til å snike seg inn i en rekke brukstilfeller og applikasjoner, fra sosiale medier til hverdags tjenester.

Snapdragon 865 bringer Qualcomms 5. generasjons AI-motor, og med den kommer saftige forbedringer i ytelse og krafteffektivitet - men det er å forvente. I et hav av spesifikasjoner, ytelsestall, fancy tekniske termer og slitsomme markedsføringsord, er det lett å miste av syne hva disse forbedringene faktisk betyr. Hva beskriver de? Hvorfor er disse oppgraderingene så viktige for de som implementerer AI i appene sine i dag, og kanskje enda viktigere, for de som ønsker å gjøre det i fremtiden?

I denne artikkelen tar vi en tilgjengelig, men grundig omvisning i Qualcomm AI-motoren, og går gjennom historien, komponentene og oppgraderingene til Snapdragon 865, og viktigst av alt, Hvorfor eller hvordan hver av disse har bidratt til dagens smarttelefonopplevelse, fra morsomme filtre til digitale assistenter.

Hexagon DSP og Qualcomm AI Engine: Når merkevarebygging gjør en forskjell

Selv om jeg ikke kunne delta på denne ukens Snapdragon Tech Summit, har jeg likevel deltatt på annenhver siden 2015. Hvis du husker, at var året for det varme rotet som var Snapdragon 810, og derfor var journalister på Chelsea-loftet i New York City ivrige etter å finne ut hvordan Snapdragon 820 ville forløse selskapet. Og det var et flott brikkesett, greit: Det lovet sunne ytelsesforbedringer (uten struping) ved å gå tilbake til de tilpassede kjernene Qualcomm var kjent for da. Likevel husker jeg også en veldig subtil kunngjøring som i ettertid burde ha fått mer oppmerksomhet: andre generasjon Hexagon 680 DSP og dens enkeltinstruksjon, multiple data (SIMD) Hexagon Vector eXtensions, eller HVX. Kanskje hvis ingeniører ikke hadde navngitt funksjonen, ville den ha fått den oppmerksomheten den fortjente.

Denne koprosessoren lar den skalære DSP-enhetens maskinvaretråder få tilgang til HVX "kontekster" (registerfiler) for brede vektorbehandlingsmuligheter. Det muliggjorde avlasting av betydelige dataarbeidsbelastninger fra den strømkrevende CPU eller GPU til krafteffektiv DSP slik at bildebehandling og datasynsoppgaver vil kjøre med betydelig forbedret ytelse per milliwatt. De er perfekte for å bruke identiske operasjoner på sammenhengende vektorelementer (opprinnelig bare heltall), noe som gjør dem godt tilpasset datasynsarbeidsbelastninger. Vi har skrevet en dybdeartikkel om DSP og HVX tidligere, og bemerker at HVX-arkitekturen egner seg godt til parallellisering og, åpenbart, prosessering av store inngangsvektorer. På den tiden promoterte Qualcomm både DSP og HVX nesten utelukkende ved å beskrive forbedringene de ville gi datasyn arbeidsbelastninger som Harris hjørnedetektor og andre skyvevinduer metoder.

Det var ikke før bruken av dyp læring i forbrukermobilapplikasjoner at DSP, dens vektor prosesseringsenheter (og nå, en tensorakselerator) ville gifte seg med AI og nevrale nettverk, i bestemt. Men når jeg ser tilbake, gir det perfekt mening: Den digitale signalprosessor-arkitekturen (DSP), opprinnelig designet for å håndtere digitaliserte virkelige eller analoge signalinnganger, egner seg til mange av de samme arbeidsbelastningene som mange maskinlæringsalgoritmer og nevrale nettverk. For eksempel er DSP-er skreddersydd for filterkjerner, konvolusjon og korrelasjonsoperasjoner, 8-bits beregninger, massevis av lineær algebra (vektor- og matriseprodukter) og multiplisere-akkumuler (MAC) operasjoner, alle mest effektive når parallellisert. Et nevralt nettverks kjøretid er også svært avhengig av å multiplisere store vektorer, matriser og/eller tensorer, så det er bare naturlig at DSPs ytelsesfordeler pent oversettes til nevrale nettverksarkitekturer som vi vil. Vi vil kort gjenoppta dette emnet!

I de påfølgende årene fortsatte Qualcomm å understreke at de ikke tilbyr det bare brikkesett, men mobile plattformer, og at de ikke fokuserer bare på å forbedre bestemte komponenter, men levere "heterogen" databehandling. I 2017 ga de ut sin Snapdragon Neural Processing Engine SDK (for kjøretidsakselerasjon) på Qualcomm Developer Network, og tidlig i 2018 kunngjorde Qualcomm Artificial Intelligence Engine for å konsolidere deres flere AI-kompatible maskinvare (CPU, GPU, DSP) og programvarekomponenter under en enkelt Navn. Med denne nyttige nomenklaturen klarte de pent å annonsere sine AI-ytelsesforbedringer på både Snapdragon 855 og Snapdragon 865, som komfortabelt kan stave ut antall billioner operasjoner per sekund (TOPS) og år-til-år prosentandel forbedringer. Utnytter generasjonsforbedringene i CPU, GPU og DSP - som alle ser sin egen AI-fokuserte oppgraderinger - selskapet er i stand til å legge inn imponerende benchmarks mot konkurrenter, som vi vil gå gjennom om kort tid. Med selskapets nylige markedsføringstiltak og enhetlige, konsistente meldinger om heterogen databehandling, får AI-merkevaren deres endelig gjennomslag blant journalister og teknologientusiaster.

Avmystifiserende nevrale nettverk: En verdslig haug med lineær algebra

For å skille ut mye sjargong vi kommer over senere i artikkelen, trenger vi en kort grunning på hva et nevralt nettverk er og hva du trenger for å gjøre det raskere. Jeg vil veldig kort gå gjennom noen av de matematiske grunnlagene for nevrale nettverk, og unngå så mye sjargong og notasjon som mulig. Hensikten med denne delen er ganske enkelt å identifisere hva et nevralt nettverk gjør, grunnleggende: de aritmetiske operasjonene den utfører, snarere enn det teoretiske grunnlaget som rettferdiggjør nevnte operasjoner (det er langt mer komplisert!). Fortsett gjerne til neste seksjon hvis du vil hoppe rett til Qualcomm AI Engine-oppgraderingene.

"Vektormatematikk er grunnlaget for dyp læring." – Travis Lanier, Senior Director of Product Management i Qualcomm på Snapdragon Tech Summit 2017

Nedenfor finner du et veldig typisk feedforward fullt tilkoblet nevralt nettverksdiagram. I virkeligheten får diagrammet hele prosessen til å se litt mer komplisert ut enn det er (i det minste til du blir vant til det). Vi vil beregne et fremoverpass, som til syvende og sist er det et nettverk gjør når det produserer en slutning, et begrep vi også vil møte senere i artikkelen. For øyeblikket vil vi kun bekymre oss om maskinen og dens deler, med korte forklaringer av hver komponent.

Et nevralt nettverk består av sekvensielle lag, hver består av flere "nevroner" (avbildet som sirkler i diagrammet) forbundet med vekter (avbildet som linjer i diagrammet). Generelt sett er det tre typer lag: den inputlag, som tar råinngangen; skjulte lag, som beregner matematiske operasjoner fra forrige lag, og utgangslag, som gir de endelige spådommene. I dette tilfellet har vi bare ett skjult lag, med tre skjulte enheter. De input består av en vektor, matrise eller liste over tall med en bestemt dimensjon eller lengde. I eksemplet vil vi ha en todimensjonal inngang, la oss si [1.0, -1.0]. Her, den produksjon av nettverket består av et skalarnummer eller enkeltnummer (ikke en liste). Hver skjult enhet er knyttet til et sett med vekter og a bias term, vist ved siden av og under hver node. For å beregne vektet sum output av en enhet, multipliseres hver vekt med hver tilsvarende inngang, og deretter legges produktene sammen. Deretter vil vi ganske enkelt legge til skjevhetsbegrepet til den summen av produkter, noe som resulterer i utgangen av nevronet. For eksempel med våre innspill av [1.0,-1.0], vil den første skjulte enheten ha en utgang på 1.0*0.3 + (-1.0) * 0.2 + 1.0 = 1.1. Enkelt, ikke sant?

Det neste trinnet i diagrammet representerer en aktiveringsfunksjon, og er det som vil tillate oss å produsere utdatavektoren for hvert skjulte lag. I vårt tilfelle vil vi bruke det veldig populære og ekstremt enkle rettet lineær enhet eller ReLU, som vil ta et inndatanummer og gi ut enten (i) null, hvis dette tallet er negativt, eller null (ii) selve inngangstallet, hvis tallet er positivt. For eksempel, ReLU(-0,1) = 0, men ReLU(0,1) = 0,1. Følger eksemplet med våre innspill som det forplanter seg gjennom den første skjulte enheten, ville utgangen på 1.1 som vi beregnet, sendes til aktiveringsfunksjonen, noe som gir ReLU(1.1)=1.1. Utdatalaget, i dette eksemplet, vil fungere akkurat som en skjult enhet: det vil multiplisere de skjulte enhetenes utdata mot vektene, og deretter legge til bias-termen av 0.2. Den siste aktiveringsfunksjonen, den trinnfunksjon, vil gjøre positive innganger til 1 og negative verdier til 0. Når vi vet hvordan hver av operasjonene i nettverket fungerer, kan vi skrive ned hele beregningen av slutningen vår som følger:

Det er alt som er til vår feedforward-nevrale nettverksberegning. Som du kan se, er operasjoner består nesten utelukkende av produkter og summer av tall. Vår aktiveringsfunksjon ReLU(x) kan også implementeres veldig enkelt, for eksempel ved å ringe maks (x, 0), slik at den returnerer x når inngangen er større enn 0, men ellers returnerer den 0. Noter det trinn (x) kan beregnes på samme måte. Det finnes mange mer kompliserte aktiveringsfunksjoner, for eksempel sigmoidal funksjon eller hyperbolsk tangent, som involverer forskjellige interne beregninger og bedre egnet for forskjellige formål. En annen ting du allerede kan begynne å legge merke til er at vi også kan kjøre de tre skjulte enhetenes beregninger, og deres ReLU-applikasjoner, parallelt, siden verdiene deres ikke er nødvendige samtidig før vi beregner deres vektede sum ved utgangsnoden.

Men vi trenger ikke å stoppe der. Ovenfor kan du se den samme beregningen, men denne gangen representert med matrise- og vektormultiplikasjonsoperasjoner i stedet. For å komme frem til denne representasjonen "forsterker" vi inngangsvektoren vår ved å legge til en 1.0 til den (lysere fargetone), slik at når vi setter vår vekter og bias (lysere fargetone) i matrisen som vist ovenfor, gir den resulterende multiplikasjonen den samme skjulte enheten utganger. Deretter kan vi bruke ReLU på utgangsvektoren, elementmessig, og deretter "forsterke" ReLU-utgangen for å multiplisere den med vektene og skjevheten til utdatalaget vårt. Denne representasjonen forenkler notasjon i stor grad, ettersom parametrene (vekter og skjevheter) til et helt skjult lag kan legges under en enkelt variabel. Men viktigst for oss, det gjør det klart det de indre beregningene til nettverket er i hovedsak matrise- og vektormultiplikasjon eller punktprodukter. Gitt hvordan størrelsen på disse vektorene og matrisene skalerer med dimensjonaliteten til inngangene våre og antall parametere i nettverket vårt, vil mesteparten av kjøretiden bli brukt på denne typen beregninger. En haug med lineær algebra!

Vårt lekeeksempel er selvfølgelig veldig begrenset i omfang. I praksis kan moderne dyplæringsmodeller ha titalls om ikke hundrevis av skjulte lag, og millioner av tilhørende parametere. I stedet for vårt todimensjonale vektorinndataeksempel, kan de ta inn vektorer med tusenvis av oppføringer, i en rekke former, for eksempel matriser (som enkanalsbilder) eller tensorer (tre-kanals RGB Bilder). Det er heller ingenting som hindrer vår matriserepresentasjon fra å ta inn flere inngangsvektorer samtidig, ved å legge til rader til vår opprinnelige inngang. Nevrale nettverk kan også "kables" annerledes enn vårt feedforward-nevrale nettverk, eller utføre andre aktiveringsfunksjoner. Det er en enorm dyrehage av nettverksarkitekturer og teknikker, men til slutt, de for det meste bryte ned til de samme parallelle aritmetiske operasjonene vi finner i leketøyseksemplet vårt, bare i mye større skala.

Visuelt eksempel på konvolusjonslag som opererer på en tensor. (Bildekreditt: Mot datavitenskap)

For eksempel den populære konvolusjonelle nevrale nettverk (CNN) som du sannsynligvis har lest om, er ikke "fullstendig tilkoblet" som vårt falske nettverk. "Vektene" eller parametrene til dens skjulte konvolusjonslag kan tenkes på som et slags filter, et skyvevindu som brukes sekvensielt på små flekker av en inngang som vist ovenfor -- denne "konvolusjonen" er egentlig bare et glidende punktprodukt! Denne prosedyren resulterer i det som ofte kalles en funksjonskart. Sammenslåing av lag reduserer størrelsen på et input eller et konvolusjonslags utdata, ved å beregne den maksimale eller gjennomsnittlige verdien av små flekker av bildet. Resten av nettverket består vanligvis av fullt tilkoblede lag, som de i vårt eksempel, og aktiveringsfunksjoner som ReLU. Dette brukes ofte for funksjonsekstraksjon i bilder der tidlige konvolusjonslags funksjonskart kan "oppdage" mønstre som linjer eller kanter, og senere lag kan oppdage mer kompliserte funksjoner som ansikter eller komplekse former.

Alt som er sagt er strengt begrenset til slutninger, eller evaluere et nevralt nettverk etter at dets parametere er funnet gjennom opplæring som er en mye mer komplisert prosedyre. Og igjen, vi har ekskludert mange forklaringer. I virkeligheten er hver av nettverkets komponenter inkludert for et formål. For eksempel kan de av dere som har studert lineær algebra lett observere det uten ikke-lineære aktiveringsfunksjoner, forenkler nettverket vårt til en lineær modell med svært begrenset prediksjon kapasitet.

En oppgradert AI-motor på Snapdragon 865 - En oppsummering av forbedringer

Med denne praktiske forståelsen av komponentene i et nevralt nettverk og deres matematiske operasjoner, kan vi begynne å forstå nøyaktig hvorfor maskinvareakselerasjon er så viktig. I den siste delen kan vi observere at parallellisering er avgjørende for å få fart på nettverket gitt det lar oss for eksempel beregne flere parallelle prikkprodukter som tilsvarer hvert nevron aktivering. Hvert av disse punktproduktene består i seg selv av multiplikasjons-add-operasjoner på tall, vanligvis med 8-biters presisjon når det gjelder mobilapplikasjoner, som må skje så raskt som mulig. AI-motoren tilbyr ulike komponenter for å avlaste disse oppgavene, avhengig av ytelsen og energieffektiviteten til utvikleren.

Et diagram av et CNN for det populære MNIST-datasettet, vist på scenen på årets Snapdragon Summit. Vektorbehandlingsenheten passer godt for de fullt sammenkoblede lagene, som i vårt falske eksempel. I mellomtiden håndterer tensorprosessoren konvolusjons- og poolingslagene som behandler flere glidninger kjerner parallelt, som i diagrammet ovenfor, og hvert konvolusjonslag kan gi ut mange separate funksjoner kart.

La oss først se på GPUen, som vi vanligvis snakker om i sammenheng med 3D-spill. Forbrukermarkedet for videospill har stimulert utviklingen innen grafikkbehandlingsmaskinvare i flere tiår, men hvorfor er GPUer så viktige for nevrale nettverk? Til å begynne med tygger de gjennom massive lister med 3D-koordinater til polygonhjørner på en gang for å holde styr på en verdenstilstand i spillet. GPUen må også utføre gigantiske matrisemultiplikasjonsoperasjoner for å konvertere (eller kartlegge) disse 3D koordinater til 2D-plan, koordinater på skjermen, og håndterer også fargeinformasjonen til piksler i parallell. For å toppe det hele tilbyr de høy minnebåndbredde for å håndtere de enorme minnebufferne for teksturbitmaps som er lagt over i spillets geometri. Dens fordeler i parallellisering, minnebåndbredde og resulterende lineære algebra-evner samsvarer med ytelseskravene til nevrale nettverk.

Adreno GPU-linjen har dermed en stor rolle å spille i Qualcomm AI Engine, og på scenen uttalte Qualcomm at denne oppdaterte komponenten i Snapdragon 865 muliggjør dobbelt så mange flyttallsevner og dobbelt så mange TOPS sammenlignet med forrige generasjon, noe som er overraskende gitt at de bare postet en 25% ytelsesøkning for grafikkgjengivelse. Fortsatt, for denne utgivelsen, kan selskapet skryte av en 50 % økning i antall aritmetiske logiske enheter (ALU), men som vanlig har de ikke avslørt GPU-frekvensene deres. Qualcomm listet også opp med blandet presisjon bruksanvisning, som er akkurat hva det høres ut som: forskjellig numerisk presisjon på tvers av operasjoner i en enkelt beregningsmetode.

Hexagon 698 DSP er der vi ser en stor del av ytelsesgevinstene som tilbys av Snapdragon 865. I år har selskapet ikke kommunisert forbedringer i deres DSPs vektorutvidelser (hvis ytelse ble firedoblet i fjorårets 855), og heller ikke deres skalarenheter. Imidlertid bemerker de at for denne blokkens Tensor Accelerator har de oppnådd fire ganger TOP-ene sammenlignet med versjonen introdusert i fjor i Hexagon 695 DSP, samtidig som den kan tilby 35 % bedre strømeffektivitet. Dette er en stor sak med tanke på utbredelsen av konvolusjonelle nevrale nettverksarkitekturer i moderne AI-brukstilfeller som spenner fra bildeobjektgjenkjenning til automatisk talegjenkjenning. Som forklart ovenfor, produserer konvolusjonsoperasjonen i disse nettverkene en 2D-array av matriseutganger for hvert filter, noe som betyr at når det er stablet sammen, er utgangen fra et konvolusjonslag en 3D-matrise eller tensor.

Qualcomm promoterte også deres "nye og unike" dyp læringsbåndbreddekomprimering teknikk, som tilsynelatende kan komprimere data tapsfritt med rundt 50 %, i sin tur flytte halvparten av dataene og frigjøre båndbredde for andre deler av brikkesettet. Det bør også spare strøm ved å redusere datagjennomstrømningen, selv om vi ikke fikk noen tall og det burde være en liten strømkostnad for å komprimere dataene også.

Når det gjelder båndbredde, støtter Snapdragon 865 LPDDR5 minne, noe som også vil være til fordel for AI-ytelsen ettersom det vil øke hastigheten som ressurser og inngangsdata overføres med. Utover maskinvare, Qualcomms nye AI Model Efficiency Toolkit gjør enkel modellkomprimering og resulterende strømbesparelser tilgjengelig for utviklere. Nevrale nettverk har ofte et stort antall «redundante» parametere; for eksempel kan de gjøre skjulte lag bredere enn de trenger å være. En av AI Toolkit-funksjonene som diskuteres på scenen er altså modell komprimering, med to av de siterte metodene som romlig singularverdidekomponering (SVD) og bayesiansk komprimering, begge av som effektivt beskjærer det nevrale nettverket ved å kvitte seg med redundante noder og justere modellstrukturen som nødvendig. Den andre modellkompresjonsteknikken som presenteres på scenen er relatert til kvantisering, og det innebærer å endre den numeriske presisjonen til vektparametere og aktiveringsnodeberegninger.

Den numeriske presisjonen til nevrale nettverksvekter refererer til om de numeriske verdiene som brukes til beregning er lagret, overført og behandlet som 64, 32, 16 (halvpresisjon) eller 8-bits verdier. Ved å bruke lavere numerisk presisjon (for eksempel INT8 versus FP32) reduseres samlet minnebruk og dataoverføringshastigheter, noe som gir høyere båndbredde og raskere slutninger. Mange av dagens dyplæringsapplikasjoner har byttet til 8-bits presisjonsmodeller for slutninger, noe som kan høres ut overraskende: ville ikke høyere numerisk nøyaktighet muliggjort mer "nøyaktige" spådommer i klassifisering eller regresjon oppgaver? Ikke nødvendigvis; høyere numerisk presisjon, spesielt under inferens, kan være bortkastet ettersom nevrale nettverk trenes til å takle støyende innganger eller små forstyrrelser gjennom treningen uansett, og feilen på den nedre bit-representasjonen av en gitt (FP) verdi er jevnt "tilfeldig" nok. På en måte behandles lavpresisjonen til beregningene av nettverket som en annen støykilde, og spådommene forblir brukbare. Bortsett fra heuristiske forklaringer, er det sannsynlig at du vil påløpe en nøyaktighetsstraff når du elendig kvantiserer en modell uten å ta hensyn til noen viktige hensyn, og det er derfor mye forskning går inn på Emne

Tilbake til Qualcomm AI Toolkit: Gjennom det tilbyr de datafri kvantisering, slik at modeller kan kvantiseres uten data eller parameter finjustering samtidig som man oppnår nesten original modellytelse på ulike oppgaver. I hovedsak tilpasser den vektparametere for kvantisering og korrigerer for skjevhetsfeilen som introduseres når du bytter til vekter med lavere presisjon. Gitt fordelene med kvantisering, vil automatisering av prosedyren under et API-kall forenkle modellproduksjon og distribusjon, og Qualcomm-krav mer enn fire ganger ytelsen per watt når du kjører den kvantiserte modellen.

Men igjen, dette er ikke sjokkerende: kvantiseringsmodeller kan tilby enorme båndbredde- og lagringsfordeler. Konvertering av en modell til INT8 gir deg ikke bare en 4x reduksjon i båndbredde, men også fordelen med raskere heltallsberegninger (avhengig av maskinvaren). Det er derfor en uklarhet at maskinvareakselererte tilnærminger til både kvantiseringen og den numeriske beregningen vil gi enorme ytelsesgevinster. På bloggen hans, for eksempel skrev Googles Pete Warden at et samarbeid mellom Qualcomm og Tensorflow-team gjør det mulig for 8-bits modeller å kjøre opp til syv ganger raskerepå HVX DSP enn på CPU. Det er vanskelig å overvurdere potensialet i lett-å-bruke kvantisering, spesielt gitt hvordan Qualcomm har fokusert på INT8-ytelse.

Snapdragon 865s ARM-baserte Kryo CPU er fortsatt en viktig komponent i AI-motoren. Selv om maskinvareakselerasjonen diskutert i avsnittene ovenfor er å foretrekke, noen ganger vi kan ikke unngå programmer som ikke utnytter disse blokkene på riktig måte, noe som resulterer i CPU falle tilbake. Tidligere hadde ARM introdusert spesifikke instruksjonssett rettet mot å akselerere matrise- og vektorbaserte beregninger. I ARMv7-prosessorer så vi introduksjonen av ARM NEON, en SIMD-arkitekturutvidelse som muliggjør DSP-lignende instruksjoner. Og med ARMv8.4-A mikroarkitekturen så vi introduksjonen av en instruksjon spesifikt for dot-produkter.

Alle disse publiserte ytelsesgevinstene er relatert til mange av arbeidsbelastningene vi beskrev i forrige seksjon, men det er også verdt å huske på at disse Snapdragon 865-oppgraderingene er bare det siste forbedringer i Qualcomms AI-egenskaper. I 2017 dokumenterte vi deres tredobling av AI-evner med Hexagon 685 DSP og andre brikkesettoppdateringer. I fjor introduserte de sin tensorakselerator, og integrert støtte for ikke-linearitetsfunksjoner (som den nevnte ReLU!) på maskinvarenivå. De doblet også antallet vektorakseleratorer og forbedret skalarbehandlingsenhetens ytelse med 20 %. Ved å pare alt dette med forbedringer på CPU-siden, som de raskere punktproduktoperasjonene med tillatelse fra ARM, og de ekstra ALU-ene i GPUen, får Qualcomm til slutt tredoblet rå AI-egenskaper også.

Praktiske gevinster og utvidede brukstilfeller

Alle disse oppgraderingene har ført til fem ganger så mange AI-evner på Snapdragon 865 sammenlignet med for bare to år siden, men kanskje viktigst, forbedringene kom også med bedre ytelse per milliwatt, en kritisk beregning for mobil enheter. På Snapdragon Summit 2019 ga Qualcomm oss noen få benchmarks for å sammenligne deres AI Engine med to konkurrenter på forskjellige klassifiseringsnettverk. Disse tallene ser ut til å være samlet inn ved hjelp av AIMark, en benchmarking-applikasjon på tvers av plattformer, som gjør det mulig å sammenligne med Apples A-serie og Huaweis HiSilicon-prosessorer. Qualcomm hevder at disse resultatene bruker hele AI-motoren, og vi må vente til mer grundig benchmarking for å skille ut effekten av hver komponent og bestemme hvordan disse testene var gjennomført. Indikerer for eksempel resultatene fra selskap B CPU-tilbakefall? Så vidt jeg er klar over, drar ikke AIMark nytte av Kirin 990s NPU på våre Mate 30 Pro-enheter, for eksempel. Men den støtter Snapdragon Neural Processing Engine, så den vil absolutt dra nytte av Qualcomm AI Engine; gitt det er intern testing, er det ikke eksplisitt klart om benchmarken bruker riktige biblioteker eller SDK for sine konkurrenter.

Det må også sies at Qualcomm effektivt sammenligner Snapdragon 865s AI-behandlingskapasitet med tidligere annonserte eller utgitte brikkesett. Det er svært sannsynlig at konkurrentene vil bringe lignende effektfulle ytelsesforbedringer i neste syklus, og hvis det er tilfellet, så ville Qualcomm bare holde kronen i rundt et halvt år fra det øyeblikket Snapdragon 865-enheter traff hyllene. Når det er sagt, er disse fortsatt en indikasjon på hva slags støt vi kan forvente fra Snapdragon 865. Qualcomm har generelt vært svært nøyaktig når de har kommunisert ytelsesforbedringer og benchmark-resultater for kommende utgivelser.

Alle nettverkene som presenteres i disse referansene klassifiserer bilder fra databaser som ImageNet, mottar dem som input og sender ut én av hundrevis av kategorier. Igjen, de er avhengige av de samme typene operasjoner som vi beskrev i den andre delen, selv om arkitekturen deres er mye mer kompliserte enn disse eksemplene, og de har blitt sett på som toppmoderne løsninger på publiseringstidspunktet. I de beste tilfellene gir deres nærmeste konkurrent mindre enn halvparten av antallet slutninger per sekund.

Når det gjelder strømforbruk, tilbød Qualcomm slutninger per watt-tall for å vise hvor mye AI-behandling som er mulig i en gitt mengde strøm. I de beste tilfellene (MobileNet SSD) kan Snapdragon AI Engine tilby dobbelt antall slutninger under samme kraftbudsjett.

Strøm er spesielt viktig for mobile enheter. Tenk for eksempel på et nevralt nettverksbasert Snapchat-filter. Realistisk sett trekker datasynsrørledningen ut ansiktsinformasjon og bruker en maske eller input transformasjon trenger bare å kjøre med en hastighet på 30 eller 60 fullføringer per sekund for å oppnå en væske erfaring. Økning av rå AI-ytelse vil gjøre det mulig for deg å ta høyere oppløsning og sende ut bedre filtre, men det kan Det er også ganske enkelt å foretrekke å nøye seg med HD-oppløsning for raskere opplastinger og redusere strømforbruket og termisk struping. I mange applikasjoner er "raskere" ikke nødvendigvis "bedre", og man får da høste fordelene av forbedret strømeffektivitet.

Under dag 2 av Snapdragon Summit tok Sr. Director of Engineering ved Snapchat Yurii Monastyrshyn scenen for å vise hvordan deres siste dyplæringsbaserte filtre blir kraftig akselerert av Hexagon Direct NN ved å bruke Hexagon 695 DSP på Snapdragon 865.

På toppen av det, ettersom utviklere får tilgang til enklere implementeringer av nevrale nettverk og flere applikasjoner begynner å bruke AI-teknikker, vil samtidig brukstilfeller ta mer av søkelyset ettersom smarttelefonen må håndtere flere parallelle AI-rørledninger på en gang (enten for en enkelt applikasjon som behandler inngangssignaler fra forskjellige kilder eller så mange applikasjoner som kjøres separat på enheten). Mens vi ser respektable energieffektivitetsgevinster på tvers av databehandlings-DSP, GPU og CPU, håndterer Qualcomm Sensing Hub alltid brukstilfeller for å lytte etter triggerord med svært lavt strømforbruk. Den gjør det mulig å overvåke lyd-, video- og sensorstrømmer ved under 1mA strøm, slik at enheten kan oppdage bestemte lydsignaler (som en baby som gråter), på toppen av de kjente digital assistent-nøkkelordene. På det notatet gjør Snapdragon 865 det mulig å oppdage ikke bare nøkkelordet, men også hvem som snakker det, for å identifisere en autorisert bruker og handle deretter.

Mer AI på Edge-enheter

Disse forbedringene kan til slutt oversettes til konkrete fordeler for brukeropplevelsen din. Tjenester som involverer oversettelse, gjenkjenning og merking av objekter, bruksforutsigelser eller vareanbefalinger, naturlig språkforståelse, taleparsing og så videre vil få fordelen av å operere raskere og forbruke mindre makt. Å ha et høyere beregningsbudsjett gjør det også mulig å lage nye brukstilfeller og opplevelser, og flytte prosesser som tidligere fant sted i skyen til enheten din. Mens AI som et begrep har blitt brukt på tvilsomme, villedende og til og med feilaktige måter tidligere (selv av OEM-er), mange av tjenestene dine du liker i dag, er til syvende og sist avhengige av maskinlæringsalgoritmer i en eller annen form en annen.

Men utover Qualcomm har andre brikkesettprodusenter raskt gjentatt og forbedret på denne fronten. For eksempel brakte 990 5G en 2+1 NPU-kjernedesign som resulterte i opptil 2,5 ganger ytelsen til Kirin 980, og det dobbelte av Apple A12. Da prosessoren ble annonsert, ble den vist å tilby opptil to ganger så mange bilder (slutninger) per sekund av Snapdragon 855 på INT8 MobileNet, som er vanskelig å sammenligne med resultatene levert av Qualcomm. Apple A13 Bionic, derimot, tilbød seg angivelig seks ganger raskere matrisemultiplikasjon i forhold til forgjengeren og forbedret sin åttekjerners nevrale motordesign. Vi må vente til vi kan teste Snapdragon 865 ordentlig på kommersielle enheter mot nåværende og fremtidige konkurrenter, men det er klart at konkurransen på dette området aldri forblir stille siden de tre selskapene har brukt massevis av ressurser på å forbedre AI opptreden.