Hvordan Qualcomm lavede store forbedringer i kunstig intelligens på Snapdragon 865

click fraud protection

Qualcomm lavede store spring i AI-ydeevne med den nye Snapdragon 865 SoC. Vi analyserer de ændringer, som Qualcomm har foretaget for at accelerere maskinlæring.

Det ser ud til, at vi ikke kan gå en dag uden at se "kunstig intelligens" i nyhederne, og denne sidste uge var ingen undtagelse i nogen ringe del takket være Snapdragon Tech Summit. Hvert år afslører Qualcomm den overflod af forbedringer, den bringer til sin Hexagon DSP og Qualcomm AI Engine, et udtryk, de bruger for hele deres heterogene computerplatform - CPU, GPU og DSP - når de taler om AI arbejdsbyrder. For et par år siden virkede Qualcomms insisteren på at flytte samtalen væk fra traditionelle talepunkter, såsom år-til-år CPU-ydeevneforbedringer, en smule underlig. Alligevel ser vi i 2019 og med Snapdragon 865, at heterogen computing faktisk er i spidsen for deres mobile computing push, da AI og hardwareaccelererede arbejdsbelastninger ser ud til at snige sig ind i en bred vifte af use cases og applikationer, fra sociale medier til hverdag tjenester.

Snapdragon 865 bringer Qualcomms 5. generation AI-motor, og med den kommer saftige forbedringer i ydeevne og strømeffektivitet - men det er forventeligt. I et hav af specifikationer, ydeevnetal, smarte tekniske termer og kedelige marketing-buzzwords er det nemt at miste overblikket over, hvad disse forbedringer rent faktisk betyder. Hvad beskriver de? Hvorfor er disse opgraderinger så meningsfulde for dem, der implementerer AI i deres apps i dag, og måske endnu vigtigere, for dem, der ønsker at gøre det i fremtiden?

I denne artikel vil vi tage en tilgængelig, men grundig rundvisning i Qualcomm AI Engine, der gennemgår dens historie, dens komponenter og Snapdragon 865's opgraderinger, og vigtigst af alt, hvorfor eller hvordan hver af disse har bidraget til nutidens smartphone-oplevelse, fra sjove filtre til digitale assistenter.

Hexagon DSP og Qualcomm AI Engine: Når branding gør en forskel

Selvom jeg ikke var i stand til at deltage i denne uges Snapdragon Tech Summit, har jeg ikke desto mindre deltaget i hver anden siden 2015. Hvis du husker, at var året for det varme rod, der var Snapdragon 810, og så journalister på Chelsea-loftet i New York City var ivrige efter at finde ud af, hvordan Snapdragon 820 ville forløse virksomheden. Og det var et fantastisk chipset, okay: Det lovede sunde præstationsforbedringer (uden nogen af ​​droslingerne) ved at gå tilbage til de dengang prøvede og ægte tilpassede kerner, Qualcomm var kendt for. Alligevel husker jeg også en meget subtil meddelelse, som set i bakspejlet burde have fået mere opmærksomhed: anden generation af Hexagon 680 DSP og dens enkeltinstruktion, multiple data (SIMD) Hexagon Vector eXtensions, eller HVX. Hvis ingeniører ikke havde navngivet funktionen, ville den måske have fået den opmærksomhed, den fortjente.

Denne coprocessor tillader den skalære DSP-enheds hardwaretråde at få adgang til HVX "kontekster" (registerfiler) for brede vektorbehandlingsmuligheder. Det muliggjorde aflæsning af betydelige computerarbejdsbelastninger fra den strømkrævende CPU eller GPU til strømbesparende DSP, så billedbehandlings- og computervisionsopgaver ville køre med væsentligt forbedret ydeevne per milliwatt. De er perfekte til at anvende identiske operationer på sammenhængende vektorelementer (oprindeligt kun heltal), hvilket gør dem velegnede til computervision-arbejdsbelastninger. Vi har tidligere skrevet en dybdegående artikel om DSP og HVX, og bemærker, at HVX-arkitekturen egner sig godt til parallelisering og naturligvis behandling af store inputvektorer. På det tidspunkt promoverede Qualcomm både DSP og HVX næsten udelukkende ved at beskrive de forbedringer, de ville bringe til computer vision arbejdsbelastninger såsom Harris hjørne detektor og andre glidende vinduer metoder.

Det var ikke før fremkomsten af ​​deep learning i forbrugermobilapplikationer, at DSP'en, dens vektor behandlingsenheder (og nu en tensoraccelerator) ville blive gift med AI og neurale netværk i særlig. Men når vi ser tilbage, giver det perfekt mening: Den digitale signalprocessor (DSP) arkitektur, oprindeligt designet til at håndtere digitaliseret virkelige eller analoge signalindgange, egner sig til mange af de samme arbejdsbelastninger som mange maskinlæringsalgoritmer og neurale netværk. For eksempel er DSP'er skræddersyet til filterkerner, foldnings- og korrelationsoperationer, 8-bit beregninger, et væld af lineær algebra (vektor- og matrixprodukter) og multiplicer-akkumuler (MAC) operationer, alle mest effektive, når paralleliseret. Et neuralt netværks runtime er også meget afhængig af at multiplicere store vektorer, matricer og/eller tensorer, så det er kun naturligt, at DSP'ens ydeevnefordele pænt oversættes til neurale netværksarkitekturer som godt. Vi vil kort gense dette emne!

I de efterfølgende år fortsatte Qualcomm med at understrege, at de ikke tilbyder det lige chipsæt, men mobile platforme, og at de ikke fokuserer lige på at forbedre bestemte komponenter, men levere "heterogen" beregning. I 2017 udgav de deres Snapdragon Neural Processing Engine SDK (til runtime acceleration) på Qualcomm Developer Network, og i begyndelsen af ​​2018 annoncerede Qualcomm Artificial Intelligence Engine for at konsolidere deres adskillige AI-kompatible hardware (CPU, GPU, DSP) og softwarekomponenter under en enkelt navn. Med denne nyttige nomenklatur var de i stand til pænt at reklamere for deres AI-ydeevneforbedringer på både Snapdragon 855 og Snapdragon 865, der komfortabelt er i stand til at angive antallet af billioner af operationer per sekund (TOPS) og år-til-år procentdel forbedringer. Udnyttelse af generationsforbedringerne i CPU, GPU og DSP - som alle ser deres egen AI-fokuserede opgraderinger - virksomheden er i stand til at poste imponerende benchmarks over for konkurrenter, som vi vil gennemgå inden længe. Med virksomhedens seneste marketingindsats og ensartede, konsekvente budskaber om heterogen databehandling, vinder deres AI-branding endelig indpas blandt journalister og teknologientusiaster.

Afmystificerende neurale netværk: En verdslig bunke lineær algebra

For at skille en masse jargon, vi støder på senere i artiklen, skal vi bruge en kort grundbog om hvad et neuralt netværk er og hvad du skal bruge for at gøre det hurtigere. Jeg vil meget kort gennemgå nogle af de matematiske grundlag for neurale netværk og undgå så meget jargon og notation som muligt. Formålet med dette afsnit er simpelthen at identificere, hvad et neuralt netværk gør, grundlæggende: de aritmetiske operationer den udfører snarere end det teoretiske grundlag, der retfærdiggør de nævnte operationer (det er langt mere kompliceret!). Fortsæt gerne til næste afsnit, hvis du vil springe direkte til Qualcomm AI Engine-opgraderingerne.

"Vektormatematik er grundlaget for dyb læring." – Travis Lanier, Senior Director of Product Management hos Qualcomm ved 2017 Snapdragon Tech Summit

Nedenfor finder du et meget typisk feedforward fuldt tilsluttet neuralt netværksdiagram. I virkeligheden får diagrammet hele processen til at se en smule mere kompliceret ud, end den er (i hvert fald indtil du vænner dig til det). Vi vil beregne et fremadgående pass, som i sidste ende er, hvad et netværk gør, når det producerer en slutning, et udtryk vi også vil støde på senere i artiklen. I øjeblikket vil vi kun beskæftige os med maskinen og dens dele, med korte forklaringer af hver komponent.

Et neuralt netværk består af sekventielle lag, der hver består af flere "neuroner" (afbildet som cirkler i diagrammet) forbundet med vægte (afbildet som linjer i diagrammet). Generelt er der tre slags lag: den inputlag, som tager det rå input; skjulte lag, som beregner matematiske operationer fra det forrige lag, og outputlag, som giver de endelige forudsigelser. I dette tilfælde har vi kun ét skjult lag med tre skjulte enheder. Det input består af en vektor, et array eller en liste over tal af en bestemt dimension eller længde. I eksemplet vil vi have et todimensionelt input, lad os sige [1.0, -1.0]. Her, den produktion af netværket består af et skalært eller enkelt tal (ikke en liste). Hver skjult enhed er forbundet med et sæt af vægte og en bias term, vist ved siden af ​​og under hver knude. For at beregne vægtet sum output af en enhed, ganges hver vægt med hvert tilsvarende input, og derefter lægges produkterne sammen. Derefter vil vi blot tilføje bias-termen til denne sum af produkter, hvilket resulterer i output fra neuronen. For eksempel med vores input af [1.0,-1.0], vil den første skjulte enhed have et output på 1.0*0.3 + (-1.0) * 0.2 + 1.0 = 1.1. Simpelt, ikke?

Det næste trin i diagrammet repræsenterer en aktiveringsfunktion, og er det, der vil tillade os at producere outputvektoren for hvert skjult lag. I vores tilfælde vil vi bruge det meget populære og ekstremt enkle ensrettet lineær enhed eller ReLU, som vil tage et inputtal og udlæse enten (i) nul, hvis dette tal er negativt, eller nul (ii) selve inputtallet, hvis tallet er positivt. For eksempel, ReLU(-0,1) = 0, men ReLU(0,1) = 0,1. Efter eksemplet med vores input som det forplanter sig gennem den første skjulte enhed ville output på 1.1, som vi beregnede, blive sendt til aktiveringsfunktionen, hvilket giver ReLU(1,1)=1,1. Outputlaget vil i dette eksempel fungere ligesom en skjult enhed: det vil multiplicere de skjulte enheders output med dets vægte og derefter tilføje dets bias term af 0.2. Den sidste aktiveringsfunktion, den trinfunktion, vil gøre positive input til 1 og negative værdier til 0. Ved at vide, hvordan hver af operationerne i netværket fungerer, kan vi nedskrive den komplette beregning af vores slutning som følger:

Det er alt, hvad der er til vores feedforward neurale netværksberegning. Som du kan se, er operationer består næsten udelukkende af produkter og summer af tal. Vores aktiveringsfunktion ReLU(x) kan også implementeres meget nemt, for eksempel ved blot at ringe maks. (x, 0), sådan at den returnerer x, når inputtet er større end 0, men ellers returnerer det 0. Noter det trin (x) kan beregnes på samme måde. Der findes mange mere komplicerede aktiveringsfunktioner, såsom sigmoidal funktion eller den hyperbolsk tangent, der involverer forskellige interne beregninger og er bedre egnet til forskellige formål. En anden ting, du allerede kan begynde at lægge mærke til, er, at vi også kan køre de tre skjulte enheders beregninger og deres ReLU-applikationer parallelt, da deres værdier ikke er nødvendige på samme tid, indtil vi beregner deres vægtede sum ved udgangsnoden.

Men vi behøver ikke at stoppe der. Ovenfor kan du se den samme beregning, men denne gang repræsenteret med matrix- og vektormultiplikationsoperationer i stedet. For at nå frem til denne repræsentation "forøger" vi vores inputvektor ved at tilføje en 1,0 til den (lysere nuance), sådan at når vi sætter vores vægte og vores bias (lysere nuance) i matrixen som vist ovenfor, giver den resulterende multiplikation den samme skjulte enhed udgange. Derefter kan vi anvende ReLU på outputvektoren, elementmæssigt, og derefter "forøge" ReLU-outputtet for at gange det med vægten og bias af vores outputlag. Denne repræsentation forenkler notation i høj grad, da parametrene (vægte og skævheder) for et helt skjult lag kan gemmes under en enkelt variabel. Men vigtigst af alt for os gør det det klart netværkets indre beregninger er i det væsentlige matrix- og vektormultiplikation eller prikprodukter. I betragtning af hvordan størrelsen af ​​disse vektorer og matricer skalerer med dimensionaliteten af ​​vores input og antallet af parametre i vores netværk, vil det meste køretid blive brugt på at udføre denne slags beregninger. En flok lineær algebra!

Vores legetøjseksempel er selvfølgelig meget begrænset i omfang. I praksis kan moderne deep learning-modeller have snesevis, hvis ikke hundredvis af skjulte lag, og millioner af tilhørende parametre. I stedet for vores todimensionelle vektorinputeksempel kan de tage vektorer ind med tusindvis af indgange, i en række forskellige former, såsom matricer (som enkelt-kanals billeder) eller tensorer (tre-kanals RGB billeder). Der er heller ikke noget, der forhindrer vores matrixrepræsentation i at tage flere inputvektorer ind på én gang ved at tilføje rækker til vores originale input. Neurale netværk kan også "kabledes" anderledes end vores feedforward neurale netværk eller udføre forskellige aktiveringsfunktioner. Der er en enorm zoologisk have af netværksarkitekturer og -teknikker, men i sidste ende er de for det meste bryde ned til de samme parallelle aritmetiske operationer, som vi finder i vores legetøjseksempel, bare i meget større skala.

Visuelt eksempel på foldningslag, der opererer på en tensor. (Billedkredit: På vej mod datavidenskab)

For eksempel det populære konvolutionelle neurale netværk (CNN'er) som du sandsynligvis har læst om, er ikke "fuldt forbundet" som vores falske netværk. "Vægtene" eller parametrene for dens skjulte foldede lag kan opfattes som en slags filter, et glidende vindue, der anvendes sekventielt på små patches af et input som vist ovenfor -- denne "foldning" er egentlig bare et glidende prikprodukt! Denne procedure resulterer i det, der ofte kaldes en funktionskort. Pooling af lag reducerer størrelsen af ​​et input eller et foldet lags output ved at beregne den maksimale eller gennemsnitlige værdi af små pletter af billedet. Resten af ​​netværket består normalt af fuldt forbundne lag, som dem i vores eksempel, og aktiveringsfunktioner som ReLU. Dette bruges ofte til feature-ekstraktion i billeder, hvor tidlige foldningslags feature maps kan "detektere" mønstre såsom linjer eller kanter og senere lag kan registrere mere komplicerede funktioner såsom ansigter eller komplekse former.

Alt hvad der er blevet sagt er strengt begrænset til slutninger, eller evaluere et neuralt netværk efter dets parametre er blevet fundet igennem uddannelse hvilket er en meget mere kompliceret procedure. Og igen, vi har udelukket en masse forklaringer. I virkeligheden er hver af netværkets komponenter inkluderet til et formål. For eksempel kan de af jer, der har studeret lineær algebra, let observere det uden ikke-lineære aktiveringsfunktioner, forenkler vores netværk til en lineær model med meget begrænset forudsigelse kapacitet.

En opgraderet AI-motor på Snapdragon 865 - En oversigt over forbedringer

Med denne praktiske forståelse af komponenterne i et neuralt netværk og deres matematiske operationer, kan vi begynde at forstå præcis, hvorfor hardwareacceleration er så vigtig. I det sidste afsnit kan vi observere, at parallelisering er afgørende for at fremskynde netværket givet det giver os for eksempel mulighed for at beregne flere parallelle prikprodukter svarende til hver neuron aktivering. Hvert af disse prik-produkter består i sig selv af multiplic-add-operationer på tal, normalt med 8-bit præcision i tilfælde af mobile applikationer, som skal ske så hurtigt som muligt. AI Engine tilbyder forskellige komponenter til at aflaste disse opgaver afhængigt af udviklerens overvejelser om ydeevne og energieffektivitet.

Et diagram af et CNN for det populære MNIST-datasæt, vist på scenen ved dette års Snapdragon Summit. Vektorbehandlingsenheden passer godt til de fuldt forbundne lag, som i vores falske eksempel. I mellemtiden håndterer tensorprocessoren foldnings- og poolingslagene, der behandler flere glidninger kerner parallelt, som i diagrammet ovenfor, og hvert foldningslag kan udsende mange separate funktioner Kort.

Lad os først se på GPU'en, som vi normalt taler om i forbindelse med 3D-spil. Forbrugermarkedet for videospil har stimuleret udviklingen inden for grafikbehandlingshardware i årtier, men hvorfor er GPU'er så vigtige for neurale netværk? Til at begynde med tygger de sig igennem massive lister med 3D-koordinater af polygonhjørner på én gang for at holde styr på en verdenstilstand i spillet. GPU'en skal også udføre gigantiske matrixmultiplikationsoperationer for at konvertere (eller kortlægge) disse 3D koordinater til 2D-plan, koordinater på skærmen og håndterer også farveinformationen for pixels i parallel. For at toppe det hele tilbyder de høj hukommelsesbåndbredde til at håndtere de massive hukommelsesbuffere til teksturbitmaps, der er overlejret på geometrien i spillet. Dens fordele i parallelisering, hukommelsesbåndbredde og resulterende lineære algebra-kapaciteter matcher ydeevnekravene for neurale netværk.

Adreno GPU-linjen har således en stor rolle at spille i Qualcomm AI Engine, og på scenen udtalte Qualcomm, at denne opdaterede komponent i Snapdragon 865 muliggør dobbelt så mange floating-point-kapaciteter og dobbelt så mange TOPS sammenlignet med den forrige generation, hvilket er overraskende i betragtning af, at de kun leverede en 25% ydelsesforøgelse for grafikgengivelse. Alligevel kan virksomheden prale af en 50 % stigning i antallet af aritmetiske logiske enheder (ALU'er), selvom de som sædvanligt ikke har afsløret deres GPU-frekvenser. Qualcomm opførte også blandet præcision instruktioner, hvilket er lige hvad det lyder som: forskellig numerisk præcision på tværs af operationer i en enkelt beregningsmetode.

Hexagon 698 DSP er, hvor vi ser en stor del af de præstationsgevinster, som Snapdragon 865 tilbyder. I år har virksomheden ikke kommunikeret forbedringer i deres DSP's vektorudvidelser (hvis ydeevne blev firedoblet i sidste års 855) eller deres skalære enheder. De bemærker dog, at for denne bloks Tensor Accelerator har de opnået fire gange TOP'erne sammenlignet med den version, der blev introduceret sidste år i Hexagon 695 DSP, samtidig med at den kan tilbyde 35 % bedre strømeffektivitet. Dette er en stor sag i betragtning af udbredelsen af ​​konvolutionelle neurale netværksarkitekturer i moderne AI-brugstilfælde lige fra billedobjektdetektion til automatisk talegenkendelse. Som forklaret ovenfor producerer foldningsoperationen i disse netværk et 2D-array af matrixoutput for hvert filter, hvilket betyder, at når det stables sammen, er outputtet af et foldningslag et 3D-array eller tensor.

Qualcomm promoverede også deres "nye og unikke" deep learning båndbreddekomprimering teknik, som tilsyneladende kan komprimer data tabsfrit med omkring 50 %, der til gengæld flytter halvdelen af ​​dataene og frigør båndbredde til andre dele af chipsættet. Det burde også spare strøm ved at reducere den datagennemstrømning, selvom vi ikke fik nogen tal, og der burde også være en lille strømomkostning til at komprimere dataene.

Med hensyn til båndbredde understøtter Snapdragon 865 LPDDR5 hukommelse, hvilket også vil gavne AI-ydeevne, da det vil øge hastigheden, hvormed ressourcer og inputdata overføres. Ud over hardware, Qualcomms nye AI Model Efficiency Toolkit gør nem modelkomprimering og deraf følgende energieffektivitetsbesparelser tilgængelig for udviklere. Neurale netværk har ofte et stort antal "redundante" parametre; for eksempel kan de gøre skjulte lag bredere, end de behøver at være. En af AI Toolkit-funktionerne diskuteret på scenen er således model kompression, hvor to af de citerede metoder er spatial singular value decomposition (SVD) og bayesiansk kompression, begge af som effektivt beskærer det neurale netværk ved at slippe af med redundante noder og justere modelstrukturen som påkrævet. Den anden modelkompressionsteknik, der præsenteres på scenen, vedrører kvantisering, og det involverer ændring af den numeriske præcision af vægtparametre og aktiveringsnodeberegninger.

Den numeriske præcision af neurale netværksvægte refererer til, om de numeriske værdier, der bruges til beregning, lagres, overføres og behandles som 64, 32, 16 (halvpræcision) eller 8-bit værdier. Brug af lavere numerisk præcision (for eksempel INT8 versus FP32) reducerer det samlede hukommelsesforbrug og dataoverførselshastigheder, hvilket giver mulighed for højere båndbredde og hurtigere slutninger. Mange af nutidens deep learning-applikationer er skiftet til 8-bit præcisionsmodeller til slutninger, hvilket måske lyder overraskende: ville højere numerisk nøjagtighed ikke muliggøre mere "nøjagtige" forudsigelser i klassificering eller regression opgaver? Ikke nødvendigvis; højere numerisk præcision, især under inferens, kan være spildt, da neurale netværk trænes til at klare støjende input eller små forstyrrelser under hele træningen alligevel, og fejlen på den lavere bit-repræsentation af en given (FP) værdi er ensartet 'tilfældig' nok. På en måde behandles den lave præcision af beregningerne af netværket som en anden kilde til støj, og forudsigelserne forbliver brugbare. Bortset fra heuristiske forklaringer, er det sandsynligt, at du vil påløbe en nøjagtighedsstraf, når du elendigt kvantiserer en model uden at tage nogle vigtige overvejelser i betragtning, hvorfor der går meget forskning i emne

Tilbage til Qualcomm AI Toolkit: Gennem det tilbyder de datafri kvantisering, hvilket gør det muligt at kvantisere modeller uden data eller parameter finjustering, mens der stadig opnås næsten original modelydelse på forskellige opgaver. I det væsentlige tilpasser den vægtparametre til kvantisering og korrigerer for bias-fejlen, der introduceres, når der skiftes til vægte med lavere præcision. I betragtning af fordelene ved kvantisering vil automatisering af proceduren under et API-kald forenkle modelproduktion og -implementering, og Qualcomm-krav mere end fire gange ydelsen pr. watt når du kører den kvantiserede model.

Men igen, dette er ikke chokerende: kvantiseringsmodeller kan tilbyde enorme båndbredde- og lagerfordele. Konvertering af en model til INT8 giver dig ikke kun en 4x reduktion i båndbredde, men også fordelen ved hurtigere heltalsberegninger (afhængigt af hardwaren). Det er derfor en let sag, at hardwareaccelererede tilgange til både kvantiseringen og den numeriske beregning ville give massive præstationsgevinster. På hans blog, for eksempel skrev Googles Pete Warden, at et samarbejde mellem Qualcomm og Tensorflow-teams gør det muligt for 8-bit modeller at køre op til syv gange hurtigerepå HVX DSP end på CPU'en. Det er svært at overvurdere potentialet ved letanvendelig kvantisering, især i betragtning af hvordan Qualcomm har fokuseret på INT8-ydelse.

Snapdragon 865's ARM-baserede Kryo CPU er stadig en vigtig komponent i AI-motoren. Selvom hardwareaccelerationen diskuteret i ovenstående afsnit er at foretrække, nogle gange kan ikke undgå programmer, der ikke korrekt udnytter disse blokke, hvilket resulterer i CPU Falde tilbage. Tidligere havde ARM introduceret specifikke instruktionssæt med det formål at accelerere matrix- og vektorbaserede beregninger. I ARMv7-processorer så vi introduktionen af ​​ARM NEON, en SIMD-arkitekturudvidelse, der muliggør DSP-lignende instruktioner. Og med ARMv8.4-A-mikroarkitekturen så vi introduktionen af ​​en instruktion specifikt til dot-produkter.

Alle disse postede præstationsgevinster relaterer sig til mange af de arbejdsbelastninger, vi beskrev i det foregående afsnit, men det er også værd at huske på, at disse Snapdragon 865-opgraderinger er kun det seneste forbedringer i Qualcomms AI-egenskaber. I 2017 dokumenterede vi deres tredobling af AI-kapaciteter med Hexagon 685 DSP og andre chipsætopdateringer. Sidste år introducerede de deres tensoraccelerator og integrerede understøttelse af ikke-linearitetsfunktioner (som førnævnte ReLU!) på hardwareniveau. De fordoblede også antallet af vektoracceleratorer og forbedrede skalarbehandlingsenhedens ydeevne med 20 %. Ved at parre alt dette med forbedringer på CPU-siden, som de hurtigere dot-produktoperationer takket være ARM, og de ekstra ALU'er i GPU'en, får Qualcomm i sidste ende tredoblet også rå AI-egenskaber.

Praktiske gevinster og udvidede brugssager

Alle disse opgraderinger har ført til fem gange så mange AI-egenskaber på Snapdragon 865 sammenlignet med for bare to år siden, men måske vigtigst af alt kom forbedringerne også med bedre ydeevne pr. milliwatt, en kritisk målestok for mobil enheder. På Snapdragon Summit 2019 gav Qualcomm os et par benchmarks, der sammenlignede deres AI Engine med to konkurrenter på forskellige klassifikationsnetværk. Disse tal ser ud til at blive indsamlet ved hjælp af AIMark, en benchmarking-applikation på tværs af platforme, som gør det muligt at sammenligne med Apples A-serie og Huaweis HiSilicon-processorer. Qualcomm hævder, at disse resultater gør brug af hele AI Engine, og vi bliver nødt til at vente til mere grundig benchmarking for korrekt at adskille effekten af ​​hver komponent og bestemme, hvordan disse tests var gennemført. Indikerer resultaterne fra virksomhed B f.eks. CPU-faldback? Så vidt jeg ved, har AIMark i øjeblikket ikke fordel af Kirin 990's NPU på vores Mate 30 Pro-enheder, for eksempel. Men den understøtter Snapdragon Neural Processing Engine, så den vil helt sikkert drage fordel af Qualcomm AI Engine; Da det er intern test, er det ikke eksplicit klart, om benchmarken korrekt bruger de rigtige biblioteker eller SDK til sine konkurrenter.

Det skal også siges, at Qualcomm effektivt sammenligner Snapdragon 865's AI-behandlingskapaciteter med tidligere annoncerede eller frigivne chipsæt. Det er meget sandsynligt, at dets konkurrenter vil bringe lignende virkningsfulde præstationsforbedringer i den næste cyklus, og hvis det er tilfældet, så ville Qualcomm kun holde kronen i omkring et halvt år fra det øjeblik, Snapdragon 865-enheder ramte hylderne. Når det er sagt, er disse stadig vejledende for den slags bump, vi kan forvente fra Snapdragon 865. Qualcomm har generelt været meget præcis, når den har kommunikeret præstationsforbedringer og benchmarkresultater af kommende udgivelser.

Alle de netværk, der præsenteres i disse benchmarks, klassificerer billeder fra databaser som ImageNet, modtager dem som input og udsender én ud af hundredvis af kategorier. Igen er de afhængige af de samme typer operationer, som vi beskrev i det andet afsnit, selvom deres arkitekturer er meget mere komplicerede end disse eksempler, og de er blevet betragtet som topmoderne løsninger på deres udgivelsestidspunkt. I de bedste tilfælde giver deres nærmeste konkurrent mindre end halvdelen af ​​antallet af slutninger i sekundet.

Med hensyn til strømforbrug tilbød Qualcomm slutninger pr. watt-tal for at vise den mulige mængde AI-behandling i en given mængde strøm. I de bedste tilfælde (MobileNet SSD) kan Snapdragon AI Engine tilbyde dobbelt så mange inferenser under det samme strømbudget.

Strøm er især vigtigt for mobile enheder. Tænk for eksempel på et neuralt netværksbaseret Snapchat-filter. Realistisk set udtrækker computersynspipelinen ansigtsinformation og anvender en maske eller input transformation behøver kun at køre med en hastighed på 30 eller 60 fuldførelser i sekundet for at opnå en væske erfaring. Forøgelse af rå AI-ydeevne ville gøre dig i stand til at tage input i højere opløsning og udsende flottere filtre, men det kan også være at foretrække at nøjes med HD-opløsning for hurtigere uploads og reducere strømforbruget og termisk drosling. I mange applikationer er "hurtigere" ikke nødvendigvis "bedre", og man får så høstet fordelene ved forbedret strømeffektivitet.

Under dag 2 af Snapdragon Summit indtog Sr. Director of Engineering hos Snapchat Yurii Monastyrshyn scenen for at vise, hvordan deres seneste deep learning-baserede filtre accelereres kraftigt af Hexagon Direct NN ved hjælp af Hexagon 695 DSP på Snapdragon 865.

Oven i købet, efterhånden som udviklere får adgang til lettere implementeringer af neurale netværk og flere applikationer begynder at anvende AI-teknikker, vil tilfælde af samtidig brug tage mere fokus, da smartphonen skal håndtere flere parallelle AI-pipelines på én gang (enten for en enkelt applikation, der behandler inputsignaler fra forskellige kilder eller så mange applikationer, der kører separat på enheden). Mens vi ser respektable energieffektivitetsgevinster på tværs af computerens DSP, GPU og CPU, håndterer Qualcomm Sensing Hub altid-on use cases for at lytte efter triggerord ved meget lavt strømforbrug. Det gør det muligt at overvåge lyd-, video- og sensorfeeds ved under 1mA strøm, hvilket gør det muligt for enheden at spotte bestemte lydsignaler (som en baby, der græder), oven på de velkendte digital assistent nøgleord. På den note gør Snapdragon 865 det muligt at detektere ikke kun nøgleordet, men også hvem der taler det, for at identificere en autoriseret bruger og handle i overensstemmelse hermed.

Mere AI på Edge-enheder

Disse forbedringer kan i sidste ende omsættes til håndgribelige fordele for din brugeroplevelse. Tjenester, der involverer oversættelse, genkendelse og mærkning af objekter, forudsigelser om brug eller anbefalinger af varer, naturlig sprogforståelse, taleparsing og så videre vil få fordelen ved at arbejde hurtigere og forbruge mindre strøm. At have et højere beregningsbudget gør det også muligt at skabe nye use cases og oplevelser og flytte processer, der tidligere fandt sted i skyen, til din enhed. Mens AI som et udtryk er blevet brugt på tvivlsomme, vildledende og endda fejlagtige måder i fortiden (selv af OEM'er), mange af dine tjenester, du nyder godt af i dag, er i sidste ende afhængige af maskinlæringsalgoritmer i en eller anden form eller en anden.

Men ud over Qualcomm har andre chipsetproducenter også hurtigt itereret og forbedret på denne front. For eksempel bragte 990 5G et 2+1 NPU-kernedesign, hvilket resulterede i op til 2,5 gange ydeevnen af ​​Kirin 980 og det dobbelte af Apple A12. Da processoren blev annonceret, viste det sig, at den tilbyder op til dobbelt så mange billeder (inferenser) pr. sekund af Snapdragon 855 på INT8 MobileNet, hvilket er svært at finde i forhold til resultaterne leveret af Qualcomm. Apple A13 Bionic tilbød på den anden side efter sigende seks gange hurtigere matrixmultiplikation i forhold til sin forgænger og forbedrede sin otte-kerne neurale motordesign. Vi bliver nødt til at vente, indtil vi ordentligt kan teste Snapdragon 865 på kommercielle enheder mod dens nuværende og fremtidige konkurrenter, men det er klart, at konkurrencen på dette område aldrig forbliver stille, da de tre virksomheder har brugt et væld af ressourcer på at forbedre deres AI ydeevne.